29.15.0 (2026-02-15)
- no-conditional-in-test: only report optional chaining when
allowOptionalChainingis false (#1934) (3f5751e)
29.14.0 (2026-02-12)
29.13.0 (2026-02-08)
29.12.2 (2026-02-03)
29.12.1 (2026-01-02)
29.12.0 (2025-12-30)
- prefer-mock-return-shorthand: greatly improve checking if mutable variables are used (#1914) (13bbd20)
29.11.4 (2025-12-30)
29.11.3 (2025-12-30)
29.11.2 (2025-12-29)
29.11.1 (2025-12-29)
29.11.0 (2025-12-23)
29.10.1 (2025-12-22)
29.10.0 (2025-12-22)
29.9.0 (2025-12-22)
29.8.0 (2025-12-22)
29.7.0 (2025-12-22)
29.6.1 (2025-12-22)
29.6.0 (2025-12-21)
29.5.0 (2025-12-14)
29.4.1 (2025-12-14)
- prefer-to-have-been-called-times: actually check that current matcher is
toHaveLength(#1878) (3415744)
29.4.0 (2025-12-13)
- create new
prefer-to-have-been-called-timesrule (281085a) - create new
prefer-to-have-been-calledrule (24e2acd)
29.3.0 (2025-12-13)
- prefer-expect-assertions: support basic uses of
hasAssertionsinbeforeEachandafterEachhooks (#1871) (eed9acb)
29.2.3 (2025-12-13)
29.2.2 (2025-12-12)
29.2.1 (2025-11-23)
29.2.0 (2025-11-20)
29.1.0 (2025-11-10)
29.0.1 (2025-06-18)
29.0.0 (2025-06-18)
- remove
jest/no-alias-methodsfromstylesconfig (d3bf1dc)
- drop support for
[@typescript-eslint](https://github.com/typescript-eslint)v6 (fe61a40) - drop support for
[@typescript-eslint](https://github.com/typescript-eslint)v7 (5ca65d3) - drop support for ESLint v7 (b06e7d0)
- drop support for ESLint v8.x prior to v8.57.0 (d79765a)
- drop support for Node v16 (aaf62cd)
- drop support for Node v18 (598880c)
- drop support for Node v20.x prior to v20.12.0 (2f2fb68)
- drop support for Node v21 (a366393)
- drop support for Node v23 (1fb1a67)
- unbound-method: remove
docs.recommendedanddocs.requiresTypeCheckingproperties (945651c)
- dropped support for ESLint v8.x prior to v8.57.0
- dropped support for Node v20.x prior to v20.12.0
- dropped support for Node v23
- dropped support for Node v18
- unbound-method: removed
docs.recommendanddocs.requiresTypeCheckingfromunbound-method - dropped support for
@typescript-eslintv7 - dropped support for
@typescript-eslintv6 jest/no-alias-methodshas been removed from thestylesconfig as its already in therecommendedconfig- dropped support for ESLint v7
- dropped support for Node v21
- dropped support for Node v16
28.14.0 (2025-06-15)
28.13.5 (2025-06-13)
28.13.4 (2025-06-13)
28.13.3 (2025-06-10)
28.13.2 (2025-06-10)
28.13.1 (2025-06-10)
28.13.0 (2025-06-06)
28.12.0 (2025-05-29)
28.11.2 (2025-05-29)
28.11.1 (2025-05-27)
- no-large-snapshots: use a far better message for when an unexpected snapshot is found (#1736) (0f5b873)
28.11.0 (2025-01-15)
28.10.1 (2025-01-15)
28.10.0 (2024-12-19)
28.9.0 (2024-11-05)
28.8.3 (2024-09-04)
28.8.2 (2024-09-02)
28.8.1 (2024-08-29)
28.8.0 (2024-08-07)
28.7.0 (2024-08-03)
- allow
[@typescript-eslint](https://github.com/typescript-eslint)v8 (#1636) (fb43171)
28.6.0 (2024-06-06)
- prefer-jest-mocked: add new rule (#1599) (4b6a4f2)
- valid-expect: supporting automatically fixing adding async in some cases (#1579) (5b9b47e)
28.5.0 (2024-05-03)
28.4.0 (2024-05-03)
28.3.0 (2024-04-27)
28.2.0 (2024-04-06)
28.1.1 (2024-04-06)
28.1.0 (2024-04-06)
28.0.0 (2024-04-06)
- allow ESLint 9 as peer dependency (#1547) (3c5e167)
- drop support for Node 19 (#1548) (c87e388)
- no-large-snapshots: avoid
instanceof RegExpcheck for ESLint v9 compatibility (#1542) (af4a9c9)
- drop support for
@typescript-eslint/eslint-pluginv5 (#1530) (150e355) - drop support for Node v14 (#1527) (df5e580)
- remove
no-ifrule (#1528) (f976fc8) - remove
snapshotprocessor andflat/snapshotconfig (#1532) (98087f9) - upgrade
@typescript-eslint/utilsto v6 (#1508) (dc6e8cd)
- Node v19 is no longer supported
- removed unneeded
snapshotprocessor andflat/snapshotconfig - dropped support for
@typescript-eslint/eslint-pluginv5 - dropped support for Node v14
- removed
no-ifin favor ofno-conditional-in-test
28.0.0-next.7 (2024-04-06)
- Node v19 is no longer supported
28.0.0-next.6 (2024-03-29)
28.0.0-next.5 (2024-03-27)
- removed unneeded
snapshotprocessor andflat/snapshotconfig
28.0.0-next.4 (2024-03-23)
- dropped support for
@typescript-eslint/eslint-pluginv5
28.0.0-next.3 (2024-03-22)
28.0.0-next.2 (2024-03-21)
- dropped support for Node v14
28.0.0-next.1 (2024-03-21)
- removed
no-ifin favor ofno-conditional-in-test
27.9.0 (2024-02-16)
27.8.0 (2024-02-13)
27.7.0 (2024-02-13)
- allow
[@typescript-eslint](https://github.com/typescript-eslint)v7 (#1500) (6be2928)
27.6.3 (2024-01-12)
27.6.2 (2024-01-10)
27.6.1 (2024-01-01)
27.6.0 (2023-10-26)
27.5.0 (2023-10-26)
27.4.3 (2023-10-20)
27.4.2 (2023-09-29)
27.4.1 (2023-09-29)
27.4.0 (2023-09-15)
27.3.0 (2023-09-15)
27.2.3 (2023-07-13)
27.2.2 (2023-06-19)
27.2.1 (2023-01-06)
27.2.0 (2022-12-31)
27.1.7 (2022-12-15)
27.1.6 (2022-11-24)
- ensure rule fixes produce valid code when function params and args have trailing commas (#1282) (8eca0b7)
27.1.5 (2022-11-10)
27.1.4 (2022-11-04)
27.1.3 (2022-10-18)
27.1.2 (2022-10-14)
27.1.1 (2022-10-05)
27.1.0 (2022-10-03)
27.0.4 (2022-09-10)
27.0.3 (2022-09-09)
27.0.2 (2022-09-08)
- no-restricted-matchers: improve check to not be solely based on the start of the matcher chain (#1236) (5fe4568), closes #1235
27.0.1 (2022-08-28)
27.0.0 (2022-08-28)
- drop support for
eslint@6(#1212) (21fc2fe) - drop support for Node versions 12 and 17 (#1211) (4c987f5)
- make
no-alias-methodsrecommended (#1221) (914b24a) - no-jest-import: remove rule (#1220) (918873b)
- no-restricted-matchers: match based on start of chain, requiring each permutation to be set (#1218) (f4dd97a)
no-alias-methodsis now recommended as the methods themselves will be removed in the next major version of Jest- no-jest-import: removed
no-jest-importrule - unbound-method: errors thrown by the
unbound-methodbase rule are no longer suppressed - really this means that if you don't specifyprojectwhen this rule is enabled and@typescript-eslint/eslint-pluginis present, that error will no longer be suppressed instead of silently doing nothing; it will still not throw if this rule is enabled without the base rule being present - no-restricted-matchers:
no-restricted-matchersnow checks against the start of the expect chain, meaning you have to explicitly list each possible matcher & modifier permutations that you want to restrict - Support for ESLint version 6 is removed
- Node versions 12 and 17 are no longer supported
27.0.0-next.2 (2022-08-28)
- make
no-alias-methodsrecommended (#1221) (914b24a) - no-jest-import: remove rule (#1220) (918873b)
- no-restricted-matchers: match based on start of chain, requiring each permutation to be set (#1218) (f4dd97a)
no-alias-methodsis now recommended as the methods themselves will be removed in the next major version of Jest- no-jest-import: removed
no-jest-importrule - unbound-method: errors thrown by the
unbound-methodbase rule are no longer suppressed - really this means that if you don't specifyprojectwhen this rule is enabled and@typescript-eslint/eslint-pluginis present, that error will no longer be suppressed instead of silently doing nothing; it will still not throw if this rule is enabled without the base rule being present - no-restricted-matchers:
no-restricted-matchersnow checks against the start of the expect chain, meaning you have to explicitly list each possible matcher & modifier permutations that you want to restrict
27.0.0-next.1 (2022-08-23)
- drop support for
eslint@6(#1212) (21fc2fe) - drop support for Node versions 12 and 17 (#1211) (4c987f5)
- Support for ESLint version 6 is removed
- Node versions 12 and 17 are no longer supported
26.9.0 (2022-08-28)
26.8.7 (2022-08-21)
26.8.6 (2022-08-21)
26.8.5 (2022-08-20)
26.8.4 (2022-08-19)
- prefer-mock-promise-shorthand: ignore
mockImplementationfunctions that have parameters (#1199) (78ccbef)
26.8.3 (2022-08-15)
26.8.2 (2022-08-09)
26.8.1 (2022-08-08)
- no-standalone-expect: only report on
expect.hasAssertions&expect.assertionsmember calls (#1191) (4bf9eea)
26.8.0 (2022-08-07)
26.7.0 (2022-07-29)
26.6.0 (2022-07-14)
26.5.3 (2022-06-06)
26.5.2 (2022-06-06)
26.5.1 (2022-06-05)
26.5.0 (2022-06-04)
26.4.7 (2022-06-04)
26.4.6 (2022-05-30)
26.4.5 (2022-05-29)
26.4.4 (2022-05-29)
- don't consider template tags in the middle of a possible jest function chain to be valid (#1133) (430de17)
26.4.3 (2022-05-29)
- don't consider method calls on literals or
newto be jest functions (#1132) (379ceb3) - produce valid code when when fixing properties accessed with square brackets (#1131) (6cd600d)
26.4.2 (2022-05-28)
- don't consider
concurrent.skipandconcurrent.onlyvalid test functions (#1124) (0aa5eb6) - no-disabled-tests: use jest function call parser for checking number of args (#1126) (b67e389)
26.4.1 (2022-05-28)
- no-disabled-tests: switch to using jest function call parser (#1125) (32931c3)
- support
failingproperty on test functions (#1123) (6d75e8d)
26.4.0 (2022-05-28)
26.3.0 (2022-05-28)
26.2.2 (2022-05-14)
26.2.1 (2022-05-14)
26.2.0 (2022-05-13)
26.1.5 (2022-04-22)
26.1.4 (2022-04-08)
- prefer-snapshot-hint: don't report multi snapshots in different tests within the same describe (#1078) (98e5166)
26.1.3 (2022-03-24)
26.1.2 (2022-03-19)
26.1.1 (2022-02-15)
26.1.0 (2022-02-06)
- create
no-conditional-in-testrule (#1027) (d551850) - create
prefer-snapshot-hintrule (#1012) (d854723) - deprecate
no-ifin favor ofno-conditional-in-test(#1049) (35f32cc)
26.1.0-next.2 (2022-02-06)
26.1.0-next.1 (2022-02-06)
26.0.0 (2022-01-24)
- Drop support for
@typescript-eslint/eslint-plugin@4
25.7.0 (2022-01-15)
- create
prefer-equality-matcherrule (#1016) (341353b) - valid-expect: support
asyncMatchersoption and default tojest-extendedmatchers (#1018) (c82205a)
25.6.0 (2022-01-15)
25.5.0 (2022-01-15)
25.4.0 (2022-01-15)
25.3.4 (2022-01-01)
25.3.3 (2021-12-30)
- prefer-to-contain: support square bracket accessors (#1009) (73984a7)
- prefer-to-have-length: support square bracket accessors (#1010) (9e70f55)
25.3.2 (2021-12-27)
- no-large-snapshots: only count size of template string for inline snapshots (#1005) (5bea38f)
- prefer-hooks-on-top: improve message & docs (#999) (f9e7ae2)
25.3.1 (2021-12-27)
25.3.0 (2021-11-23)
25.2.4 (2021-11-08)
25.2.3 (2021-11-04)
25.2.2 (2021-10-17)
25.2.1 (2021-10-15)
25.2.0 (2021-10-14)
25.1.0 (2021-10-14)
25.0.6 (2021-10-14)
- valid-expect-in-promise: allow
expect.resolve&expect.reject(#948) (71b7e17), closes #947 - valid-expect-in-promise: support
awaitin arrays (#949) (a62130c)
25.0.5 (2021-10-11)
25.0.4 (2021-10-11)
25.0.3 (2021-10-11)
25.0.2 (2021-10-11)
25.0.1 (2021-10-10)
- specify peer dependency ranges correctly (cb87458)
25.0.0 (2021-10-10)
- add
prefer-to-beto style ruleset (2a3376f) - lowercase-name: rename to
prefer-lowercase-title(b860084) - prefer-to-be-null: remove rule (809bcda)
- prefer-to-be-undefined: remove rule (3434d9b)
- remove deprecated rules (#661) (e8f16ec)
- valid-describe: rename to
valid-describe-callback(f3e9e9a)
- valid-describe: renamed
valid-describetovalid-describe-callback - lowercase-name: renamed
lowercase-nametoprefer-lowercase-title - prefer-to-be-undefined: removed
prefer-to-be-undefinedrule - prefer-to-be-null: removed
prefer-to-be-nullrule - recommend
prefer-to-berule - Removes rules
no-expect-resolves,no-truthy-falsy,no-try-expect, andprefer-inline-snapshots - Drop support for ESLint 5
- Drop support for Node 10 and 15
25.0.0-next.7 (2021-10-10)
- add
prefer-to-beto style ruleset (2a3376f) - lowercase-name: rename to
prefer-lowercase-title(b860084) - prefer-to-be-null: remove rule (809bcda)
- prefer-to-be-undefined: remove rule (3434d9b)
- valid-describe: rename to
valid-describe-callback(f3e9e9a)
- valid-describe: renamed
valid-describetovalid-describe-callback - lowercase-name: renamed
lowercase-nametoprefer-lowercase-title - prefer-to-be-undefined: removed
prefer-to-be-undefinedrule - prefer-to-be-null: removed
prefer-to-be-nullrule - recommend
prefer-to-berule
25.0.0-next.6 (2021-10-10)
- lowercase-name: consider skip and only prefixes for ignores (#923) (8716c24)
- prefer-to-be: don't consider RegExp literals as
toBe-able (#922) (99b6d42)
- create
require-hookrule (#929) (6204b31) - deprecate
prefer-to-be-nullrule (4db9161) - deprecate
prefer-to-be-undefinedrule (fa08f09) - valid-expect-in-promise: re-implement rule (#916) (7a49c58)
25.0.0-next.5 (2021-09-29)
- no-deprecated-functions: remove
process.cwdfrom resolve paths (#889) (6940488) - no-identical-title: always consider
.eachtitles unique (#910) (a41a40e) - valid-expect-in-promise: support
finally(#914) (9c89855) - valid-expect-in-promise: support additional test functions (#915) (4798005)
- create
prefer-expect-resolvesrule (#822) (2556020) - create
prefer-to-berule (#864) (3a64aea) - require-top-level-describe: support enforcing max num of describes (#912) (14a2d13)
- valid-title: allow custom matcher messages (#913) (ffc9392)
25.0.0-next.4 (2021-09-20)
- mark rules that suggest fixes with
hasSuggestionfor ESLint v8 (#898) (ec0a21b) - use correct property
hasSuggestionsrather thanhasSuggestion(#899) (dfd2368)
25.0.0-next.3 (2021-09-17)
- Removes rules
no-expect-resolves,no-truthy-falsy,no-try-expect, andprefer-inline-snapshots
25.0.0-next.2 (2021-09-13)
- Drop support for ESLint 5
25.0.0-next.1 (2021-09-13)
- Drop support for Node 10 and 15
24.7.0 (2021-10-10)
- create
require-hookrule (#929) (6204b31) - deprecate
prefer-to-be-nullrule (4db9161) - deprecate
prefer-to-be-undefinedrule (fa08f09)
24.6.0 (2021-10-09)
24.5.2 (2021-10-04)
24.5.1 (2021-10-04)
24.5.0 (2021-09-29)
- no-deprecated-functions: remove
process.cwdfrom resolve paths (#889) (6940488) - no-identical-title: always consider
.eachtitles unique (#910) (a41a40e)
- create
prefer-expect-resolvesrule (#822) (2556020) - create
prefer-to-berule (#864) (3a64aea) - require-top-level-describe: support enforcing max num of describes (#912) (14a2d13)
- valid-title: allow custom matcher messages (#913) (ffc9392)
24.4.3 (2021-09-28)
- valid-expect-in-promise: support
finally(#914) (9c89855) - valid-expect-in-promise: support additional test functions (#915) (4798005)
24.4.2 (2021-09-17)
24.4.1 (2021-09-17)
24.4.0 (2021-07-21)
24.3.7 (2021-07-21)
24.3.6 (2021-04-26)
- no-conditional-expect: check for expects in
catchs on promises (#819) (1fee973) - valid-expect: support async
expectin ternary statements (#833) (7b7a396) - improve handling of
.eachcalls and with tagged literals (#814) (040c605)
24.3.5 (2021-04-10)
24.3.4 (2021-04-05)
24.3.3 (2021-04-02)
- no-duplicate-hooks: support
describe.each(#797) (243cb4f), closes #642 - prefer-expect-assertions: support
.each(#798) (f758243), closes #676
24.3.2 (2021-03-16)
24.3.1 (2021-03-13)
24.3.0 (2021-03-13)
24.2.1 (2021-03-10)
24.2.0 (2021-03-09)
24.1.10 (2021-03-09)
24.1.9 (2021-03-08)
24.1.8 (2021-03-07)
24.1.7 (2021-03-06)
- no-disabled-tests: adjust selector to match only test functions (#777) (c916902)
- no-disabled-tests: support
describe.skip.each&xdescribe.each(#778) (6a32e87)
24.1.6 (2021-03-06)
24.1.5 (2021-02-17)
24.1.4 (2021-02-16)
- lowercase-name: support
.eachmethods (#746) (3d847b2) - require-top-level-describe: handle
describe.eachproperly (#745) (677be45)
24.1.3 (2020-11-12)
24.1.2 (2020-11-12)
24.1.1 (2020-11-12)
24.1.0 (2020-10-05)
24.0.2 (2020-09-20)
24.0.1 (2020-09-12)
24.0.0 (2020-09-04)
- no-large-snapshots: run on all files regardless of type (#637) (22113db), closes #370
- remove Jasmine globals (#596) (a0e2bc5)
- update to typescript-eslint@4 (1755965), closes #590
- no-done-callback: support hooks (#656) (3e6cb44), closes #649 #651
- add
no-conditional-expectto the recommended ruleset (40cd89d) - add
no-deprecated-functionsto the recommended ruleset (5b2af00) - add
no-interpolation-in-snapshotsto the recommended ruleset (3705dff) - add
valid-titleto recommended ruleset (41f7873) - drop support for node 8 (#570) (6788e72)
- set
no-jasmine-globalstoerrorin recommended ruleset (7080952) - no-large-snapshots: remove
whitelistedSnapshotsoption (8c1c0c9)
- no-done-callback:
no-done-callbackwill now report hooks using callbacks as well, not just tests - no-test-callback: rename
no-test-callbacktono-done-callback - recommend
no-conditional-expectrule - recommend
no-interpolation-in-snapshotsrule - recommend
no-deprecated-functionsrule - recommend
valid-titlerule - recommend erroring for
no-jasmine-globalsrule - no-large-snapshots:
no-large-snapshotsruns on all files regardless of type - Jasmine globals are no marked as such
- Node 10+ required
23.20.0 (2020-07-30)
23.19.0 (2020-07-27)
23.18.2 (2020-07-26)
23.18.1 (2020-07-26)
23.18.0 (2020-07-05)
23.17.1 (2020-06-23)
23.17.0 (2020-06-23)
23.16.0 (2020-06-21)
- create
no-conditional-expectrule (aba53e4) - deprecate
no-try-expectin favor ofno-conditional-expect(6d07cad)
23.15.0 (2020-06-21)
23.14.0 (2020-06-20)
- no-test-callback: check argument is an identifier (f70612d)
- no-test-callback: provide suggestion instead of autofix (782d8fa)
- prefer-strict-equal: provide suggestion instead of autofix (2eaed2b)
- prefer-expect-assertions: provide suggestions (bad88a0)
23.13.2 (2020-05-26)
23.13.1 (2020-05-17)
- no-if: use correct syntax for placeholder substitution in message (6d1eda8)
23.13.0 (2020-05-16)
23.12.0 (2020-05-16)
- deprecate
no-expect-resolvesrule (b6a22e5) - deprecate
no-truthy-falsyrule (a67d92d) - deprecate
prefer-inline-snapshotsrule (1360e9b)
23.11.0 (2020-05-12)
23.10.0 (2020-05-09)
23.9.0 (2020-05-04)
23.8.2 (2020-03-06)
23.8.1 (2020-02-29)
23.8.0 (2020-02-23)
23.7.0 (2020-02-07)
23.6.0 (2020-01-12)
23.5.0 (2020-01-12)
- expect-expect: support glob patterns for assertFunctionNames (#509) (295ca9a)
- valid-expect: refactor
valid-expectlinting messages (#501) (7338362)
23.4.0 (2020-01-10)
- expect-expect: support chained function names (#471) (#508) (beb1aec)
- rules: add support for function declaration as test case (#504) (ac7fa48)