jfbrennan / m-

The modern web's design system.
http://m-docs.org
MIT License
300 stars 12 forks source link

Need test coverage #6

Open jfbrennan opened 4 years ago

jfbrennan commented 4 years ago

Goal is 100% coverage

1cg commented 3 years ago

htmx uses sinon and mocha/chai:

https://github.com/bigskysoftware/htmx/tree/master/test

And then mocha-chome for headless testing:

https://github.com/bigskysoftware/htmx/blob/938130040f13eeee55965a54bb8c9f722315d881/package.json#L24

not sure sinon is as useful for you, since htmx has to mock out AJAX

JessicaSachs commented 3 years ago

👋🏻 I highly suggest using Cypress Component Testing. I'm the maintainer and I'm happy to help you out. Right now we have framework-specific bindings, but writing a wrapper for vanilla JS is about ~120 lines by leveraging @cypress/mount-utils.

Happy to publish it under Cypress's official namespace if you'd like to send me a PR or an isolated repository.

Cypress CT is a great solution for your a11y-focused library because we actually test in the web, and we have a lot of support for detecting if things are rendered vs visually hidden or clickable. There are things you simply cannot test with jest, etc.

Technically, you could think of it as "Mocha + Chrome", but with a driver that mimics usage more realistically than a programmatic .trigger('click') is able to do. Happy to chat in Discord.

jfbrennan commented 3 years ago

@JessicaSachs thanks for the suggestion. I like Cypress for e2e. I'll have to check out the ct stuff.

jfbrennan commented 3 years ago

@1cg was thinking jest, will have to go take a look at mocha-chrome. Thanks!