@lcooper/eslint-config-jest
v2.0.0
Published
Shareable ESLint config for Jest tests
Downloads
31
Readme
@lcooper/eslint-config-jest
An ESlint shareable flat config for Jest testing environments.
Installation
The peer dependency eslint
must be installed alongside this package.
install with npm:
npm install -D eslint @lcooper/eslint-config-jest
install with yarn:
yarn add -D eslint @lcooper/eslint-config-jest
Note: This project requires Eslint version
>=8.56
, and NodeJS version^18.18.0 || >=20.0.0
.
Usage
Add an eslint.config.js
config file to your project's root directory. This config is meant to be used in addition to the base @lcooper/eslint-config
config or @lcooper/eslint-config-typescript
config.
Note: this package exports a single flat config object, so no need for the
...
spread syntax when using it.
import baseConfig from '@lcooper/eslint-config';
import jestConfig from '@lcooper/eslint-config-jest';
export default [
...baseConfig,
jestConfig,
];
If your project does not specify "type": "module"
in its package.json
file, then eslint.config.js
must be in CommonJS format:
const baseConfig = require('@lcooper/eslint-config'),
jestConfig = require('@lcooper/eslint-config-jest');
module.exports = [
...baseConfig,
jestConfig,
];
This project is no longer compatable with the legacy eslintrc format, and requires you use the flat config format. Check out this page for more details about migrating from the eslintrc format to the flat config format.
File Matching
This config is meant to be used on top of a base ESLint configuration. It uses the files
field to apply itself only to files matched by the following glob patterns:
**/setupTests.?([cm])[jt]s?(x)
→ Test setup files.**/jest.setup.?([cm])[jt]s?(x)
→ Test setup files.**/test?(s)/**/*.?([cm])[jt]s?(x)
→ Directories namedtest
/tests
.**/__@(tests|mocks)__/**/*.?([cm])[jt]s?(x)
→ Directories named__tests__
/__mocks__
.**/+(*.)@(spec|test).?([cm])[jt]s?(x)
→ Files with a.test.*
/.spec.*
suffix.**/test.?([cm])[jt]s?(x)
→ Files namedtest
.
Note: the pattern
.?([cm])[jt]s?(x)
matches the file extensions.js
,.mjs
,.cjs
,.jsx
,.ts
,.mts
,.cts
, and.tsx
.
Additionally, this config uses the ignores
field so that it is not applied to any files matched by **/fixtures/**
or **/__fixtures__/**
.
If you would like to control what files this config is applied to, you can override the files
field and use your own glob patterns in your eslint.config.js
file:
import jestConfig from '@lcooper/eslint-config-jest';
export default [
{
...jestConfig,
files: [
// ... your globs here ...
],
},
];
Related
This package is intended to enhance one of these base configs:
@lcooper/eslint-config
- Base config for standard JavaScript projects@lcooper/eslint-config-typescript
- Base config for TypeScript projects
See also:
@lcooper/eslint-config-react
- Enhancement config for React projects@lcooper/eslint-config-typescript-react
- Enhancement config for React projects that use TypeScript@lcooper/eslint-plugin
- Plugin with awesome extra ESLint rules