Skip to content

Latest commit

 

History

History
175 lines (146 loc) · 9.08 KB

README.md

File metadata and controls

175 lines (146 loc) · 9.08 KB

Build Status Greenkeeper 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). All rules included are:

  • prefer-to-be-null
  • prefer-to-be-undefined
  • prefer-to-contain
  • prefer-to-have-length

See ESLint documentation for more information about extending configuration files.

Rules

Rule Description Recommended Fixable
consistent-test-it Enforce consistent test or it keyword fixable-green
expect-expect Enforce assertion to be made in a test body
lowercase-name Disallow capitalized test names fixable-green
no-alias-methods Disallow alias methods recommended fixable-green
no-disabled-tests Disallow disabled tests recommended
no-commented-out-tests Disallow commented out tests
no-empty-title Disallow empty titles
no-focused-tests Disallow focused tests recommended
no-hooks Disallow setup and teardown hooks
no-identical-title Disallow identical titles recommended
no-jasmine-globals Disallow Jasmine globals recommended fixable-yellow
no-jest-import Disallow importing jest recommended
no-mocks-import Disallow manually importing from __mocks__
no-large-snapshots Disallow large snapshots
no-test-callback Using a callback in asynchronous tests fixable-green
no-test-prefixes Disallow using f & x prefixes to define focused/skipped tests recommended fixable-green
no-test-return-statement Disallow explicitly returning from tests
no-truthy-falsy Disallow using toBeTruthy() & toBeFalsy()
prefer-expect-assertions Suggest using expect.assertions() OR expect.hasAssertions()
prefer-spy-on Suggest using jest.spyOn() fixable-green
prefer-strict-equal Suggest using toStrictEqual() fixable-green
prefer-to-be-null Suggest using toBeNull() fixable-green
prefer-to-be-undefined Suggest using toBeUndefined() fixable-green
prefer-to-contain Suggest using toContain() fixable-green
prefer-to-have-length Suggest using toHaveLength() fixable-green
prefer-inline-snapshots Suggest using toMatchInlineSnapshot() fixable-green
require-tothrow-message Require that toThrow() and toThrowError includes a message
valid-describe Enforce valid describe() callback recommended
valid-expect-in-promise Enforce having return statement when testing with promises recommended
valid-expect Enforce valid expect() usage recommended
prefer-todo Suggest using test.todo() fixable-green
prefer-called-with Suggest using toBeCalledWith() OR toHaveBeenCalledWith()

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