10.5.0 • Published 9 months ago

eslint-plugin-mocha v10.5.0

Weekly downloads
519,958
License
MIT
Repository
github
Last release
9 months ago

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-blocksRequire consistent spacing between blocks🔧
handle-done-callbackEnforces handling of callbacks for async tests
max-top-level-suitesEnforce the number of top-level suites in a single file
no-async-describeDisallow async functions passed to describe🔧
no-empty-descriptionDisallow empty test descriptions
no-exclusive-testsDisallow exclusive tests
no-exportsDisallow exports from test files
no-global-testsDisallow global tests
no-hooksDisallow hooks
no-hooks-for-single-caseDisallow hooks for a single test or test suite
no-identical-titleDisallow identical titles
no-mocha-arrowsDisallow arrow functions as arguments to mocha functions🔧
no-nested-testsDisallow tests to be nested within other tests
no-pending-testsDisallow pending tests
no-return-and-callbackDisallow returning in a test or hook function that uses a callback
no-return-from-asyncDisallow returning from an async test or hook
no-setup-in-describeDisallow setup in describe blocks
no-sibling-hooksDisallow duplicate uses of a hook at the same level inside a describe
no-skipped-testsDisallow skipped tests
no-synchronous-testsDisallow synchronous tests
no-top-level-hooksDisallow top-level hooks
prefer-arrow-callbackRequire using arrow functions for callbacks🔧
valid-suite-descriptionRequire suite descriptions to match a pre-configured regular expression
valid-test-descriptionRequire test descriptions to match a pre-configured regular expression
@oliveiraswell/eslint-config-oliveiraswell-js@rock-kit/ui-eslint-config@ffbutton/eslint-config-baseeslint-config-superstricteslint-config-quartzslm_cdk@oliveiraswell/eslint-config-dasa-health-jspm-test-pkgpm-ds-target-pkgeslint-config-happyeslint-config-neaf@temporg/config-eslint@temporg/ui-eslint-configeslint-config-loanmarket-react@remotezygote/eslintrcrel-engageeslint-config-tierioneslint-config-quark@infinitebrahmanuniverse/nolb-eslint-plugin-meslint-config-wunderflats@everything-registry/sub-chunk-1612eslint-config-zhw2590582winx-form-winxtetu_convertervoting-app@domestika/linter@dreamnet/eslint-config-dreamnet@coorpacademy/eslint-plugin-coorpacademy@dabh/eslint-config-populist@dadi/api-mongodb@cadl-lang/eslint-config-cadl@rpapeters/paper-autocompletejsh-lintkarma-webpack-bundledfeuk-frontenddfeuk-frontend-manual@archtech/eslint-configtourismtrioslibtokentea@artlab/eslint-config@appium/gulp-plugins@angular-ru/eslint-config-enterprise@animoca/ethereum-contracts-core_library@atlaskit/eslint-config-tests@authress/eslint-config@adobe/asset-compute-eslint-config@adobe/eslint-config-asset-compute@aerofer/eslint-config@ag-media/eslint-config@ag-media/eslint-config-nextjs@banka/eslint-config@banka/eslint-config-react@axway/gulp-tasks@beyonk/eslint-config@carlosvillu/linter@catalyst-elements/build-process@chatchamp/eslint-config@cityscience/eslint-config@chuidylan/eslint-config-chameleon@chuidylan/eslint-config-chameleon-typescript@claimcompass/eslint-config-claimcompass@chialab/rna-cli@chainsafe/eslint-config@42technologies/eslint-config1000-packages@hokify/eslint-config-vue@benzinga/eslint-config-benzinga@department-of-veterans-affairs/eslint-config-appealsvenatici@fiquu/eslint-config@fashiontrade/ft-react-scripts@dword-design/eslint-config-fp@dword-design/base-core@dxos/eslint-plugin@gustavnikolaj/eslint-config@hackr/eslint-config-preact@haixee/eslint-config@focus21/eslint-config@form8ion/eslint-config-cypress@form8ion/eslint-config-mocha@ibomorrissey/dashboard@ibomorrissey/shoppy@hidoo/eslint-config@icplatform/eslint-config-mocha@flitsmeister/eslint@fltri/eslint-config@fisker/eslint-config-mocha@gaddysetsuko/timestamp@gaddysetsuko/vote@gemunion/eslint-config@garbas/mozilla-neo@gaincompliance/eslint-config-cypress@gaincompliance/eslint-config-gain@gaincompliance/eslint-config-mocha@gaincompliance/eslint-config@ganintegrity/eslint-typescript@goodeggs/toolkit@etelstamour/asset-manage@etelstamour/hooks
10.5.0

9 months ago

10.4.3

1 year ago

10.4.2

1 year ago

10.4.1

1 year ago

10.4.0

1 year ago

10.3.0

1 year ago

10.2.0

2 years ago

10.0.5

3 years ago

10.1.0

3 years ago

10.0.4

3 years ago

10.0.0

3 years ago

10.0.1

3 years ago

10.0.2

3 years ago

10.0.3

3 years ago

8.2.0

4 years ago

9.0.0

4 years ago

8.1.0

4 years ago

8.0.0

5 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

6 years ago

6.2.0

6 years ago

6.1.1

6 years ago

6.1.0

6 years ago

6.0.0

6 years ago

5.3.0

6 years ago

5.2.1

6 years ago

5.2.0

7 years ago

5.1.0

7 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

9 years ago

4.6.0

9 years ago

4.5.1

9 years ago

4.5.0

9 years ago

4.4.0

9 years ago

4.3.0

9 years ago

4.2.0

9 years ago

4.1.0

9 years ago

4.0.0

9 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

10 years ago

0.5.1

10 years ago

0.5.0

10 years ago

0.4.0

10 years ago

0.3.0

10 years ago

0.2.2

11 years ago

0.2.1

11 years ago

0.2.0

11 years ago

0.1.1

11 years ago

0.1.0

11 years ago