Have control over test and it usages (consistent-test-it)

Jest allows you to choose how you want to define your tests, using the it or the test keywords, with multiple permutations for each:

This rule gives you control over the usage of these keywords in your codebase.

Rule Details

This rule can be configured as follows

json5 { type: 'object', properties: { fn: { enum: ['it', 'test'], }, withinDescribe: { enum: ['it', 'test'], }, }, additionalProperties: false, }

fn

Decides whether to use test or it.

withinDescribe

Decides whether to use test or it within a describe scope.

```js /eslint jest/consistent-test-it: ["error", {"fn": "test"}]/

test('foo'); // valid test.only('foo'); // valid

it('foo'); // invalid it.only('foo'); // invalid ```

```js /eslint jest/consistent-test-it: ["error", {"fn": "it"}]/

it('foo'); // valid it.only('foo'); // valid

test('foo'); // invalid test.only('foo'); // invalid ```

```js /eslint jest/consistent-test-it: ["error", {"fn": "it", "withinDescribe": "test"}]/

it('foo'); // valid describe('foo', function () { test('bar'); // valid });

test('foo'); // invalid describe('foo', function () { it('bar'); // invalid }); ```

Default configuration

The default configuration forces all top-level tests to use test and all tests nested within describe to use it.

```js /eslint jest/consistent-test-it: ["error"]/

test('foo'); // valid describe('foo', function () { it('bar'); // valid });

it('foo'); // invalid describe('foo', function () { test('bar'); // invalid }); ```