2020-09-13 06:19:45 +08:00
|
|
|
# Require test cases and hooks to be inside a `describe` block (`require-top-level-describe`)
|
2020-03-07 11:45:40 +08:00
|
|
|
|
|
|
|
Jest allows you to organise your test files the way you want it. However, the
|
|
|
|
more your codebase grows, the more it becomes hard to navigate in your test
|
2020-09-13 06:19:45 +08:00
|
|
|
files. This rule makes sure you provide at least a top-level `describe` block in
|
|
|
|
your test file.
|
2020-03-07 11:45:40 +08:00
|
|
|
|
|
|
|
## Rule Details
|
|
|
|
|
|
|
|
This rule triggers a warning if a test case (`test` and `it`) or a hook
|
|
|
|
(`beforeAll`, `beforeEach`, `afterEach`, `afterAll`) is not located in a
|
2020-09-13 06:19:45 +08:00
|
|
|
top-level `describe` block.
|
2020-03-07 11:45:40 +08:00
|
|
|
|
|
|
|
The following patterns are considered warnings:
|
|
|
|
|
|
|
|
```js
|
|
|
|
// Above a describe block
|
|
|
|
test('my test', () => {});
|
|
|
|
describe('test suite', () => {
|
|
|
|
it('test', () => {});
|
|
|
|
});
|
|
|
|
|
|
|
|
// Below a describe block
|
|
|
|
describe('test suite', () => {});
|
|
|
|
test('my test', () => {});
|
|
|
|
|
|
|
|
// Same for hooks
|
|
|
|
beforeAll('my beforeAll', () => {});
|
|
|
|
describe('test suite', () => {});
|
|
|
|
afterEach('my afterEach', () => {});
|
|
|
|
```
|
|
|
|
|
|
|
|
The following patterns are **not** considered warnings:
|
|
|
|
|
|
|
|
```js
|
|
|
|
// In a describe block
|
|
|
|
describe('test suite', () => {
|
|
|
|
test('my test', () => {});
|
|
|
|
});
|
|
|
|
|
|
|
|
// In a nested describe block
|
|
|
|
describe('test suite', () => {
|
|
|
|
test('my test', () => {});
|
|
|
|
describe('another test suite', () => {
|
|
|
|
test('my other test', () => {});
|
|
|
|
});
|
|
|
|
});
|
|
|
|
```
|
|
|
|
|
|
|
|
## When Not To Use It
|
|
|
|
|
|
|
|
Don't use this rule on non-jest test files.
|