|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- # 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();
- });
- });
- });
- ```
|