close

require-top-level-describe

Unreleased

Configuration

rslint.config.ts
import { defineConfig, jestPlugin } from '@rslint/core';

export default defineConfig([
  jestPlugin.configs.recommended,
  {
    rules: {
      'jest/require-top-level-describe': 'error',
    },
  },
]);

Rule Details

Require test cases (test / it) and hooks (beforeAll, beforeEach, afterEach, afterAll) to be inside a top-level describe block. Optionally limit how many top-level describe blocks a file may have via maxNumberOfTopLevelDescribes.

Examples of incorrect code for this rule:

test('my test', () => {});
describe('test suite', () => {
  it('test', () => {});
});

beforeAll(() => {});
describe('test suite', () => {});

Examples of correct code for this rule:

describe('test suite', () => {
  test('my test', () => {});
});

describe('test suite', () => {
  beforeEach(() => {});
  it('my test', () => {});
});

With { "maxNumberOfTopLevelDescribes": 1 }:

// incorrect — second top-level describe
describe('one', () => {});
describe('two', () => {});

// correct
describe('one', () => {
  describe('nested', () => {});
});

Original Documentation