Setup
We recommend using Jest but you're free to use the library with any testing framework and runner you're comfortable with.
Jest​
Install Jest & jest-environment-jsdom
npm install --save-dev jest jest-environment-jsdomAdd the following to your
package.json{
"scripts": {
"test": "jest src",
"test:watch": "npm run test -- --watch"
}
}You'll need to compile the Svelte components before using them in Jest, so we need to install svelte-jester
npm install --save-dev svelte-jesterAdd the following Jest configuration to your
package.json{
"jest": {
"transform": {
"^.+\\.svelte$": "svelte-jester"
},
"moduleFileExtensions": ["js", "svelte"],
"testEnvironment": "jsdom"
}
}If you are using ES6 modules in your project you have to add Jest's babel transform setting (it is set by default, but since we are overriding the transform config, we have to add it explicitly)
5.1 Install
babel-jestnpm install --save-dev babel-jest5.2. Add a basic
.babelrcconfiguration{
"presets": [["@babel/preset-env", {"targets": {"node": "current"}}]]
}5.3. Update the Jest transform configuration
"transform": {
"^.+\\.js$": "babel-jest",
"^.+\\.svelte$": "svelte-jester"
},This is optional but it is recommended, you can install jest-dom to add handy assertions to Jest
6.1 Install
jest-domnpm install --save-dev @testing-library/jest-dom6.2 Add the following to your Jest configuration in
package.json{
"setupFilesAfterEnv": ["@testing-library/jest-dom/extend-expect"]
}Create your component + test file (checkout the rest of the docs to see how) and run it
npm run test
Typescript​
To use Typescript, you'll need to install and configure svelte-preprocess and
ts-jest. For full instructions, see the
svelte-jester docs.
Preprocessors​
If you'd like to also include any Svelte preprocessors then simply follow the instructions over at svelte-jester.