Skip to content

noExcessiveNestedTestSuites

Diagnostic Category: lint/complexity/noExcessiveNestedTestSuites

Since: v1.6.0

Sources:

This rule enforces a maximum depth to nested describe() in test files.

To improve code clarity in your tests, the rule limits nested describe to 5.

describe('foo', () => {
describe('bar', () => {
describe('baz', () => {
describe('qux', () => {
describe('quxx', () => {
describe('too many', () => {
it('should get something', () => {
expect(getSomething()).toBe('Something');
});
});
});
});
});
});
});
code-block.js:6:11 lint/complexity/noExcessiveNestedTestSuites ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Excessive describe() nesting detected.

4 │ describe(‘qux’, () => {
5 │ describe(‘quxx’, () => {
> 6 │ describe(‘too many’, () => {
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 7 │ it(‘should get something’, () => {
> 8 │ expect(getSomething()).toBe(‘Something’);
> 9 │ });
> 10 │ });
^^
11 │ });
12 │ });

Excessive nesting of describe() calls can hinder test readability.

Consider refactoring and reduce the level of nested describe to improve code clarity.

describe('foo', () => {
describe('bar', () => {
it('should get something', () => {
expect(getSomething()).toBe('Something');
});
});
describe('qux', () => {
it('should get something', () => {
expect(getSomething()).toBe('Something');
});
});
});