• Stars
    star
    280
  • Rank 147,492 (Top 3 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created over 10 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

ESLint rules for mocha

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

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 as ember-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

💼 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 💼 ⚠️ 🚫 🔧
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