eslint-plugin-mocha
ESLint rules for mocha.
Install and configure
This plugin requires ESLint 9.0.0
or later.
npm install --save-dev eslint-plugin-mocha
Configuration via eslint.config.js
To use this plugin with the new eslint configuration format (flat config):
import mochaPlugin from "eslint-plugin-mocha";
export default [
mochaPlugin.configs.flat.recommended, // or `mochaPlugin.configs.flat.all` to enable all
// ... Your configurations here
];
Plugin Settings
This plugin supports the following settings, which are used by multiple rules:
-
additionalCustomNames
: This allows rules to check additional function names when looking for suites or test cases. This might be used with a custom Mocha extension, such as ember-mocha
or mocha-each
.
Example:
{
"rules": {
"mocha/no-skipped-tests": "error",
"mocha/no-exclusive-tests": "error"
},
"settings": {
"mocha/additionalCustomNames": [
{
"name": "describeModule",
"type": "suite",
"interfaces": ["BDD"]
},
{
"name": "testModule",
"type": "testCase",
"interfaces": ["TDD"]
}
]
}
}
The name
property can be in any of the following forms:
-
A plain name e.g. describeModule
, which allows:
describeModule("example", function() { ... });
-
A dotted name, e.g. describe.modifier
, which allows:
describe.modifier("example", function() { ... });
-
A name with parentheses, e.g. forEach().describe
, which allows:
forEach([ 1, 2, 3 ])
.describe("example", function(n) { ... });
-
Any combination of the above, e.g. forEach().describeModule.modifier
, which allows:
forEach([ 1, 2, 3 ])
.describeModule.modifier("example", function(n) { ... });
Configs
recommended
This plugin exports a recommended config that enforces good practices.
Enable it with the extends option:
{
"extends": ["plugin:mocha/recommended"]
}
all
There's also a configuration that enables all of our rules.
See Configuring Eslint on eslint.org for more info.
Rules
💼 Configurations enabled in.
⚠️ Configurations set to warn in.
🚫 Configurations disabled in.
✅ Set in the recommended
configuration.
🔧 Automatically fixable by the --fix
CLI option.