# What changed in eslint-plugin-mocha

> 41 changes in eslint-plugin-mocha 12 from its official release notes, upgrade guides and advisories: 13 breaking, 13 new APIs and options. Each one cited. Sources checked 2026-10-19. HTML: https://unstale.sh/npm/eslint-plugin-mocha/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## eslint-plugin-mocha 12

### Breaking changes

- The rule now reports imported Mocha interface methods. (12.0.0) — [release notes](https://github.com/lo1tuma/eslint-plugin-mocha/releases/tag/eslint-plugin-mocha%4012.0.0)
- ESLint v10.2.0 or later is now required. (12.0.0) — [release notes](https://github.com/lo1tuma/eslint-plugin-mocha/releases/tag/eslint-plugin-mocha%4012.0.0)
- The rule now requires done callback handling in every branch. (12.0.0) — [release notes](https://github.com/lo1tuma/eslint-plugin-mocha/releases/tag/eslint-plugin-mocha%4012.0.0)
- The setting name changed from exports to require; update configurations using the previous setting name. (12.0.0) — [release notes](https://github.com/lo1tuma/eslint-plugin-mocha/releases/tag/eslint-plugin-mocha%4012.0.0)
- The rule was renamed to no-top-level-tests; update configurations that reference the old name. (12.0.0) — [release notes](https://github.com/lo1tuma/eslint-plugin-mocha/releases/tag/eslint-plugin-mocha%4012.0.0)
- The rule was renamed to no-hooks-for-single-child; update configurations that reference the old name. (12.0.0) — [release notes](https://github.com/lo1tuma/eslint-plugin-mocha/releases/tag/eslint-plugin-mocha%4012.0.0)
- The rule now catches this.skip(). (12.0.0) — [release notes](https://github.com/lo1tuma/eslint-plugin-mocha/releases/tag/eslint-plugin-mocha%4012.0.0)
- The rule was renamed to no-return-and-done; update configurations that reference the old name. (12.0.0) — [release notes](https://github.com/lo1tuma/eslint-plugin-mocha/releases/tag/eslint-plugin-mocha%4012.0.0)
- The rule was renamed to no-setup-in-suite; update configurations that reference the old name. (12.0.0) — [release notes](https://github.com/lo1tuma/eslint-plugin-mocha/releases/tag/eslint-plugin-mocha%4012.0.0)
- Its functionality moved into consistent-structure; update configurations that enable the old rule. (12.0.0) — [release notes](https://github.com/lo1tuma/eslint-plugin-mocha/releases/tag/eslint-plugin-mocha%4012.0.0)
- The no-synchronous-tests option was renamed to allowedAsyncMethods; update configurations that use the old option. (12.0.0) — [release notes](https://github.com/lo1tuma/eslint-plugin-mocha/releases/tag/eslint-plugin-mocha%4012.0.0)
- The rule was renamed to no-root-hooks; update configurations that reference the old name. (12.0.0) — [release notes](https://github.com/lo1tuma/eslint-plugin-mocha/releases/tag/eslint-plugin-mocha%4012.0.0)
- The recommended config defaults were adjusted, which may change the rules applied by this config. (12.0.0) — [release notes](https://github.com/lo1tuma/eslint-plugin-mocha/releases/tag/eslint-plugin-mocha%4012.0.0)

### New APIs and options

- A rule for enforcing suite ordering was added. (12.0.0) — [release notes](https://github.com/lo1tuma/eslint-plugin-mocha/releases/tag/eslint-plugin-mocha%4012.0.0)
- Custom hook names are now supported. (12.0.0) — [release notes](https://github.com/lo1tuma/eslint-plugin-mocha/releases/tag/eslint-plugin-mocha%4012.0.0)
- Custom exports wrapper functions are now supported. (12.0.0) — [release notes](https://github.com/lo1tuma/eslint-plugin-mocha/releases/tag/eslint-plugin-mocha%4012.0.0)
- A rule for limiting retry settings was added. (12.0.0) — [release notes](https://github.com/lo1tuma/eslint-plugin-mocha/releases/tag/eslint-plugin-mocha%4012.0.0)
- A rule for limiting slow test settings was added. (12.0.0) — [release notes](https://github.com/lo1tuma/eslint-plugin-mocha/releases/tag/eslint-plugin-mocha%4012.0.0)
- A rule for limiting timeout settings was added. (12.0.0) — [release notes](https://github.com/lo1tuma/eslint-plugin-mocha/releases/tag/eslint-plugin-mocha%4012.0.0)
- A rule forbidding async callbacks that use done was added. (12.0.0) — [release notes](https://github.com/lo1tuma/eslint-plugin-mocha/releases/tag/eslint-plugin-mocha%4012.0.0)
- A rule for detecting async operations in synchronous tests was added. (12.0.0) — [release notes](https://github.com/lo1tuma/eslint-plugin-mocha/releases/tag/eslint-plugin-mocha%4012.0.0)
- A rule to reject code after done() was added. (12.0.0) — [release notes](https://github.com/lo1tuma/eslint-plugin-mocha/releases/tag/eslint-plugin-mocha%4012.0.0)
- A rule for detecting conditional tests was added. (12.0.0) — [release notes](https://github.com/lo1tuma/eslint-plugin-mocha/releases/tag/eslint-plugin-mocha%4012.0.0)
- A rule to reject multiple done() calls was added. (12.0.0) — [release notes](https://github.com/lo1tuma/eslint-plugin-mocha/releases/tag/eslint-plugin-mocha%4012.0.0)
- A rule for detecting nested suites was added. (12.0.0) — [release notes](https://github.com/lo1tuma/eslint-plugin-mocha/releases/tag/eslint-plugin-mocha%4012.0.0)
- An allow option was added to no-setup-in-describe, now named no-setup-in-suite. (12.0.0) — [release notes](https://github.com/lo1tuma/eslint-plugin-mocha/releases/tag/eslint-plugin-mocha%4012.0.0)

### Behavior and default changes

- The rule now supports hook ordering. (12.0.0) — [release notes](https://github.com/lo1tuma/eslint-plugin-mocha/releases/tag/eslint-plugin-mocha%4012.0.0)
- Done callback properties can now be handed off. (12.0.0) — [release notes](https://github.com/lo1tuma/eslint-plugin-mocha/releases/tag/eslint-plugin-mocha%4012.0.0)
- The rule now covers scheduling APIs. (12.0.0) — [release notes](https://github.com/lo1tuma/eslint-plugin-mocha/releases/tag/eslint-plugin-mocha%4012.0.0)
- The rule now provides suggestions. (12.0.0) — [release notes](https://github.com/lo1tuma/eslint-plugin-mocha/releases/tag/eslint-plugin-mocha%4012.0.0)
- Commented skips are now allowed. (12.0.0) — [release notes](https://github.com/lo1tuma/eslint-plugin-mocha/releases/tag/eslint-plugin-mocha%4012.0.0)
- The rule now provides suggestions. (12.0.0) — [release notes](https://github.com/lo1tuma/eslint-plugin-mocha/releases/tag/eslint-plugin-mocha%4012.0.0)

### Tooling

- The rule now provides suggestions. (12.0.0) — [release notes](https://github.com/lo1tuma/eslint-plugin-mocha/releases/tag/eslint-plugin-mocha%4012.0.0)

### Fixes and other changes

- Fixes the rule for object property callbacks. (12.0.2) — [release notes](https://github.com/lo1tuma/eslint-plugin-mocha/releases/tag/eslint-plugin-mocha%4012.0.2)
- Fixes handle-done-callback for nested callback handoffs. (12.0.1) — [release notes](https://github.com/lo1tuma/eslint-plugin-mocha/releases/tag/eslint-plugin-mocha%4012.0.1)
- Usage of Mocha interface methods that are not configured is no longer flagged. (12.0.0) — [release notes](https://github.com/lo1tuma/eslint-plugin-mocha/releases/tag/eslint-plugin-mocha%4012.0.0)
- An autofix was added. (12.0.0) — [release notes](https://github.com/lo1tuma/eslint-plugin-mocha/releases/tag/eslint-plugin-mocha%4012.0.0)
- The rule now handles TypeScript this parameters. (12.0.0) — [release notes](https://github.com/lo1tuma/eslint-plugin-mocha/releases/tag/eslint-plugin-mocha%4012.0.0)
- The fixer now guards against await expressions. (12.0.0) — [release notes](https://github.com/lo1tuma/eslint-plugin-mocha/releases/tag/eslint-plugin-mocha%4012.0.0)
- Fixed the fixer for commented concise bodies. (12.0.0) — [release notes](https://github.com/lo1tuma/eslint-plugin-mocha/releases/tag/eslint-plugin-mocha%4012.0.0)
- Fixed false positives for nested functions. (12.0.0) — [release notes](https://github.com/lo1tuma/eslint-plugin-mocha/releases/tag/eslint-plugin-mocha%4012.0.0)
