2020-05-15 05:33:08 +08:00
|
|
|
# Disallow duplicate setup and teardown hooks (`no-duplicate-hooks`)
|
2020-03-07 11:45:40 +08:00
|
|
|
|
|
|
|
A describe block should not contain duplicate hooks.
|
|
|
|
|
|
|
|
## Rule Details
|
|
|
|
|
|
|
|
Examples of **incorrect** code for this rule
|
|
|
|
|
|
|
|
```js
|
|
|
|
/* eslint jest/no-duplicate-hooks: "error" */
|
|
|
|
|
|
|
|
describe('foo', () => {
|
|
|
|
beforeEach(() => {
|
|
|
|
// some setup
|
|
|
|
});
|
|
|
|
beforeEach(() => {
|
|
|
|
// some setup
|
|
|
|
});
|
|
|
|
test('foo_test', () => {
|
|
|
|
// some test
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
// Nested describe scenario
|
|
|
|
describe('foo', () => {
|
|
|
|
beforeEach(() => {
|
|
|
|
// some setup
|
|
|
|
});
|
|
|
|
test('foo_test', () => {
|
|
|
|
// some test
|
|
|
|
});
|
|
|
|
describe('bar', () => {
|
|
|
|
test('bar_test', () => {
|
|
|
|
afterAll(() => {
|
|
|
|
// some teardown
|
|
|
|
});
|
|
|
|
afterAll(() => {
|
|
|
|
// some teardown
|
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|
|
|
|
```
|
|
|
|
|
|
|
|
Examples of **correct** code for this rule
|
|
|
|
|
|
|
|
```js
|
|
|
|
/* eslint jest/no-duplicate-hooks: "error" */
|
|
|
|
|
|
|
|
describe('foo', () => {
|
|
|
|
beforeEach(() => {
|
|
|
|
// some setup
|
|
|
|
});
|
|
|
|
test('foo_test', () => {
|
|
|
|
// some test
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
// Nested describe scenario
|
|
|
|
describe('foo', () => {
|
|
|
|
beforeEach(() => {
|
|
|
|
// some setup
|
|
|
|
});
|
|
|
|
test('foo_test', () => {
|
|
|
|
// some test
|
|
|
|
});
|
|
|
|
describe('bar', () => {
|
|
|
|
test('bar_test', () => {
|
|
|
|
beforeEach(() => {
|
|
|
|
// some setup
|
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|
|
|
|
```
|