eslint-plugin-jest-dom
ESLint plugin to follow best practices and anticipate common mistakes when writing tests with jest-dom
- Static
- Latest Patch
- Latest Minor
- Latest Major
- 5.5.0
- 5.4.0
- 5.3.0
- 5.2.0
- 5.1.1
- 5.1.0
- 5.0.2
- 5.0.1
- 5.0.0
- 4.0.3
- 4.0.2
- 4.0.1
- 4.0.0
- 3.9.4
- 3.9.3
- 3.9.2
- 3.9.1
- 3.9.0
- 3.8.1
- 3.8.0
- 3.7.0
- 3.6.5
- 3.6.4
- 3.6.3
- 3.6.2
- 3.6.1
- 3.6.0
- 3.5.0
- 3.4.2
- 3.4.1
- 3.4.0
- 3.3.0
- 3.2.4
- 3.2.3
- 3.2.2
- 3.2.1
- 3.2.0
- 3.1.7
- 3.1.6
- 3.1.5
- 3.1.4
- 3.1.3
- 3.1.2
- 3.1.1
- 3.1.0
- 3.0.1
- 3.0.0
- 2.1.0
- 2.0.1
- 2.0.0
- 1.4.2
- 1.4.1
- 1.4.0
- 1.3.0
- 1.2.1
- 1.2.0
- 1.1.3
- 1.1.2
- 1.1.1
- 1.1.0
- 1.0.0
eslint-plugin-jest-dom
ESLint plugin to follow best practices and anticipate common mistakes when writing tests with jest-dom.
Table of Contents
Installation
This module is distributed via npm which is bundled with node and
should be installed as one of your project's devDependencies
:
npm install --save-dev eslint-plugin-jest-dom
This library has a required peerDependencies
listing for ESLint
.
Usage
[!NOTE]
eslint.config.js
is supported, though most of the plugin documentation still currently uses.eslintrc
syntax; compatible versions of configs are available prefixed withflat/
and may be subject to small breaking changes while ESLint v9 is being finalized.Refer to the ESLint documentation on the new configuration file format for more.
Add jest-dom
to the plugins section of your .eslintrc.js
configuration file.
You can omit the eslint-plugin-
prefix:
module.exports = {
plugins: ["jest-dom"],
rules: {
// your configuration
},
};
Then configure the rules you want to use under the rules section.
module.exports = {
rules: {
"jest-dom/prefer-checked": "error",
"jest-dom/prefer-enabled-disabled": "error",
"jest-dom/prefer-required": "error",
"jest-dom/prefer-to-have-attribute": "error",
},
};
Recommended Configuration
This plugin exports a recommended configuration that enforces good jest-dom
practices (you can find more info about enabled rules in
Supported Rules section).
To enable this configuration with .eslintrc
, use the extends
property:
module.exports = {
extends: "plugin:jest-dom/recommended",
rules: {
// your configuration
},
};
To enable this configuration with eslint.config.js
, use
jestDom.configs['flat/recommended']
:
module.exports = [
{
files: [
/* glob matching your test files */
],
...require("eslint-plugin-jest-dom").configs["flat/recommended"],
},
];
Supported Rules
πΌ Configurations enabled in.
β
Set in the recommended
configuration.
π§ Automatically fixable by the --fix
CLI option.
π‘ Manually fixable by editor suggestions.
Name | Description | πΌ | π§ | π‘ |
---|---|---|---|---|
prefer-checked | prefer toBeChecked over checking attributes | β | π§ | |
prefer-empty | Prefer toBeEmpty over checking innerHTML | β | π§ | |
prefer-enabled-disabled | prefer toBeDisabled or toBeEnabled over checking attributes | β | π§ | |
prefer-focus | prefer toHaveFocus over checking document.activeElement | β | π§ | |
prefer-in-document | Prefer .toBeInTheDocument() for asserting the existence of a DOM node | β | π§ | π‘ |
prefer-required | prefer toBeRequired over checking properties | β | π§ | |
prefer-to-have-attribute | prefer toHaveAttribute over checking getAttribute/hasAttribute | β | π§ | |
prefer-to-have-class | prefer toHaveClass over checking element className | β | π§ | |
prefer-to-have-style | prefer toHaveStyle over checking element style | β | π§ | |
prefer-to-have-text-content | Prefer toHaveTextContent over checking element.textContent | β | π§ | |
prefer-to-have-value | prefer toHaveValue over checking element.value | β | π§ |
Issues
Looking to contribute? Look for the Good First Issue label.
π Bugs
Please file an issue for bugs, missing documentation, or unexpected behavior.
π‘ Feature Requests
Please file an issue to suggest new features. Vote on feature requests by adding a π. This helps maintainers prioritize what to work on.
Contributors β¨
Thanks goes to these people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!
LICENSE
MIT