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 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.