You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
# Suggest having hooks before any test cases (`prefer-hooks-on-top`)
All hooks should be defined before the start of the tests
## Rule Details
Examples of **incorrect** code for this rule
```js /* eslint jest/prefer-hooks-on-top: "error" */
describe('foo', () => { beforeEach(() => { //some hook code }); test('bar', () => { some_fn(); }); beforeAll(() => { //some hook code }); test('bar', () => { some_fn(); }); });
// Nested describe scenario describe('foo', () => { beforeAll(() => { //some hook code }); test('bar', () => { some_fn(); }); describe('inner_foo', () => { beforeEach(() => { //some hook code }); test('inner bar', () => { some_fn(); }); test('inner bar', () => { some_fn(); }); beforeAll(() => { //some hook code }); afterAll(() => { //some hook code }); test('inner bar', () => { some_fn(); }); }); }); ```
Examples of **correct** code for this rule
```js /* eslint jest/prefer-hooks-on-top: "error" */
describe('foo', () => { beforeEach(() => { //some hook code });
// Not affected by rule someSetup();
afterEach(() => { //some hook code }); test('bar', () => { some_fn(); }); });
// Nested describe scenario describe('foo', () => { beforeEach(() => { //some hook code }); test('bar', () => { some_fn(); }); describe('inner_foo', () => { beforeEach(() => { //some hook code }); test('inner bar', () => { some_fn(); }); }); }); ```
|