You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
130 lines
2.8 KiB
130 lines
2.8 KiB
# Enforces a maximum depth to nested describe calls (`max-nested-describe`) |
|
|
|
While it's useful to be able to group your tests together within the same file |
|
using `describe()`, having too many levels of nesting throughout your tests make |
|
them difficult to read. |
|
|
|
## Rule Details |
|
|
|
This rule enforces a maximum depth to nested `describe()` calls to improve code |
|
clarity in your tests. |
|
|
|
The following patterns are considered warnings (with the default option of |
|
`{ "max": 5 } `): |
|
|
|
```js |
|
describe('foo', () => { |
|
describe('bar', () => { |
|
describe('baz', () => { |
|
describe('qux', () => { |
|
describe('quxx', () => { |
|
describe('too many', () => { |
|
it('should get something', () => { |
|
expect(getSomething()).toBe('Something'); |
|
}); |
|
}); |
|
}); |
|
}); |
|
}); |
|
}); |
|
}); |
|
|
|
describe('foo', function () { |
|
describe('bar', function () { |
|
describe('baz', function () { |
|
describe('qux', function () { |
|
describe('quxx', function () { |
|
describe('too many', function () { |
|
it('should get something', () => { |
|
expect(getSomething()).toBe('Something'); |
|
}); |
|
}); |
|
}); |
|
}); |
|
}); |
|
}); |
|
}); |
|
``` |
|
|
|
The following patterns are **not** considered warnings (with the default option |
|
of `{ "max": 5 } `): |
|
|
|
```js |
|
describe('foo', () => { |
|
describe('bar', () => { |
|
it('should get something', () => { |
|
expect(getSomething()).toBe('Something'); |
|
}); |
|
}); |
|
|
|
describe('qux', () => { |
|
it('should get something', () => { |
|
expect(getSomething()).toBe('Something'); |
|
}); |
|
}); |
|
}); |
|
|
|
describe('foo2', function () { |
|
it('should get something', () => { |
|
expect(getSomething()).toBe('Something'); |
|
}); |
|
}); |
|
|
|
describe('foo', function () { |
|
describe('bar', function () { |
|
describe('baz', function () { |
|
describe('qux', function () { |
|
describe('this is the limit', function () { |
|
it('should get something', () => { |
|
expect(getSomething()).toBe('Something'); |
|
}); |
|
}); |
|
}); |
|
}); |
|
}); |
|
}); |
|
``` |
|
|
|
## Options |
|
|
|
```json |
|
{ |
|
"jest/max-nested-describe": [ |
|
"error", |
|
{ |
|
"max": 5 |
|
} |
|
] |
|
} |
|
``` |
|
|
|
### `max` |
|
|
|
Enforces a maximum depth for nested `describe()`. |
|
|
|
This has a default value of `5`. |
|
|
|
Examples of patterns **not** considered warnings with options set to |
|
`{ "max": 2 }`: |
|
|
|
```js |
|
describe('foo', () => { |
|
describe('bar', () => { |
|
it('should get something', () => { |
|
expect(getSomething()).toBe('Something'); |
|
}); |
|
}); |
|
}); |
|
|
|
describe('foo2', function () { |
|
describe('bar2', function () { |
|
it('should get something', function () { |
|
expect(getSomething()).toBe('Something'); |
|
}); |
|
|
|
it('should get else', function () { |
|
expect(getSomething()).toBe('Something'); |
|
}); |
|
}); |
|
}); |
|
```
|
|
|