Catalog / Testing

Jest changelog

Test runner for JavaScript and TypeScript projects, carrying its assertions, mocking and snapshot testing in one package.

Latest
30.5.1
Shipped
1 Sep 2026today
Collected
60 releasesback to 28 Sep 2021
Source
jestjs/jest
Project
jestjs.io
Feed
RSS

Every release of a major line in one list, which is the one view the publisher never writes: 27 to 28, 28 to 29, 29 to 30. Only the lines whose first release the archive holds are listed, because a partial major would read as the whole of one.

Read today, the first day on record. Collection status

Version history

30.x14 releases
30.5.1

Fixes [jest-config] Don't warn about global-only options in the config that supplies the global config - the root config a project resolves to, or the first entry of --projects when no root config is passed (#16411) [jest-config, jest-types

fixeddeprecated
30.5.0

On a personal note: King Harald V of Norway passed away this morning. He ascended the throne 35 years ago, two months before I was born. This release is dedicated to his memory. Hvil i fred 🇳🇴 This is a big release. It touches jest-runtim

addedfixedchanged
30.4.2

Fixes [jest-runtime] Fix named imports from CJS modules whose module.exports is a function with own-property exports (#16150)

fixed
30.4.1

Features [jest-config, jest-core, jest-runner, jest-schemas, jest-types] Allow custom runner configuration options via tuple format ['runner-path', {options}] (#16141) Fixes [jest-runtime] Align CJS-from-ESM default export with Node: module

fixed
30.4.0

Big release! 😀 Main feature is a rewrite of our custom runtime in preparation for stabilisation of native support of ESM. As part of that work require(esm) module is now supported on Node 24.9+ (still requires --experimental-vm-modules lik

addedfixedchanged
30.3.0

Features [jest-config] Add defineConfig and mergeConfig helpers for type-safe Jest config (#15844) [jest-fake-timers] Add setTimerTickMode to configure how timers advance [*] Reduce token usage when run through LLMs (3f17932) Fixes [jest-co

addedfixedchanged
30.2.0

Chore & Maintenance [*] Update example repo for testing React Native projects (#15832) [*] Update jest-watch-typeahead to v3 (#15830) Features [jest-environment-jsdom-abstract] Add support for JSDOM v27 (#15834) Fixes [babel-jest] Export th

addedfixedchanged
30.1.3

Fixes Fix unstable_mockModule with node: prefixed core modules.

fixed
30.1.2

Fixes [jest-snapshot-utils] Correct snapshot header regexp to work with newline across OSes (#15803)

fixed
30.1.1

Fixes [jest-snapshot-utils] Fix deprecated goo.gl snapshot warning not handling Windows end-of-line sequences (#15800)

fixeddeprecated
30.1.0

Features [jest-leak-detector] Configurable GC aggressiveness regarding to V8 heap snapshot generation (#15793) [jest-runtime] Reduce redundant ReferenceError messages [jest-core] Include test modules that failed to load when --onlyFailures

fixedchangeddeprecated
30.0.2

Fixes [jest-matcher-utils] Make 'deepCyclicCopyObject' safer by setting descriptors to a null-prototype object (#15689) [jest-util] Make garbage collection protection property writable (#15689)

fixedchanged
30.0.1

Features [jest-resolver] Implement the defaultAsyncResolver (#15679) Fixes [jest-resolver] Resolve builtin modules correctly (#15683) [jest-environment-node, jest-util] Avoid setting globals cleanup protection symbol when feature is off (#1

fixedchangeddeprecated
30.0.0

Today we are happy to announce the release of Jest 30. This release features a substantial number of changes, fixes, and improvements. While it is one of the largest major releases of Jest ever, we admit that three years for a major release

addedfixedchanged
29.x23 releases
29.7.0

Features [create-jest] Add npm init / yarn create initialiser for Jest projects (#14465) [jest-validate] Allow deprecation warnings for unknown options (#14499) Fixes [jest-resolver] Replace unmatched capture groups in moduleNameMapper with

addedfixeddeprecated
29.6.4

Fixes [jest-core] Fix typo in scheduleAndRun performance marker (#14434) [jest-environment-node] Make sure atob and btoa are writeable in Node 20 (#14446) [jest-worker] Additional error wrapper for parentPort.postMessage to fix unhandled Da

fixed
29.6.3

Fixes [expect, @jest/expect-utils] ObjectContaining support symbol as key (#14414) [expect] Remove @types/node from dependencies (#14385) [jest-core] Use workers in watch mode by default to avoid crashes (#14059 & #14085). [jest-reporters]

breakingfixedchanged
29.6.2

Fixes [jest-circus] Fix snapshot matchers in concurrent tests when nr of tests exceeds maxConcurrency (#14335) [@jest/core] When running global setup and teardown, do not try to change the message property of the thrown error object when th

addedfixed
29.6.1

Fixes [jest-circus] Revert #14110 as it was a breaking change (#14304)

breakingfixed
29.6.0

Features [jest-circus, jest-snapshot] Add support for snapshot matchers in concurrent tests (#14139) [jest-cli] Include type definitions to generated config files (#14078) [jest-snapshot] Support arrays as property matchers (#14025) [jest-c

addedfixedchanged
29.5.0

Features [jest-changed-files] Support Sapling (#13941) [jest-circus, @jest/cli, jest-config] Add feature to randomize order of tests via CLI flag or through the config file(#12922) [jest-cli, jest-config, @jest/core, jest-haste-map, @jest/r

addedfixedchanged
29.4.3

Features [expect] Update toThrow() to be able to use error causes (#13606) [jest-core] allow to use workerIdleMemoryLimit with only 1 worker or runInBand option (#13846) [jest-message-util] Add support for error causes (#13868 & #13912) [je

addedfixedchanged
29.4.2

Features [@jest/core] Instrument significant lifecycle events with performance.mark() (#13859) Fixes [expect, @jest/expect] Provide type of actual as a generic argument to Matchers to allow better-typed extensions (#13848) [jest-circus] Add

fixed
29.4.1

Features [expect, jest-circus, @jest/types] Implement numPassingAsserts of testResults to track the number of passing asserts in a test (#13795) [jest-core] Add newlines to JSON output (#13817) [@jest/reporters] Automatic log folding in Git

addedfixed
29.4.0

Features [expect, @jest/expect-utils] Support custom equality testers (#13654) [jest-config, jest-worker] Use os.availableParallelism if available to calculate number of workers to spawn (#13738) [@jest/globals, jest-mock] Add jest.replaceP

addedfixedchanged
29.3.1

Fixes [jest-config] Do not warn about preset in ProjectConfig (#13583) Performance [jest-transform] Defer creation of cache directory (#13420)

fixed
29.3.0

Features [jest-runtime] Support WebAssembly (Wasm) imports in ESM modules (#13505) Fixes [jest-config] Add config validation for projects option (#13565) [jest-mock] Treat cjs modules as objects so they can be mocked (#13513) [jest-worker]

addedfixedchanged
29.2.2

Fixes [@jest/test-sequencer] Make sure sharding does not produce empty groups (#13476) [jest-circus] Test marked as todo are shown as todo when inside a focussed describe (#13504) [jest-mock] Ensure mock resolved and rejected values are pro

fixedchanged
29.2.1

Features [@jest/globals, jest-mock] Add jest.Spied* utility types (#13440) Fixes [jest-environment-node] make globalThis.performance writable for Node 19 and fake timers (#13467) [jest-mock] Revert #13398 to restore mocking of setters (#134

addedfixed
29.2.0

Features [@jest/cli, jest-config] A seed for the test run will be randomly generated, or set by a CLI option (#13400) [@jest/cli, jest-config] --show-seed will display the seed value in the report, and can be set via a CLI flag or through t

addedfixedchanged
29.1.2

Fixes [expect, @jest/expect] Revert buggy inference of argument types for *CalledWith and *ReturnedWith matchers introduced in 29.1.0 (#13339) [jest-worker] Add missing dependency on jest-util (#13341)

addedfixed
29.1.1

Fixes [jest-mock] Revert #13145 which broke mocking of transpiled ES modules

fixed
29.1.0

Features [expect, @jest/expect] support type inference for function parameters in CalledWith assertions (#13268) [expect, @jest/expect] Infer type of *ReturnedWith matchers argument (#13278) [@jest/environment, jest-runtime] Allow jest.requ

addedfixedchanged
29.0.3

Features [@jest/environment, jest-runtime] Allow passing a generic type argument to jest.createMockFromModule<T>() method (#13202) [expect] Expose ExpectationResult type (#13240) [jest-snapshot] Expose Context type (#13240) [@jest/globals]

addedfixedchanged
29.0.2

Features [jest-transform] Expose TransformFactory type (#13184) Fixes [babel-plugin-jest-hoist] Support imported jest in mock factory (#13188) [jest-mock] Align the behavior and return type of generateFromMetadata method (#13207) [jest-runt

fixed
29.0.1

Fixes [jest-snapshot] Pass snapshotFormat through when diffing snapshots (#13181)

fixed
29.0.0

Blog post: https://jestjs.io/blog/2022/08/25/jest-29 Features [expect] [BREAKING] Differentiate between MatcherContext MatcherUtils and MatcherState types (#13141) [jest-circus] Add support for test.failing.each (#13142) [jest-config] [BREA

addedfixedchanged
28.x8 releases
28.1.3

Features [jest-leak-detector] Use native FinalizationRegistry when it exists to get rid of external C dependency (#12973) Fixes [jest-changed-files] Fix a lock-up after repeated invocations (#12757) [@jest/expect-utils] Fix deep equality of

addedfixedchanged
28.1.2

Fixes [jest-runtime] Avoid star type import from @jest/globals (#12949) Chore & Maintenance [docs] Mention that jest-codemods now supports Sinon (#12898)

fixed
28.1.1

Features [jest] Expose Config type (#12848) [@jest/reporters] Improve GitHubActionsReporters annotation format (#12826) [@jest/types] Infer argument types passed to test and describe callback functions from each tables (#12885, #12905) Fixe

fixedchanged
28.1.0

Features [jest-circus] Add failing test modifier that inverts the behaviour of tests (#12610) [jest-environment-node, jest-environment-jsdom] Allow specifying customExportConditions (#12774) Fixes [expect] Adjust typings of lastCalledWith,

addedfixed
28.0.3

Fixes [jest-config] Normalize reporters option defined in presets (#12769) [@jest/reporters] Fix trailing slash in matching coverageThreshold key (#12714) [jest-resolve] Fix (experimental) ESM module mocking for re-exports (#12766) [@jest/t

fixed
28.0.2

Features [jest-worker] Add JestWorkerFarm helper type (#12753) Fixes [*] Lower Node 16 requirement to 16.10 from 16.13 due to a Node bug that causes memory and performance issues (#12754)

addedfixed
28.0.1

Features [jest-resolve] Expose ResolverOptions type (#12736) Fixes [expect] Add missing dependency jest-util (#12744) [jest-circus] Improve test.concurrent (#12748) [jest-resolve] Correctly throw an error if jsdom test environment is used,

addedfixedchanged
28.0.0

Blog post: https://jestjs.io/blog/2022/04/25/jest-28 Features [babel-jest] Export createTransformer function (#12399) [expect] Expose AsymmetricMatchers, MatcherFunction and MatcherFunctionWithState interfaces (#12363, #12376) [jest-circus]

addedfixedchanged
27.x15 releases
27.5.1

Features [jest-config] Support comments in JSON config file (#12316) [pretty-format] Expose ConvertAnsi plugin (#12308) Fixes [expect] Add type definitions for asymmetric closeTo matcher (#12304) [jest-cli] Load binary via exported API (#12

addedfixed
27.5.0

Features [expect] Add asymmetric matcher expect.closeTo (#12243) [jest-mock] Added mockFn.mock.lastCall to retrieve last argument (#12285) Fixes [expect] Add a fix for .toHaveProperty('') (#12251) [jest-each, @jest/globals] Allow passing Re

addedfixedchanged
27.4.7

Fixes jest-config Add missing @babel/core dependency (#12216)

addedfixed
27.4.6

Fixes [jest-environment-node] Add AbortSignal (#12157) [jest-environment-node] Add Missing node global performance (#12002) [jest-runtime] Handle missing mocked property (#12213) [@jest/transform] Update dependency package pirates to 4.0.4

addedfixedchanged
27.4.5

Fixes [jest-worker] Stop explicitly passing process.env (#12141)

fixed
27.4.4

Fixes [babel-jest] Add process.version chunk to the cache key (#12122) [jest-environment] Add mocked to jest object (#12133) [jest-worker] Stop explicitly passing execArgv (#12128) Chore & Maintenance [website] Fix the card front that looks

addedfixed
27.4.3

Fixes [jest-environment-jsdom] Remove @types/jsdom dependency (and make its dom property private) (#12107)

fixed
27.4.2

Fixes [jest-worker] Add additional execArgv to filter (#12103)

addedfixed
27.4.1

Fixes [jest-worker] Filter execArgv correctly (#12097)

fixed
27.4.0

Features [expect] Enhancing the toHaveProperty matcher to support array selection (#12092) [jest-core] Add support for testResultsProcessor written in ESM (#12006) [jest-diff, pretty-format] Add compareKeys option for custom sorting of obje

addedfixedchanged
27.3.1

Fixes [expect] Make expect extension properties configurable (#11978) [expect] Fix .any() checks on primitive wrapper classes (#11976) Chore & Maintenance [expect] BigInt global is always defined, don't check for its existence at runtime (#

fixed
27.3.0

Features [jest-config] Add testEnvironmentOptions.html to apply to jsdom input (#11950) [jest-resolver] Support default export (.) in exports field if main is missing (#11919) Fixes [expect] Tweak and improve types (#11949) [jest-runtime] E

addedfixedchanged
27.2.5

Features [jest-config] Warn when multiple Jest configs are located (#11922) Fixes [expect] Pass matcher context to asymmetric matchers (#11926 & #11930) [expect] Improve TypeScript types (#11931) [expect] Improve typings of toThrow() and to

fixedchangeddeprecated
27.2.4

Features [expect] Add equality checks for Array Buffers in expect.ToStrictEqual() (#11805) Fixes [jest-snapshot] Correctly indent inline snapshots (#11560)

addedfixed
27.2.3

Features [@jest/fake-timers] Update @sinonjs/fake-timers to v8 (#11879) Fixes [jest-config] Parse testEnvironmentOptions if received from CLI (#11902) [jest-reporters] Call destroy on v8-to-istanbul converters to free memory (#11896)

fixedchanged