Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including eslint-plugin-jest with all npm packages installed. Try it out:

require("eslint/package.json"); // eslint is a peer dependency. var eslintPluginJest = require("eslint-plugin-jest")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

eslint-plugin-jest v23.0.4

Eslint rules for Jest

Actions Status Renovate badge

eslint-plugin-jest

ESLint plugin for Jest

Installation

$ yarn add --dev eslint eslint-plugin-jest

Note: If you installed ESLint globally then you must also install eslint-plugin-jest globally.

Usage

Add jest to the plugins section of your .eslintrc configuration file. You can omit the eslint-plugin- prefix:

{
  "plugins": ["jest"]
}

Then configure the rules you want to use under the rules section.

{
  "rules": {
    "jest/no-disabled-tests": "warn",
    "jest/no-focused-tests": "error",
    "jest/no-identical-title": "error",
    "jest/prefer-to-have-length": "warn",
    "jest/valid-expect": "error"
  }
}

You can also whitelist the environment variables provided by Jest by doing:

{
  "env": {
    "jest/globals": true
  }
}

Shareable configurations

Recommended

This plugin exports a recommended configuration that enforces good testing practices.

To enable this configuration use the extends property in your .eslintrc config file:

{
  "extends": ["plugin:jest/recommended"]
}

Style

This plugin also exports a configuration named style, which adds some stylistic rules, such as prefer-to-be-null, which enforces usage of toBeNull over toBe(null).

To enable this configuration use the extends property in your .eslintrc config file:

{
  "extends": ["plugin:jest/style"]
}

See ESLint documentation for more information about extending configuration files.

All

If you want to enable all rules instead of only some you can do so by adding the all configuration to your .eslintrc config file:

{
  "extends": ["plugin:jest/all"]
}

While the recommended and style configurations only change in major versions the all configuration may change in any release and is thus unsuited for installations requiring long-term consistency.

Rules

RuleDescriptionConfigurationsFixable
consistent-test-itEnforce consistent test or it keywordfixable-green
expect-expectEnforce assertion to be made in a test bodyrecommended
lowercase-nameDisallow capitalized test namesfixable-green
no-alias-methodsDisallow alias methodsstylefixable-green
no-commented-out-testsDisallow commented out testsrecommended
no-disabled-testsDisallow disabled testsrecommended
no-duplicate-hooksDisallow duplicate hooks within a describe block
no-expect-resolvesDisallow using expect().resolves
no-exportDisallow export from test filesrecommended
no-focused-testsDisallow focused testsrecommended
no-hooksDisallow setup and teardown hooks
no-identical-titleDisallow identical titlesrecommended
no-ifDisallow conditional logic
no-jasmine-globalsDisallow Jasmine globalsrecommendedfixable-yellow
no-jest-importDisallow importing jestrecommended
no-large-snapshotsDisallow large snapshots
no-mocks-importDisallow manually importing from __mocks__recommended
no-standalone-expectPrevents expect statements outside of a test or it blockrecommended
no-test-callbackUsing a callback in asynchronous testsrecommendedfixable-green
no-test-prefixesDisallow using f & x prefixes to define focused/skipped testsrecommendedfixable-green
no-test-return-statementDisallow explicitly returning from tests
no-truthy-falsyDisallow using toBeTruthy() & toBeFalsy()
no-try-expectPrevent catch assertions in testsrecommended
prefer-called-withSuggest using toBeCalledWith() OR toHaveBeenCalledWith()
prefer-expect-assertionsSuggest using expect.assertions() OR expect.hasAssertions()
prefer-hooks-on-topSuggest to have all hooks at top-level before tests
prefer-inline-snapshotsSuggest using toMatchInlineSnapshot()fixable-green
prefer-spy-onSuggest using jest.spyOn()fixable-green
prefer-strict-equalSuggest using toStrictEqual()fixable-green
prefer-to-be-nullSuggest using toBeNull()stylefixable-green
prefer-to-be-undefinedSuggest using toBeUndefined()stylefixable-green
prefer-to-containSuggest using toContain()stylefixable-green
prefer-to-have-lengthSuggest using toHaveLength()stylefixable-green
prefer-todoSuggest using test.todo()fixable-green
require-top-level-describeRequire a top-level describe block
require-to-throw-messageRequire that toThrow() and toThrowError includes a message
valid-describeEnforce valid describe() callbackrecommended
valid-expect-in-promiseEnforce having return statement when testing with promisesrecommended
valid-expectEnforce valid expect() usagerecommended
valid-titleEnforce valid titles for jest blocks

Credit

Related Projects

eslint-plugin-jest-formatting

This project aims to provide formatting rules (auto-fixable where possible) to ensure consistency and readability in jest test suites.

https://github.com/dangreenisrael/eslint-plugin-jest-formatting

Metadata

RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free