eslint-plugin-jest

    23.8.1 • Public • Published

    eslint-plugin-jest

    ESLint plugin for Jest

    Actions Status Renovate badge

    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

    Rule Description Configurations Fixable
    consistent-test-it Enforce consistent test or it keyword fixable-green
    expect-expect Enforce assertion to be made in a test body recommended
    lowercase-name Disallow capitalized test names fixable-green
    no-alias-methods Disallow alias methods style fixable-green
    no-commented-out-tests Disallow commented out tests recommended
    no-disabled-tests Disallow disabled tests recommended
    no-duplicate-hooks Disallow duplicate hooks within a describe block
    no-expect-resolves Disallow using expect().resolves
    no-export Disallow export from test files recommended
    no-focused-tests Disallow focused tests recommended
    no-hooks Disallow setup and teardown hooks
    no-identical-title Disallow identical titles recommended
    no-if Disallow conditional logic
    no-jasmine-globals Disallow Jasmine globals recommended fixable-yellow
    no-jest-import Disallow importing jest recommended
    no-large-snapshots Disallow large snapshots
    no-mocks-import Disallow manually importing from __mocks__ recommended
    no-standalone-expect Prevents expect statements outside of a test or it block recommended
    no-test-callback Using a callback in asynchronous tests recommended 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()
    no-try-expect Prevent catch assertions in tests recommended
    prefer-called-with Suggest using toBeCalledWith() OR toHaveBeenCalledWith()
    prefer-expect-assertions Suggest using expect.assertions() OR expect.hasAssertions()
    prefer-hooks-on-top Suggest to have all hooks at top-level before tests
    prefer-inline-snapshots Suggest using toMatchInlineSnapshot() fixable-green
    prefer-spy-on Suggest using jest.spyOn() fixable-green
    prefer-strict-equal Suggest using toStrictEqual() fixable-green
    prefer-to-be-null Suggest using toBeNull() style fixable-green
    prefer-to-be-undefined Suggest using toBeUndefined() style fixable-green
    prefer-to-contain Suggest using toContain() style fixable-green
    prefer-to-have-length Suggest using toHaveLength() style fixable-green
    prefer-todo Suggest using test.todo() fixable-green
    require-top-level-describe Require a top-level describe block
    require-to-throw-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
    valid-title Enforce 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

    Install

    npm i [email protected]

    Version

    23.8.1

    License

    MIT

    Unpacked Size

    200 kB

    Total Files

    88

    Last publish

    Collaborators

    • simenb
    • rickhanlonii
    • thymikee
    • jsonp
    • orta
    • rogeliog
    • mattphillips
    • jeysal
    • rubennorte
    • fb
    • aaronabramov