It isn't. Jest and Puppeteer are my current choice, and it's really just a matter of sending mousedown, mousemove, and mouseup events to the browser and checking the expected behaviour is right.
It makes a huge difference to how long you send testing manually.