eslint-plugin-mocha
ESLint rules for mocha.
Install and configure
This plugin requires ESLint 4.0.0
or later.
npm install --save-dev eslint-plugin-mocha
Then add a reference to this plugin and selected rules in your eslint config:
{
"plugins": [
"mocha"
]
}
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 asember-mocha
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" ] }
]
}
}
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
recommended
configuration.
--fix
CLI option.
Name | Description | ||||
---|---|---|---|---|---|
handle-done-callback | Enforces handling of callbacks for async tests | ||||
max-top-level-suites | Enforce the number of top-level suites in a single file | ||||
no-async-describe | Disallow async functions passed to describe | ||||
no-empty-description | Disallow empty test descriptions | ||||
no-exclusive-tests | Disallow exclusive tests | ||||
no-exports | Disallow exports from test files | ||||
no-global-tests | Disallow global tests | ||||
no-hooks | Disallow hooks | ||||
no-hooks-for-single-case | Disallow hooks for a single test or test suite | ||||
no-identical-title | Disallow identical titles | ||||
no-mocha-arrows | Disallow arrow functions as arguments to mocha functions | ||||
no-nested-tests | Disallow tests to be nested within other tests | ||||
no-pending-tests | Disallow pending tests | ||||
no-return-and-callback | Disallow returning in a test or hook function that uses a callback | ||||
no-return-from-async | Disallow returning from an async test or hook | ||||
no-setup-in-describe | Disallow setup in describe blocks | ||||
no-sibling-hooks | Disallow duplicate uses of a hook at the same level inside a describe | ||||
no-skipped-tests | Disallow skipped tests | ||||
no-synchronous-tests | Disallow synchronous tests | ||||
no-top-level-hooks | Disallow top-level hooks | ||||
prefer-arrow-callback | Require using arrow functions for callbacks | ||||
valid-suite-description | Require suite descriptions to match a pre-configured regular expression | ||||
valid-test-description | Require test descriptions to match a pre-configured regular expression |