|
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- # 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:
-
- - **it:** `it`, `xit`, `fit`, `it.only`, `it.skip`.
- - **test:** `test`, `xtest`, `test.only`, `test.skip`.
-
- 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
- });
- ```
|