Enforce valid describe() callback (valid-describe-callback)

Using an improper describe() callback function can lead to unexpected test errors.

Rule Details

This rule validates that the second parameter of a describe() function is a callback function. This callback function:

The following describe function aliases are also validated:

The following patterns are considered warnings:

```js // Async callback functions are not allowed describe('myFunction()', async () => { // ... });

// Callback function parameters are not allowed describe('myFunction()', done => { // ... });

// describe('myFunction', () => { // No return statements are allowed in block of a callback function return Promise.resolve().then(() => { it('breaks', () => { throw new Error('Fail'); }); }); });

// Returning a value from a describe block is not allowed describe('myFunction', () => it('returns a truthy value', () => { expect(myFunction()).toBeTruthy(); })); ```

The following patterns are not considered warnings:

js describe('myFunction()', () => { it('returns a truthy value', () => { expect(myFunction()).toBeTruthy(); }); });