Skip to content

jest/valid-describe-callback Correctness

What it does

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

  • should not be async
  • should not contain any parameters
  • should not contain any return statements

Why is this bad?

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

Example

javascript
// Async callback functions are not allowed
describe("myFunction()", async () => {
  // ...
});

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

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

This rule is compatible with eslint-plugin-vitest, to use it, add the following configuration to your .eslintrc.json:

json
{
  "rules": {
    "vitest/valid-describe-callback": "error"
  }
}

References

Released under the MIT License.