Catalog / Testing

Jest changelog

Jest is at 30.5.2, published 18 Sep 2026, 28 days ago.

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

SubscribeJest as markdown, for pasting into a model
Collected
61 releases back 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 on 28 of the 30 days on record, last today. Collection status

Version history

30.x15 releases
30.5.2

Features [@jest/transform] Strip TypeScript types with Node when no transformer claims a .ts, .mts or .cts file (#16421) Fixes [jest-core, jest-haste-map, jest-transform] Keep require('../package.json') external when bundling, so jest --ver

fixed
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