I am looking for a testing library for javascript that will work for spec-testing user interaction such as drag and drop, hovers, double/single clicks and drawing on a canvas. I have looked at a couple libraries including jspec and jasmine but both seem to be more based on unit testing.
If I overlooked the fact that either of the above libraries support such testing I would love an example.
Edit
So I did a lot of looking last night and really didn’t come across anything. I would like if possible to emulate user interaction on a higher level than something like jasmine which is capybara style in the sense that it just fakes interaction with the dom.
I would like a library that actually emulates a mouse down -> mouse move -> mouse up event chain.
Does such a magical creation exist?
Post bounty edit
So, I have continued to experiment with JS testing libraries and am really not happy with how they function around using the html5 canvas. It seems that with the canvas you cannot test events in jasmine because jasmine will not initialize the canvas.
I don’t like that you must use “html” fixtures rather than actually testing application code. That seems backwards if you are trying to integrate js into your app. For spec testing it makes sense but BDD testing of a web framework would mandate it actually use application views for testing.
Again does such a monster exist or is my head in the clouds?
Have you tried PhantomJS or ZombieJS? I’ve heard good things about Phantom in particular.
=============
Another suggestion: Selenium plug-ins/macros. http://www.seleniumwiki.com/selenium-rc/selenium-mousedownat-mousemoveat-and-mouseupat-example/ or glauche.de/2009/09/09/drag-drop-with-selenium/ .