eslint-plugin-mocha
Eslint rules for mocha.
Last updated 3 years ago by lo1tuma .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ npm install eslint-plugin-mocha 
SYNC missed versions from official npm registry.

NPM Version GitHub Actions status Coverage Status NPM Downloads

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

.eslintrc.json

Then add a reference to this plugin and selected rules in your eslint config:

{
    "plugins": [
        "mocha"
    ]
}

eslint.config.js (requires eslint >= 8.23.0)

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.

Name Description 💼 ⚠️ 🚫 🔧
consistent-spacing-between-blocks Require consistent spacing between blocks 🔧
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

Current Tags

  • 10.5.0                                ...           latest (5 months ago)

63 Versions

  • 10.5.0                                ...           5 months ago
  • 10.4.3                                ...           8 months ago
  • 10.4.2                                ...           8 months ago
  • 10.4.1                                ...           10 months ago
  • 10.4.0                                ...           10 months ago
  • 10.3.0                                ...           10 months ago
  • 10.2.0                                ...           a year ago
  • 10.1.0                                ...           2 years ago
  • 10.0.5                                ...           3 years ago
  • 10.0.4                                ...           3 years ago
  • 10.0.3                                ...           3 years ago
  • 10.0.2                                ...           3 years ago
  • 10.0.1                                ...           3 years ago
  • 10.0.0                                ...           3 years ago
  • 9.0.0                                ...           4 years ago
  • 8.2.0                                ...           4 years ago
  • 8.1.0                                ...           4 years ago
  • 8.0.0                                ...           4 years ago
  • 7.0.1                                ...           5 years ago
  • 7.0.0                                ...           5 years ago
  • 6.3.0                                ...           5 years ago
  • 6.2.2                                ...           5 years ago
  • 6.2.1                                ...           5 years ago
  • 6.2.0                                ...           5 years ago
  • 6.1.1                                ...           5 years ago
  • 6.1.0                                ...           5 years ago
  • 6.0.0                                ...           5 years ago
  • 5.3.0                                ...           6 years ago
  • 5.2.1                                ...           6 years ago
  • 5.2.0                                ...           6 years ago
  • 5.1.0                                ...           6 years ago
  • 5.0.0                                ...           7 years ago
  • 4.12.1                                ...           7 years ago
  • 4.12.0                                ...           7 years ago
  • 4.11.0                                ...           8 years ago
  • 4.10.1                                ...           8 years ago
  • 4.10.0                                ...           8 years ago
  • 4.9.0                                ...           8 years ago
  • 4.8.0                                ...           8 years ago
  • 4.7.0                                ...           8 years ago
  • 4.6.0                                ...           8 years ago
  • 4.5.1                                ...           8 years ago
  • 4.5.0                                ...           8 years ago
  • 4.4.0                                ...           8 years ago
  • 4.3.0                                ...           8 years ago
  • 4.2.0                                ...           8 years ago
  • 4.1.0                                ...           8 years ago
  • 4.0.0                                ...           8 years ago
  • 3.0.0                                ...           9 years ago
  • 2.2.0                                ...           9 years ago
  • 2.1.0                                ...           9 years ago
  • 2.0.0                                ...           9 years ago
  • 1.1.0                                ...           9 years ago
  • 1.0.0                                ...           9 years ago
  • 0.5.1                                ...           9 years ago
  • 0.5.0                                ...           9 years ago
  • 0.4.0                                ...           9 years ago
  • 0.3.0                                ...           10 years ago
  • 0.2.2                                ...           10 years ago
  • 0.2.1                                ...           10 years ago
  • 0.2.0                                ...           10 years ago
  • 0.1.1                                ...           10 years ago
  • 0.1.0                                ...           10 years ago
Downloads
Total 3
Today 1
This Week 1
This Month 2
Last Day 0
Last Week 1
Last Month 0
Dependencies (2)
Dev Dependencies (12)

© 2010 - cnpmjs.org x YWFE | Home | YWFE