$ yarn add --dev eslint eslint-plugin-jest
Note: If you installed ESLint globally then you must also install
eslint-plugin-jest
globally.
Add jest
to the plugins section of your .eslintrc
configuration file. You
can omit the eslint-plugin-
prefix:
{
"plugins": ["jest"]
}
Then configure the rules you want to use under the rules section.
{
"rules": {
"jest/no-disabled-tests": "warn",
"jest/no-focused-tests": "error",
"jest/no-identical-title": "error",
"jest/prefer-to-have-length": "warn",
"jest/valid-expect": "error"
}
}
You can also whitelist the environment variables provided by Jest by doing:
{
"env": {
"jest/globals": true
}
}
This plugin exports a recommended configuration that enforces good testing practices.
To enable this configuration use the extends
property in your .eslintrc
config file:
{
"extends": ["plugin:jest/recommended"]
}
See ESLint documentation for more information about extending configuration files.
Rule | Description | Recommended | Fixable |
---|---|---|---|
consistent-test-it | Enforce consistent test or it keyword | ||
lowercase-name | Disallow capitalized test names | ||
no-disabled-tests | Disallow disabled tests | ||
no-focused-tests | Disallow focused tests | ||
no-hooks | Disallow setup and teardown hooks | ||
no-identical-title | Disallow identical titles | ||
no-jest-import | Disallow importing jest |
||
no-large-snapshots | Disallow large snapshots | ||
no-test-prefixes | Disallow using f & x prefixes to define focused/skipped tests |
||
prefer-to-have-length | Suggest using toHaveLength() |
||
prefer-to-be-null | Suggest using toBeNull() |
||
prefer-to-be-undefined | Suggest using toBeUndefined() |
||
prefer-expect-assertions | Suggest using expect.assertions() OR expect.hasAssertions() |
||
valid-describe | Enforce valid describe() callback |
||
valid-expect | Enforce valid expect() usage |
||
valid-expect-in-promise | Enforce having return statement when testing with promises |