22.8.0 • Published 5 years ago

eslint-plugin-jestx v22.8.0

Weekly downloads
2
License
MIT
Repository
github
Last release
5 years ago

Build Status Greenkeeper 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). 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.

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

RuleDescriptionRecommendedFixable
consistent-test-itEnforce consistent test or it keywordfixable-green
expect-expectEnforce assertion to be made in a test body
lowercase-nameDisallow capitalized test namesfixable-green
no-alias-methodsDisallow alias methodsrecommendedfixable-green
no-disabled-testsDisallow disabled testsrecommended
no-commented-out-testsDisallow commented out tests
no-empty-titleDisallow empty titles
no-focused-testsDisallow focused testsrecommended
no-hooksDisallow setup and teardown hooks
no-identical-titleDisallow identical titlesrecommended
no-jasmine-globalsDisallow Jasmine globalsrecommendedfixable-yellow
no-jest-importDisallow importing jestrecommended
no-mocks-importDisallow manually importing from __mocks__
no-large-snapshotsDisallow large snapshots
no-test-callbackUsing a callback in asynchronous testsfixable-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()
prefer-expect-assertionsSuggest using expect.assertions() OR expect.hasAssertions()
prefer-spy-onSuggest using jest.spyOn()fixable-green
prefer-strict-equalSuggest using toStrictEqual()fixable-green
prefer-to-be-nullSuggest using toBeNull()fixable-green
prefer-to-be-undefinedSuggest using toBeUndefined()fixable-green
prefer-to-containSuggest using toContain()fixable-green
prefer-to-have-lengthSuggest using toHaveLength()fixable-green
prefer-inline-snapshotsSuggest using toMatchInlineSnapshot()fixable-green
require-tothrow-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
prefer-todoSuggest using test.todo()fixable-green
prefer-called-withSuggest 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