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
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.
- 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
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
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
Fixes [jest-runtime] Fix named imports from CJS modules whose module.exports is a function with own-property exports (#16150)
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
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
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
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
Fixes Fix unstable_mockModule with node: prefixed core modules.
Fixes [jest-snapshot-utils] Correct snapshot header regexp to work with newline across OSes (#15803)
Fixes [jest-snapshot-utils] Fix deprecated goo.gl snapshot warning not handling Windows end-of-line sequences (#15800)
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
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)
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
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
29.x23 releases
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
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
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]
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
Fixes [jest-circus] Revert #14110 as it was a breaking change (#14304)
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
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
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
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
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
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
Fixes [jest-config] Do not warn about preset in ProjectConfig (#13583) Performance [jest-transform] Defer creation of cache directory (#13420)
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]
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
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
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
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)
Fixes [jest-mock] Revert #13145 which broke mocking of transpiled ES modules
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
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]
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
Fixes [jest-snapshot] Pass snapshotFormat through when diffing snapshots (#13181)
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
28.x8 releases
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
Fixes [jest-runtime] Avoid star type import from @jest/globals (#12949) Chore & Maintenance [docs] Mention that jest-codemods now supports Sinon (#12898)
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
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,
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
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)
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,
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]
27.x15 releases
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
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
Fixes jest-config Add missing @babel/core dependency (#12216)
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
Fixes [jest-worker] Stop explicitly passing process.env (#12141)
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
Fixes [jest-environment-jsdom] Remove @types/jsdom dependency (and make its dom property private) (#12107)
Fixes [jest-worker] Add additional execArgv to filter (#12103)
Fixes [jest-worker] Filter execArgv correctly (#12097)
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
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 (#
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
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
Features [expect] Add equality checks for Array Buffers in expect.ToStrictEqual() (#11805) Fixes [jest-snapshot] Correctly indent inline snapshots (#11560)
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)