cucumber / react-components

React components for Cucumber
MIT License
32 stars 10 forks source link

switch to mocha for testing #340

Closed davidjgoss closed 9 months ago

davidjgoss commented 9 months ago

🤔 What's changed?

Remove Jest, and switch to a combination of Mocha, Chai and Sinon for testing, assertions and mocking respectively. React Testing Library is retained and works as before. Most of the diff is just changing the assertions to the Chai API, and some configuration.

For SCSS files, which used to be pretty much handled by Jest's module type mappings, I found the best compromise was to implement a small CSS loader (css-loader.mjs) to resolve to an object with keys for each class name found in the file.

Also pins to the latest 18.x Node.js version that supports register for module loaders, and ensures we use the current LTS for release jobs.

⚡️ What's your motivation?

In https://github.com/cucumber/react-components/pull/338 we just about got Jest working with ESM, but it's super fragile - bringing in new dependencies for https://github.com/cucumber/react-components/pull/337 immediately threw up some obscure errors.

Jest is also slow compared to Mocha, at least for our test suite.

🏷️ What kind of change is this?

📋 Checklist:


This text was originally generated from a template, then edited by hand. You can modify the template here.

netlify[bot] commented 9 months ago

Deploy Preview for cucumber-react-components failed.

Name Link
Latest commit db4926f46e64ef9cac874fcb6db8761058916b2e
Latest deploy log https://app.netlify.com/sites/cucumber-react-components/deploys/656af7ddd81cbf000883fd73