Skip to content

noExcessiveNestedTestSuites (since v1.6.0)

Diagnostic Category: lint/complexity/noExcessiveNestedTestSuites

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');
});
});
});
});
});
});
});
complexity/noExcessiveNestedTestSuites.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');
});
});
});