Package Exports
- eslint-plugin-chai-expect
- eslint-plugin-chai-expect/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (eslint-plugin-chai-expect) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
eslint-plugin-chai-expect
ESLint plugin that checks for common chai.js expect()
mistakes
[!IMPORTANT] The
recommended
preset is for the ESLint legacy configuration system (.eslintrc.json
). Therecommended-flat
configuration is for the new flat configuration system.
Requirements
- Node.js 6 or above
- ESLint 4.x or 5.x or 6.x
Installation
npm install --save-dev eslint-plugin-chai-expect
Configuration
Legacy ESLint Configuration Format (.eslintrc.json)
Add a plugins
section and specify chai-expect
as a plugin:
{
"plugins": [
"chai-expect"
]
}
Enable the rules that you would like to use:
{
"rules": {
"chai-expect/no-inner-compare": 2,
"chai-expect/no-inner-literal": 2,
"chai-expect/missing-assertion": 2,
"chai-expect/terminating-properties": 2
}
}
Or, if you just want the above defaults, you can avoid all of the above and just extend the config:
{
"extends": ["plugin:chai-expect/recommended"]
}
Flat ESLint Configuration Format (eslint.config.js)
Add a plugins
section and specify chai-expect
as a plugin and enable the rules that you would like to use:
import chaiExpectPlugin from 'eslint-plugin-chai-expect';
export default [
{
"plugins": {
"chai-expect": chaiExpectPlugin
},
"rules": {
"chai-expect/no-inner-compare": 2,
"chai-expect/no-inner-literal": 2,
"chai-expect/missing-assertion": 2,
"chai-expect/terminating-properties": 2
}
}
];
Or, if you just want the above defaults, you can avoid all of the above and just extend the config:
import chaiExpectPlugin from 'eslint-plugin-chai-expect';
export default [
chaiExpectPlugin.configs["recommended-flat"],
{
// ...
},
];
Rules
no-inner-compare
- Prevent using comparisons in theexpect()
argumentno-inner-literal
- Prevent using literals in theexpect()
argument (undefined
,null
,NaN
,(+|-)Infinity
,this
, booleans, numbers, strings, and BigInt or regex literals)missing-assertion
- Prevent callingexpect(...)
without an assertion like.to.be.ok
terminating-properties
- Prevent callingto.be.ok
and other assertion properties as functions
Additional configuration
terminating-properties rule
A number of extensions to chai add additional terminating properties. For example chai-http adds:
- headers
- html
- ip
- json
- redirect
- text
The terminating-properties rule can be configured to ensure these (or other) additional properties are not used as functions:
{
"rules": {
"chai-expect/terminating-properties": ["error", {
"properties": ["headers", "html", "ip", "json", "redirect", "test"]
}]
}
}
License
eslint-plugin-chai-expect is licensed under the MIT License.