Awesome
eslint-plugin-chai-expect-keywords
ESLint plugin that checks for unsupported keywords in chai.js expect()
assertions. Chai allows you to chain words to make readable assertions,
but unfortunately you can include keywords that chai knows nothing about,
and it will not fail the test. This eslint plugin helps you catch any
such unsupported chains.
Installation
npm install eslint-plugin-chai-expect-keywords
Requirements
For version 2.x:
- Node.js 6 or above
- ESLint 4.x - 8.x
For version 3.x:
- Node.js 18 or above
- ESLint 9.x or above
Rules
no-unsupported-keywords
- Prevent using unsupported keywords in theexpect()
chains
Options
allowKeywords
adds an array of additional keywords to the allowed listallowSinonChai
includes sinon-chai keywords in the allowed listallowChaiAsPromised
includes chai-as-promised keywords in the allowed list. (You may also find eslint-plugin-chai-as-promised of interest in ensuring thatreturn
statements (or itsnotify
method) are present as expected bychai-as-promised
.)allowChaiDOM
includes chai-dom keywords in the allowed listallowChaiExclude
includes chai-exclude keywords in the allowed list
Configuration
Import the plugin into your eslint.config.js
file:
import chaiExpectKeywords from 'eslint-plugin-chai-expect-keywords';
Add a plugins
section and specify chai-expect-keywords
as a plugin:
"plugins": {
"chai-expect-keywords": chaiExpectKeywords
},
Enable the rule:
"rules": {
"chai-expect-keywords/no-unsupported-keywords": "error"
}
Or with options:
"rules": {
"chai-expect-keywords/no-unsupported-keywords": [ "error", {
"allowKeywords": ["length"],
"allowSinonChai": true,
"allowChaiAsPromised": true,
"allowChaiDOM": true,
"allowChaiExclude": true
} ]
}
If you want the rule enabled with all its boolean options set to true, you can
avoid the steps of adding to plugins
and rules
and just include the all config in:
import js from '@eslint/js';
import chaiExpectKeywords from 'eslint-plugin-chai-expect-keywords';
export default [
js.configs.recommended,
chaiExpectKeywords.configs.all,
Or if you want the rule only with no booleans set, use the "recommended" config:
export default [
chaiExpectKeywords.configs.recommended,
License
eslint-plugin-chai-expect-keywords
is licensed under the MIT License.