NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #3040 most downloaded on npm
ESLint plugin to follow best practices and anticipate common mistakes when writing tests with Testing Library
Last release 6 months ago
24 Mar 2026
Ships fairly regularly
a new release about every 3 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
1 version withdrawn
withdrawn after publishing
7 years old
217 releases · first in 2019
replace use of deprecated methods
One column per quarter.
no-manual-cleanup: properly check all @testing-library imports
# 6.3.0 (2024-08-11) ### Features * add support for flat config
await-async-events: false positives for userEvent.setup() returned
await-async-events: false positive reports on awaited expressions evaluating to promise
prefer-presence-queries: support react-native matcher toBeOnTheScreen
await-async-events: avoid reporting userEvent.setup() in wrappers (#834) (a1bb21e), closes #800
handle multiple imports with no-manual-cleanup
prefer-implicit-assert: adding new rule (#815) (56a1900), closes #743
await-async-events: sync userEvent.setup() should not be reported (#817) (c0b6e6f), closes #800
no-await-sync-events: stop reporting user-event by default
You can follow the migration guide to v6.
You can follow the migration guide to v6.
await-async-query is now called await-async-queriesno-await-sync-events is now enabled by default in the DOM, Angular & React configsno-await-sync-query is now called no-await-sync-queriesno-debugging-utils now enables all debug methods in all configs by defaultno-node-access is now enabled by default in the DOM configawait-fire-event is now called await-async-eventno-global-regexp-flag-in-query is now enabled by default in all configsno-manual-cleanup is now enabled by default in the React & Vue configsno-render-in-setup is now called no-render-in-lifecycleprefer-wait-for is now removedawait-async-queries (#665) (c1803df)await-async-event + add support for user-event (#652) (b4ce9bb)no-await-sync-queries (#666) (7ed3da8)no-render-in-lifecycle (#649) (9acba43)await-async-util: false positives due to empty strings
getBy* inside within for on absence queries (#740) (b75dc73)no-wait-for-side-effects: false negatives in variables declarations (#677) (c3504a7), closes #368
await-async-events: improve fixer
await-async-event: pluralize to await-async-events
await-async-query: rename to await-async-queries
await-async-query is now called await-async-queriesno-await-sync-events: add to DOM, Angular & React configs by default
no-await-sync-events is now enabled by default in the DOM, Angular & React configsno-await-sync-query: rename to no-await-sync-queries
no-await-sync-query is now called no-await-sync-queriesno-debugging-utils: enable all debug methods in all configs by default (#663) (e394ce09), closes #621
no-debugging-utils now enables all debug methods in all configs by defaultno-debugging-utils: warn instead of error in all configs (#662) (8063f8f6), closes #622
no-node-access: add to DOM config by default (#661) (8dfe155f), closes #620
no-node-access is now enabled by default in the DOM configawait-async-event: add basic fixer
no-global-regexp-flag-in-query: add to all configs by default (#660) (c76a7bfa), closes #618
await-async-event + add support for user-event (#652) (b4ce9bb2), closes #626no-global-regexp-flag-in-query is enabled by default in all configawait-fire-event is now called await-async-eventno-manual-cleanup: add to React & Vue configs by default (#659) (8f6ebf56), closes #617
no-manual-cleanup is now enabled by default in the React & Vue configsno-render-in-setup: rename to no-render-in-lifecycle (#649) (9acba430), closes #625
no-render-in-setup is now called no-render-in-lifecycleprefer-wait-for: remove rule (#648) (20f23ad0), closes #627
prefer-presence-queries: ignore getBy* inside within on absence queries
# 5.11.0 (2023-05-10) ### Features * add prefer-query-matchers rule
deps: update dependencies to latest minor
await-async-util: false positives due to empty strings
await-async-utils: false positive when destructuring
consistent-data-testid: add support for custom error message (#719) (79b380f), closes #718
prefer-find-by: Respect waitFor options when autofixing (#679) (e31fe03), closes #579
await-async-query, await-async-utils, await-fire-event: support handling promises with jest-extended .toResolve & .toRejects
no-global-regexp-flag-in-query: Detect global RegExp in variable declarations (#678) (e2ea687), closes #592
no-wait-for-side-effects: false negatives in variables declarations (#677) (c3504a7), closes #368
no-node-access: false positives with props.children
no-dom-imports: false negatives with several testing library imports
no-node-access: report childElementCount prop
no-wait-for-side-effects: false positive inside .then() (#645) (fc6ccf8), closes #500
consistent-data-testid: avoid crash for filename with square brackets (#643) (48b19d5), closes #509
no-await-sync-events: false positive for delay from vars (#641) (3c2cbbd), closes #403
prefer-query-by-disappearance: improve error position
no-node-access: add allowContainerFirstChild option
await-fire-event: reference correct method names in reported messages (#591) (763df6e), closes #590
add support for @marko/testing-library
# 5.4.0 (2022-05-07) ### Features * add support for node v18
no-await-sync-events: define option schema correctly
no-await-sync-events: add eventModules option (#569) (88f6735), closes #567
no-global-regexp-flag-in-query: check if empty name property node (#566) (7f751e1), closes #565
add no-global-regex-flag-in-query rule (#560) (6e645e6), closes #559
prefer-presence-queries: add absence & presence options (#557) (3999534), closes #518
use isNodeOfType from ASTUtils instead of own version
move to non-experimental TS-ESLint utils
prefer-find-by: avoid reporting querySelector (#538) (369e24f), closes #501
## 5.0.3 (2022-01-09) ### Bug Fixes * update dependencies
render-result-naming-convention: use disjunction to separate allowed names
bump typescript-eslint dependencies
Your coding agent can read these notes before it upgrades. Set up the MCP server →