[*] Renamed globalsCleanupMode to globalsCleanup and --waitNextEventLoopTurnForUnhandledRejectionEvents to --waitForUnhandledRejections
[expect] Add ArrayOf asymmetric matcher for validating array elements. (#15567)
[babel-jest] Add option excludeJestPreset to allow opting out of babel-preset-jest (#15164)
[expect] Revert #15038 to fix expect(fn).toHaveBeenCalledWith(expect.objectContaining(...)) when there are multiple calls (#15508)
[jest-circus, jest-cli, jest-config] Add waitNextEventLoopTurnForUnhandledRejectionEvents flag to minimise performance impact of correct detection of unhandled promise rejections introduced in #14315 (#14681)
[jest-circus] Add a waitBeforeRetry option to jest.retryTimes (#14738)
[jest-circus] Add a retryImmediately option to jest.retryTimes (#14696)
[jest-circus, jest-jasmine2] Allow setupFilesAfterEnv to export an async function (#10962)
[jest-circus, jest-test-result] Add startedAt timestamp in TestCaseResultObject within onTestCaseResult (#15145)
[jest-environment-jsdom] [BREAKING] Upgrade JSDOM to v22 (#13825)
[@jest/environment-jsdom-abstract] Introduce new package which abstracts over the jsdom environment, allowing usage of custom versions of JSDOM (#14717)
[jest-environment-node] Update jest environment with dispose symbols Symbol (#14888 & #14909)
[expect, @​jest/expect] [BREAKING] Add type inference for function parameters in CalledWith assertions (#15129)
[@jest/expect-utils] Properly compare all types of TypedArrays (#15178)
[@jest/fake-timers] [BREAKING] Upgrade @sinonjs/fake-timers to v13 (#14544 & #15470)
[@jest/fake-timers] Exposing new modern timers function advanceTimersToFrame() which advances all timers by the needed milliseconds to execute callbacks currently scheduled with requestAnimationFrame (#14598)
[jest-matcher-utils] Add SERIALIZABLE_PROPERTIES to allow custom serialization of objects (#14893)
[jest-mock] Add support for the Explicit Resource Management proposal to use the using keyword with jest.spyOn(object, methodName) (#14895)
[jest-circus] Concurrent tests now emit jest circus events at the correct point and in the expected order. (#15381)
[jest-cli] [BREAKING] Validate CLI flags that require arguments receives them (#14783)
[jest-config] Make sure to respect runInBand option (#14578)
[jest-config] Support testTimeout in project config (#14697)
[jest-config] Support coverageReporters in project config (#14697)
[jest-config] Allow reporters in project config (#14768)
[jest-config] Allow Node16/NodeNext/Bundler moduleResolution in project's tsconfig (#14739)
[@jest/create-cache-key-function] Correct the return type of createCacheKey (#15159)
[jest-each] Allow $keypath templates with null or undefined values (#14831)
[@jest/expect-utils] Fix comparison of DataView (#14408)
[@jest/expect-utils] [BREAKING] exclude non-enumerable in object matching (#14670)
[@jest/expect-utils] Fix comparison of URL (#14672)
[@jest/expect-utils] Check Symbol properties in equality (#14688)
[@jest/expect-utils] Catch circular references within arrays when matching objects (#14894)
[@jest/expect-utils] Fix not addressing to Sets and Maps as objects without keys (#14873)
[jest-haste-map] Fix errors or clobbering with multiple hasteImplModulePaths (#15522)
[jest-leak-detector] Make leak-detector more aggressive when running GC (#14526)
[jest-runtime] Properly handle re-exported native modules in ESM via CJS (#14589)
[jest-runtime] Refactor _importCoreModel so required core module is consistent if modified while loading (#15077)
[jest-schemas, jest-types] [BREAKING] Fix type of testFailureExitCode config option(#15232)
[jest-util] Make sure isInteractive works in a browser (#14552)
[pretty-format] [BREAKING] Print ArrayBuffer and DataView correctly (#14290)
[pretty-format] Fixed a bug where "anonymous custom elements" were not being printed as expected. (#15138)
[jest-cli] When specifying paths on the command line, only match against the relative paths of the test files (#12519)
[BREAKING] Changes testPathPattern configuration option to testPathPatterns, which now takes a list of patterns instead of the regex.
[BREAKING] --testPathPattern is now --testPathPatterns
[BREAKING] Specifying testPathPatterns when programmatically calling watch must be specified as new TestPathPatterns(patterns), where TestPathPatterns can be imported from @jest/pattern
[jest-reporters, jest-runner] Unhandled errors without stack get correctly logged to console (#14619)
[jest-util] Always load mjs files with import (#15447)
[jest-worker] Properly handle a circular reference error when worker tries to send an assertion fails where either the expected or actual value is circular (#15191)
[jest-worker] Properly handle a BigInt when worker tries to send an assertion fails where either the expected or actual value is BigInt (#15191)
[expect] Resolve issue where ObjectContaining matched non-object values. #15463.
Adds a conditional/check to ensure the argument passed to expect is an object.
Add unit tests for new ObjectContaining behavior.
Remove invalid/wrong test case assertions for ObjectContaining.
[jest-worker] Addresses incorrect state on exit (#15610)
Performance
[*] [BREAKING] Bundle all of Jest's modules into index.js (#12348, #14550 & #14661)
[jest-haste-map] Only spawn one process to check for watchman installation (#14826)
[jest-runner] Better cleanup source-map-support after test to resolve (minor) memory leak (#15233)
[jest-resolver] Migrate resolve and resolve.exports to unrs-resolver (#15619)
[jest-circus, jest-environment-node, jest-repl, jest-runner, jest-util] Cleanup global variables on environment teardown to reduce memory leaks (#15215 & #15636 & #15643)
Chore & Maintenance
[jest-environment-jsdom, jest-environment-jsdom-abstract] Increased version of jsdom to ^26.0.0 (#15325CVE-2024-37890)
[*] Increase version of micromatch to ^4.0.7 (#15082)
[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] Update istanbul-lib-instrument dependency to v6. (#14401)
[jest-mock] Revert #13692 as it was a breaking change (#14429)
[jest-mock] Revert #13866 as it was a breaking change (#14429)
[jest-mock] Revert #13867 as it was a breaking change (#14429)
[@jest/reporters] Marks Reporter's hooks as optional (#14433)
[jest-runtime] Fix dynamic ESM import module bug when loaded module through jest.isolateModulesAsync (#14397)
Chore & Maintenance
[jest-changed-files, jest-circus, jest-console, @​jest/core, @​jest/runtime, @​jest/transform] Use invariant and notEmpty from jest-util rather than own internal (#14366)
[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 the message property is unwritable (#14113)
[jest-snapshot] Move @types/prettier from dependencies to devDependencies (#14328)
[jest-snapshot] Throw an explicit error if Prettier v3 is used (#14367)
[jest-reporters] Add "skipped" and "todo" symbols to Github Actions Reporter (#14309)
Chore & Maintenance
[@jest/core] Use pluralize from jest-util rather than own internal (#14322)
[jest-config] Allow coverageDirectory and collectCoverageFrom in project config (#14180)
[jest-core] Always use workers in watch mode to avoid crashes (#14059).
[jest-environment-jsdom, jest-environment-node] Fix assignment of customExportConditions via testEnvironmentOptions when custom env subclass defines a default value (#13989)
[jest-matcher-utils] Fix copying value of inherited getters (#14007)
[jest-mock] Tweak typings to allow jest.replaceProperty() replace methods (#14008)
[jest-mock] Improve user input validation and error messages of spyOn and replaceProperty methods (#14087)
[jest-runtime] Bind jest.isolateModulesAsync to this (#14083)
[jest-runtime] Forward wrapperLength to the Script constructor as columnOffset for accurate debugging (#14148)
[jest-runtime] Guard _isMockFunction access with in (#14188)
[jest-snapshot] Fix a potential bug when not using prettier and improve performance (#14036)
[@jest/transform] Do not instrument .json modules (#14048)
[jest-worker] Restart a shut down worker before sending it a task (#14015)
Chore & Maintenance
[*] Update semver dependency to get vulnerability fix (#14262)
[docs] Updated documentation for the --runTestsByPath CLI command (#14004)
[docs] Updated documentation regarding the synchronous fallback when asynchronous code transforms are unavailable (#14056)
[docs] Update jest statistics of use and downloads in website Index.
[jest-reporters] Add summaryThreshold option to summary reporter to allow overriding the internal threshold that is used to print the summary of all failed tests when the number of test suites surpasses it (#13895)
[jest-runtime, @​jest/transform] Allow V8 coverage provider to collect coverage from files which were not loaded explicitly (#13974)
[jest-snapshot] Add support to cts and mts TypeScript files to inline snapshots (#13975)
[jest-worker] Add start method to worker farms (#13937)
[jest-worker] Support passing a URL as path to worker (#13982)
Fixes
[babel-plugin-jest-hoist] Fix unwanted hoisting of nested jest usages (#13952)
[jest-circus] Send test case results for todo tests (#13915)
[jest-circus] Update message printed on test timeout (#13830)
[jest-circus] Avoid creating the word "testfalse" when takesDoneCallback is false in the message printed on test timeout AND updated timeouts test (#13954)
[jest-environment-jsdom] Stop setting document to null on teardown (#13972)
[@jest/expect-utils] Update toStrictEqual() to be able to check jest.fn().mock.calls (#13960)
[@jest/test-result] Allow TestResultsProcessor type to return a Promise (#13950)
Chore & Maintenance
[jest-snapshot] Remove dependency on jest-haste-map (#13977)
[jest-environment-jsdom] [BREAKING] Upgrade to jsdom@20 (#13037, #13058)
[@jest/globals] Add jest.Mocked, jest.MockedClass, jest.MockedFunction and jest.MockedObject utility types (#12727)
[jest-mock] [BREAKING] Refactor Mocked* utility types. MaybeMockedDeep and MaybeMocked became Mocked and MockedShallow respectively; only deep mocked variants of MockedClass, MockedFunction and MockedObject are exported (#13123, #13124)
[jest-mock] [BREAKING] Change the default jest.mocked helper’s behavior to deep mocked (#13125)
[jest-snapshot] [BREAKING] Let babel find config when updating inline snapshots (#13150)
[@jest/test-result, @​jest/types] [BREAKING] Replace Bytes and Milliseconds types with number (#13155)
[jest-worker] Adds workerIdleMemoryLimit option which is used as a check for worker memory leaks >= Node 16.11.0 and recycles child workers as required (#13056, #13105, #13106, #13107)
[pretty-format] [BREAKING] Remove ConvertAnsi plugin in favour of jest-serializer-ansi-escapes (#13040)
[pretty-format] Allow to opt out from sorting object keys with compareKeys: null (#12443)
Fixes
[jest-config] Fix testing multiple projects with TypeScript config files (#13099)
[@jest/expect-utils] Fix deep equality of ImmutableJS Record (#13055)
[jest-haste-map] Increase the maximum possible file size that jest-haste-map can handle (#13094)
[jest-runtime] Properly support CJS re-exports from dual packages (#13170)
[jest-snapshot] Make prettierPath optional in SnapshotState (#13149)
[jest-snapshot] Fix parsing error from inline snapshot files with JSX (#12760)
[jest-worker] When a process runs out of memory worker exits correctly and doesn't spin indefinitely (#13054)
Chore & Maintenance
[*] [BREAKING] Drop support for Node v12 and v17 (#13033)
[jest-config] [BREAKING] Stop shipping jest-environment-jsdom by default (#12354)
[jest-config] [BREAKING] Stop shipping jest-jasmine2 by default (#12355)
[jest-config, @​jest/types] Add ci to GlobalConfig (#12378)
[jest-config] [BREAKING] Rename moduleLoader to runtime (#10817)
[jest-config] [BREAKING] Rename extraGlobals to sandboxInjectedGlobals (#10817)
[jest-config] [BREAKING] Throw an error instead of showing a warning if multiple configs are used (#12510)
[jest-config] [BREAKING] Do not normalize long deprecated configuration options preprocessorIgnorePatterns, scriptPreprocessor, setupTestFrameworkScriptFile and testPathDirs (#12701)
[jest-cli, jest-core] Add --ignoreProjects CLI argument to ignore test suites by project name (#12620)
[jest-core] Pass project config to globalSetup/globalTeardown function as second argument (#12440)
[jest-core] Stabilize test runners with event emitters (#12641)
[jest-core, jest-watcher] [BREAKING] Move TestWatcher class to jest-watcher package (#12652)
[jest-core] Allow using Summary Reporter as stand-alone reporter (#12687)
[jest-environment-jsdom] [BREAKING] Upgrade jsdom to 19.0.0 (#12290)
[jest-environment-jsdom] [BREAKING] Add default browser condition to exportConditions for jsdom environment (#11924)
[jest-environment-jsdom] [BREAKING] Pass global config to Jest environment constructor for jsdom environment (#12461)
[jest-environment-jsdom] [BREAKING] Second argument context to constructor is mandatory (#12469)
[jest-environment-node] [BREAKING] Add default node and node-addon conditions to exportConditions for node environment (#11924)
[jest-environment-node] [BREAKING] Pass global config to Jest environment constructor for node environment (#12461)
[jest-environment-node] [BREAKING] Second argument context to constructor is mandatory (#12469)
[jest-environment-node] Add all available globals to test globals, not just explicit ones (#12642, #12696)
[@jest/expect] New module which extends expect with jest-snapshot matchers (#12404, #12410, #12418)
[@jest/expect-utils] New module exporting utils for expect (#12323)
[@jest/fake-timers] [BREAKING] Rename timers configuration option to fakeTimers (#12572)
[@jest/fake-timers] [BREAKING] Allow jest.useFakeTimers() and projectConfig.fakeTimers to take an options bag (#12572)
[jest-haste-map] [BREAKING] HasteMap.create now returns a promise (#12008)
[jest-haste-map] Add support for dependencyExtractor written in ESM (#12008)
[jest-mock] [BREAKING] Rename exported utility types ClassLike, FunctionLike, ConstructorLikeKeys, MethodLikeKeys, PropertyLikeKeys; remove exports of utility types ArgumentsOf, ArgsType, ConstructorArgumentsOf - TS builtin utility types ConstructorParameters and Parameters should be used instead (#12435, #12489)
[jest-mock] Improve isMockFunction to infer types of passed function (#12442)
[jest-mock] [BREAKING] Improve the usage of jest.fn generic type argument (#12489)
[jest-mock] Add support for auto-mocking async generator functions (#11080)
[jest-mock] Add contexts member to mock functions (#12601)
[jest-runner] Allow setupFiles module to export an async function (#12042)
[jest-runner] Allow passing testEnvironmentOptions via docblocks (#12470)
[jest-runner] Expose CallbackTestRunner, EmittingTestRunner abstract classes and CallbackTestRunnerInterface, EmittingTestRunnerInterface to help typing third party runners (#12646, #12715)
[jest-runner] Lock version of source-map-support to 0.5.13 (#12720)
[jest-runtime] [BREAKING] Runtime.createHasteMap now returns a promise (#12008)
[jest-runtime] Calling jest.resetModules function will clear FS and transform cache (#12531)
[jest-runtime] [BREAKING] Remove Context type export, it must be imported from @jest/test-result (#12685)
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [babel-jest](https://github.com/jestjs/jest) ([source](https://github.com/jestjs/jest/tree/HEAD/packages/babel-jest)) | devDependencies | major | [`^27.5.1` -> `^30.0.0`](https://renovatebot.com/diffs/npm/babel-jest/27.5.1/30.0.4) |
---
### Release Notes
<details>
<summary>jestjs/jest (babel-jest)</summary>
### [`v30.0.4`](https://github.com/jestjs/jest/blob/HEAD/CHANGELOG.md#3004)
[Compare Source](https://github.com/jestjs/jest/compare/v30.0.2...v30.0.4)
##### Features
- `[expect]` The `Inverse` type is now exported ([#​15714](https://github.com/jestjs/jest/pull/15714))
- `[expect]` feat: support `async functions` in `toBe` ([#​15704](https://github.com/jestjs/jest/pull/15704))
##### Fixes
- `[jest]` jest --onlyFailures --listTests now correctly lists only failed tests ([#​15700](https://github.com/jestjs/jest/issues/15700))
- `[jest-snapshot]` Handle line endings in snapshots ([#​15708](https://github.com/jestjs/jest/pull/15708))
### [`v30.0.2`](https://github.com/jestjs/jest/blob/HEAD/CHANGELOG.md#3002)
[Compare Source](https://github.com/jestjs/jest/compare/v30.0.1...v30.0.2)
##### Fixes
- `[jest-matcher-utils]` Make 'deepCyclicCopyObject' safer by setting descriptors to a null-prototype object ([#​15689](https://github.com/jestjs/jest/pull/15689))
- `[jest-util]` Make garbage collection protection property writable ([#​15689](https://github.com/jestjs/jest/pull/15689))
### [`v30.0.1`](https://github.com/jestjs/jest/blob/HEAD/CHANGELOG.md#3001)
[Compare Source](https://github.com/jestjs/jest/compare/v30.0.0...v30.0.1)
##### Features
- `[jest-resolver]` Implement the `defaultAsyncResolver` ([#​15679](https://github.com/jestjs/jest/pull/15679))
##### Fixes
- `[jest-resolver]` Resolve builtin modules correctly ([#​15683](https://github.com/jestjs/jest/pull/15683))
- `[jest-environment-node, jest-util]` Avoid setting globals cleanup protection symbol when feature is off ([#​15684](https://github.com/jestjs/jest/pull/15684))
##### Chore & Maintenance
- `[*]` Remove and deprecate `jest-repl` package ([#​15673](https://github.com/jestjs/jest/pull/15673))
- `[jest-resolver]` Replace custom `isBuiltinModule` with node's `isBuiltin` ([#​15685](https://github.com/jestjs/jest/pull/15685))
### [`v30.0.0`](https://github.com/jestjs/jest/blob/HEAD/CHANGELOG.md#3000)
[Compare Source](https://github.com/jestjs/jest/compare/v29.7.0...v30.0.0)
##### Features
- `[*]` Renamed `globalsCleanupMode` to `globalsCleanup` and `--waitNextEventLoopTurnForUnhandledRejectionEvents` to `--waitForUnhandledRejections`
- `[expect]` Add `ArrayOf` asymmetric matcher for validating array elements. ([#​15567](https://github.com/jestjs/jest/pull/15567))
- `[babel-jest]` Add option `excludeJestPreset` to allow opting out of `babel-preset-jest` ([#​15164](https://github.com/jestjs/jest/pull/15164))
- `[expect]` Revert [#​15038](https://github.com/jestjs/jest/pull/15038) to fix `expect(fn).toHaveBeenCalledWith(expect.objectContaining(...))` when there are multiple calls ([#​15508](https://github.com/jestjs/jest/pull/15508))
- `[jest-circus, jest-cli, jest-config]` Add `waitNextEventLoopTurnForUnhandledRejectionEvents` flag to minimise performance impact of correct detection of unhandled promise rejections introduced in [#​14315](https://github.com/jestjs/jest/pull/14315) ([#​14681](https://github.com/jestjs/jest/pull/14681))
- `[jest-circus]` Add a `waitBeforeRetry` option to `jest.retryTimes` ([#​14738](https://github.com/jestjs/jest/pull/14738))
- `[jest-circus]` Add a `retryImmediately` option to `jest.retryTimes` ([#​14696](https://github.com/jestjs/jest/pull/14696))
- `[jest-circus, jest-jasmine2]` Allow `setupFilesAfterEnv` to export an async function ([#​10962](https://github.com/jestjs/jest/issues/10962))
- `[jest-circus, jest-test-result]` Add `startedAt` timestamp in `TestCaseResultObject` within `onTestCaseResult` ([#​15145](https://github.com/jestjs/jest/pull/15145))
- `[jest-cli]` Export `buildArgv` ([#​15310](https://github.com/facebook/jest/pull/15310))
- `[jest-config]` \[**BREAKING**] Add `mts` and `cts` to default `moduleFileExtensions` config ([#​14369](https://github.com/facebook/jest/pull/14369))
- `[jest-config]` \[**BREAKING**] Update `testMatch` and `testRegex` default option for supporting `mjs`, `cjs`, `mts`, and `cts` ([#​14584](https://github.com/jestjs/jest/pull/14584))
- `[jest-config]` Loads config file from provided path in `package.json` ([#​14044](https://github.com/facebook/jest/pull/14044))
- `[jest-config]` Allow loading `jest.config.cts` files ([#​14070](https://github.com/facebook/jest/pull/14070))
- `[jest-config]` Show `rootDir` in error message when a `preset` fails to load ([#​15194](https://github.com/jestjs/jest/pull/15194))
- `[jest-config]` Support loading TS config files using `esbuild-register` via docblock loader ([#​15190](https://github.com/jestjs/jest/pull/15190))
- `[jest-config]` Allow passing TS config loader options via docblock comment ([#​15234](https://github.com/jestjs/jest/pull/15234))
- `[jest-config]` If Node is running with type stripping enabled, do not require a TS loader ([#​15480](https://github.com/jestjs/jest/pull/15480))
- `[@jest/core]` Group together open handles with the same stack trace ([#​13417](https://github.com/jestjs/jest/pull/13417), & [#​14789](https://github.com/jestjs/jest/pull/14789))
- `[@jest/core]` Add `perfStats` to surface test setup overhead ([#​14622](https://github.com/jestjs/jest/pull/14622))
- `[@jest/core]` \[**BREAKING**] Changed `--filter` to accept an object with shape `{ filtered: Array<string> }` to match [documentation](https://jestjs.io/docs/cli#--filterfile) ([#​13319](https://github.com/jestjs/jest/pull/13319))
- `[@jest/core]` Support `--outputFile` option for [`--listTests`](https://jestjs.io/docs/cli#--listtests) ([#​14980](https://github.com/jestjs/jest/pull/14980))
- `[@jest/core]` Stringify Errors properly with `--json` flag ([#​15329](https://github.com/jestjs/jest/pull/15329))
- `[@jest/core, @​jest/test-sequencer]` \[**BREAKING**] Exposes `globalConfig` & `contexts` to `TestSequencer` ([#​14535](https://github.com/jestjs/jest/pull/14535), & [#​14543](https://github.com/jestjs/jest/pull/14543))
- `[jest-each]` Introduce `%$` option to add number of the test to its title ([#​14710](https://github.com/jestjs/jest/pull/14710))
- `[@jest/environment]` \[**BREAKING**] Remove deprecated `jest.genMockFromModule()` ([#​15042](https://github.com/jestjs/jest/pull/15042))
- `[@jest/environment]` \[**BREAKING**] Remove unnecessary defensive code ([#​15045](https://github.com/jestjs/jest/pull/15045))
- `[jest-environment-jsdom]` \[**BREAKING**] Upgrade JSDOM to v22 ([#​13825](https://github.com/jestjs/jest/pull/13825))
- `[@jest/environment-jsdom-abstract]` Introduce new package which abstracts over the `jsdom` environment, allowing usage of custom versions of JSDOM ([#​14717](https://github.com/jestjs/jest/pull/14717))
- `[jest-environment-node]` Update jest environment with dispose symbols `Symbol` ([#​14888](https://github.com/jestjs/jest/pull/14888) & [#​14909](https://github.com/jestjs/jest/pull/14909))
- `[expect, @​jest/expect]` \[**BREAKING**] Add type inference for function parameters in `CalledWith` assertions ([#​15129](https://github.com/facebook/jest/pull/15129))
- `[@jest/expect-utils]` Properly compare all types of `TypedArray`s ([#​15178](https://github.com/facebook/jest/pull/15178))
- `[@jest/fake-timers]` \[**BREAKING**] Upgrade `@sinonjs/fake-timers` to v13 ([#​14544](https://github.com/jestjs/jest/pull/14544) & [#​15470](https://github.com/jestjs/jest/pull/15470))
- `[@jest/fake-timers]` Exposing new modern timers function `advanceTimersToFrame()` which advances all timers by the needed milliseconds to execute callbacks currently scheduled with `requestAnimationFrame` ([#​14598](https://github.com/jestjs/jest/pull/14598))
- `[jest-matcher-utils]` Add `SERIALIZABLE_PROPERTIES` to allow custom serialization of objects ([#​14893](https://github.com/jestjs/jest/pull/14893))
- `[jest-mock]` Add support for the Explicit Resource Management proposal to use the `using` keyword with `jest.spyOn(object, methodName)` ([#​14895](https://github.com/jestjs/jest/pull/14895))
- `[jest-reporters]` Add support for [DEC mode 2026](https://gist.github.com/christianparpart/d8a62cc1ab659194337d73e399004036) ([#​15008](https://github.com/jestjs/jest/pull/15008))
- `[jest-resolver]` Support `file://` URLs as paths ([#​15154](https://github.com/jestjs/jest/pull/15154))
- `[jest-resolve,jest-runtime,jest-resolve-dependencies]` Pass the conditions when resolving stub modules ([#​15489](https://github.com/jestjs/jest/pull/15489))
- `[jest-runtime]` Exposing new modern timers function `jest.advanceTimersToFrame()` from `@jest/fake-timers` ([#​14598](https://github.com/jestjs/jest/pull/14598))
- `[jest-runtime]` Support `import.meta.filename` and `import.meta.dirname` (available from [Node 20.11](https://nodejs.org/en/blog/release/v20.11.0)) ([#​14854](https://github.com/jestjs/jest/pull/14854))
- `[jest-runtime]` Support `import.meta.resolve` ([#​14930](https://github.com/jestjs/jest/pull/14930))
- `[jest-runtime]` \[**BREAKING**] Make it mandatory to pass `globalConfig` to the `Runtime` constructor ([#​15044](https://github.com/jestjs/jest/pull/15044))
- `[jest-runtime]` Add `unstable_unmockModule` ([#​15080](https://github.com/jestjs/jest/pull/15080))
- `[jest-runtime]` Add `onGenerateMock` transformer callback for auto generated callbacks ([#​15433](https://github.com/jestjs/jest/pull/15433) & [#​15482](https://github.com/jestjs/jest/pull/15482))
- `[jest-runtime]` \[**BREAKING**] Use `vm.compileFunction` over `vm.Script` ([#​15461](https://github.com/jestjs/jest/pull/15461))
- `[@jest/schemas]` Upgrade `@sinclair/typebox` to v0.34 ([#​15450](https://github.com/jestjs/jest/pull/15450))
- `[@jest/types]` `test.each()`: Accept a readonly (`as const`) table properly ([#​14565](https://github.com/jestjs/jest/pull/14565))
- `[@jest/types]` Improve argument type inference passed to `test` and `describe` callback functions from `each` tables ([#​14920](https://github.com/jestjs/jest/pull/14920))
- `[jest-snapshot]` \[**BREAKING**] Add support for [Error causes](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error/cause) in snapshots ([#​13965](https://github.com/facebook/jest/pull/13965))
- `[jest-snapshot]` Support Prettier 3 ([#​14566](https://github.com/facebook/jest/pull/14566))
- `[@jest/util-snapshot]` Extract utils used by tooling from `jest-snapshot` into its own package ([#​15095](https://github.com/facebook/jest/pull/15095))
- `[pretty-format]` \[**BREAKING**] Do not render empty string children (`''`) in React plugin ([#​14470](https://github.com/facebook/jest/pull/14470))
##### Fixes
- `[expect]` Show `AggregateError` to display ([#​15346](https://github.com/facebook/jest/pull/15346))
- `[*]` Replace `exit` with `exit-x` ([#​15399](https://github.com/jestjs/jest/pull/15399))
- `[babel-plugin-jest-hoist]` Use `denylist` instead of the deprecated `blacklist` for Babel 8 support ([#​14109](https://github.com/jestjs/jest/pull/14109))
- `[babel-plugin-jest-hoist]` Do not rely on buggy Babel behaviour ([#​15415](https://github.com/jestjs/jest/pull/15415))
- `[expect]` Check error instance type for `toThrow/toThrowError` ([#​14576](https://github.com/jestjs/jest/pull/14576))
- `[expect]` Improve diff for failing `expect.objectContaining` ([#​15038](https://github.com/jestjs/jest/pull/15038))
- `[expect]` Use `Array.isArray` to check if an array is an `Array` ([#​15101](https://github.com/jestjs/jest/pull/15101))
- `[expect]` Fix Error `cause` assertion errors ([#​15339](https://github.com/jestjs/jest/pull/15339))
- `[jest-changed-files]` Print underlying errors when VCS commands fail ([#​15052](https://github.com/jestjs/jest/pull/15052))
- `[jest-changed-files]` Abort `sl root` call if output resembles a steam locomotive ([#​15053](https://github.com/jestjs/jest/pull/15053))
- `[jest-circus]` \[**BREAKING**] Prevent false test failures caused by promise rejections handled asynchronously ([#​14315](https://github.com/jestjs/jest/pull/14315))
- `[jest-circus]` Replace recursive `makeTestResults` implementation with iterative one ([#​14760](https://github.com/jestjs/jest/pull/14760))
- `[jest-circus]` Omit `expect.hasAssertions()` errors if a test already has errors ([#​14866](https://github.com/jestjs/jest/pull/14866))
- `[jest-circus, jest-expect, jest-snapshot]` Pass `test.failing` tests when containing failing snapshot matchers ([#​14313](https://github.com/jestjs/jest/pull/14313))
- `[jest-circus]` Concurrent tests now emit jest circus events at the correct point and in the expected order. ([#​15381](https://github.com/jestjs/jest/pull/15381))
- `[jest-cli]` \[**BREAKING**] Validate CLI flags that require arguments receives them ([#​14783](https://github.com/jestjs/jest/pull/14783))
- `[jest-config]` Make sure to respect `runInBand` option ([#​14578](https://github.com/jestjs/jest/pull/14578))
- `[jest-config]` Support `testTimeout` in project config ([#​14697](https://github.com/jestjs/jest/pull/14697))
- `[jest-config]` Support `coverageReporters` in project config ([#​14697](https://github.com/jestjs/jest/pull/14830))
- `[jest-config]` Allow `reporters` in project config ([#​14768](https://github.com/jestjs/jest/pull/14768))
- `[jest-config]` Allow Node16/NodeNext/Bundler `moduleResolution` in project's tsconfig ([#​14739](https://github.com/jestjs/jest/pull/14739))
- `[@jest/create-cache-key-function]` Correct the return type of `createCacheKey` ([#​15159](https://github.com/jestjs/jest/pull/15159))
- `[jest-each]` Allow `$keypath` templates with `null` or `undefined` values ([#​14831](https://github.com/jestjs/jest/pull/14831))
- `[@jest/expect-utils]` Fix comparison of `DataView` ([#​14408](https://github.com/jestjs/jest/pull/14408))
- `[@jest/expect-utils]` \[**BREAKING**] exclude non-enumerable in object matching ([#​14670](https://github.com/jestjs/jest/pull/14670))
- `[@jest/expect-utils]` Fix comparison of `URL` ([#​14672](https://github.com/jestjs/jest/pull/14672))
- `[@jest/expect-utils]` Check `Symbol` properties in equality ([#​14688](https://github.com/jestjs/jest/pull/14688))
- `[@jest/expect-utils]` Catch circular references within arrays when matching objects ([#​14894](https://github.com/jestjs/jest/pull/14894))
- `[@jest/expect-utils]` Fix not addressing to Sets and Maps as objects without keys ([#​14873](https://github.com/jestjs/jest/pull/14873))
- `[jest-haste-map]` Fix errors or clobbering with multiple `hasteImplModulePath`s ([#​15522](https://github.com/jestjs/jest/pull/15522))
- `[jest-leak-detector]` Make leak-detector more aggressive when running GC ([#​14526](https://github.com/jestjs/jest/pull/14526))
- `[jest-runtime]` Properly handle re-exported native modules in ESM via CJS ([#​14589](https://github.com/jestjs/jest/pull/14589))
- `[jest-runtime]` Refactor `_importCoreModel` so required core module is consistent if modified while loading ([#​15077](https://github.com/jestjs/jest/issues/15077))
- `[jest-schemas, jest-types]` \[**BREAKING**] Fix type of `testFailureExitCode` config option([#​15232](https://github.com/jestjs/jest/pull/15232))
- `[jest-util]` Make sure `isInteractive` works in a browser ([#​14552](https://github.com/jestjs/jest/pull/14552))
- `[pretty-format]` \[**BREAKING**] Print `ArrayBuffer` and `DataView` correctly ([#​14290](https://github.com/jestjs/jest/pull/14290))
- `[pretty-format]` Fixed a bug where "anonymous custom elements" were not being printed as expected. ([#​15138](https://github.com/jestjs/jest/pull/15138))
- `[jest-cli]` When specifying paths on the command line, only match against the relative paths of the test files ([#​12519](https://github.com/jestjs/jest/pull/12519))
- \[**BREAKING**] Changes `testPathPattern` configuration option to `testPathPatterns`, which now takes a list of patterns instead of the regex.
- \[**BREAKING**] `--testPathPattern` is now `--testPathPatterns`
- \[**BREAKING**] Specifying `testPathPatterns` when programmatically calling `watch` must be specified as `new TestPathPatterns(patterns)`, where `TestPathPatterns` can be imported from `@jest/pattern`
- `[jest-reporters, jest-runner]` Unhandled errors without stack get correctly logged to console ([#​14619](https://github.com/jestjs/jest/pull/14619))
- `[jest-util]` Always load `mjs` files with `import` ([#​15447](https://github.com/jestjs/jest/pull/15447))
- `[jest-worker]` Properly handle a circular reference error when worker tries to send an assertion fails where either the expected or actual value is circular ([#​15191](https://github.com/jestjs/jest/pull/15191))
- `[jest-worker]` Properly handle a BigInt when worker tries to send an assertion fails where either the expected or actual value is BigInt ([#​15191](https://github.com/jestjs/jest/pull/15191))
- `[expect]` Resolve issue where `ObjectContaining` matched non-object values. [#​15463](https://github.com/jestjs/jest/pull/15463).
- Adds a `conditional/check` to ensure the argument passed to `expect` is an object.
- Add unit tests for new `ObjectContaining` behavior.
- Remove `invalid/wrong` test case assertions for `ObjectContaining`.
- `[jest-worker]` Addresses incorrect state on exit ([#​15610](https://github.com/jestjs/jest/pull/15610))
##### Performance
- `[*]` \[**BREAKING**] Bundle all of Jest's modules into `index.js` ([#​12348](https://github.com/jestjs/jest/pull/12348), [#​14550](https://github.com/jestjs/jest/pull/14550) & [#​14661](https://github.com/jestjs/jest/pull/14661))
- `[jest-haste-map]` Only spawn one process to check for `watchman` installation ([#​14826](https://github.com/jestjs/jest/pull/14826))
- `[jest-runner]` Better cleanup `source-map-support` after test to resolve (minor) memory leak ([#​15233](https://github.com/jestjs/jest/pull/15233))
- `[jest-resolver]` Migrate `resolve` and `resolve.exports` to `unrs-resolver` ([#​15619](https://github.com/jestjs/jest/pull/15619))
- `[jest-circus, jest-environment-node, jest-repl, jest-runner, jest-util]` Cleanup global variables on environment teardown to reduce memory leaks ([#​15215](https://github.com/jestjs/jest/pull/15215) & [#​15636](https://github.com/jestjs/jest/pull/15636) & [#​15643](https://github.com/jestjs/jest/pull/15643))
##### Chore & Maintenance
- `[jest-environment-jsdom, jest-environment-jsdom-abstract]` Increased version of jsdom to `^26.0.0` ([#​15325](https://github.com/jestjs/jest/issues/15325)[CVE-2024-37890](https://nvd.nist.gov/vuln/detail/CVE-2024-37890))
- `[*]` Increase version of `micromatch` to `^4.0.7` ([#​15082](https://github.com/jestjs/jest/pull/15082))
- `[*]` \[**BREAKING**] Drop support for Node.js versions 14, 16, 19, 21 and 23 ([#​14460](https://github.com/jestjs/jest/pull/14460), [#​15118](https://github.com/jestjs/jest/pull/15118), [#​15623](https://github.com/jestjs/jest/pull/15623), [#​15640](https://github.com/jestjs/jest/pull/15640))
- `[*]` \[**BREAKING**] Drop support for `typescript@4.3`, minimum version is now `5.4` ([#​14542](https://github.com/jestjs/jest/pull/14542), [#​15621](https://github.com/jestjs/jest/pull/15621))
- `[*]` Depend on exact versions of monorepo dependencies instead of `^` range ([#​14553](https://github.com/jestjs/jest/pull/14553))
- `[*]` \[**BREAKING**] Add ESM wrapper for all of Jest's modules ([#​14661](https://github.com/jestjs/jest/pull/14661))
- `[*]` \[**BREAKING**] Upgrade to `glob@10` ([#​14509](https://github.com/jestjs/jest/pull/14509))
- `[*]` Use `TypeError` over `Error` where appropriate ([#​14799](https://github.com/jestjs/jest/pull/14799))
- `[docs]` Fix typos in `CHANGELOG.md` and `packages/jest-validate/README.md` ([#​14640](https://github.com/jestjs/jest/pull/14640))
- `[docs]` Don't use alias matchers in docs ([#​14631](https://github.com/jestjs/jest/pull/14631))
- `[babel-jest, babel-preset-jest]` \[**BREAKING**] Increase peer dependency of `@babel/core` to `^7.11` ([#​14109](https://github.com/jestjs/jest/pull/14109))
- `[babel-jest, @​jest/transform]` Update `babel-plugin-istanbul` to v6 ([#​15156](https://github.com/jestjs/jest/pull/15156))
- `[babel-plugin-jest-hoist]` Move unnecessary `dependencies` to `devDependencies` ([#​15010](https://github.com/jestjs/jest/pull/15010))
- `[expect]` \[**BREAKING**] Remove `.toBeCalled()`, `.toBeCalledTimes()`, `.toBeCalledWith()`, `.lastCalledWith()`, `.nthCalledWith()`, `.toReturn()`, `.toReturnTimes()`, `.toReturnWith()`, `.lastReturnedWith()`, `.nthReturnedWith()` and `.toThrowError()` matcher aliases ([#​14632](https://github.com/jestjs/jest/pull/14632))
- `[jest-cli, jest-config, @​jest/types]` \[**BREAKING**] Remove deprecated `--init` argument ([#​14490](https://github.com/jestjs/jest/pull/14490))
- `[jest-config, @​jest/core, jest-util]` Upgrade `ci-info` ([#​14655](https://github.com/jestjs/jest/pull/14655))
- `[jest-mock]` \[**BREAKING**] Remove `MockFunctionMetadataType`, `MockFunctionMetadata` and `SpyInstance` types ([#​14621](https://github.com/jestjs/jest/pull/14621))
- `[@jest/reporters]` Upgrade `istanbul-lib-source-maps` ([#​14924](https://github.com/jestjs/jest/pull/14924))
- `[jest-schemas]` Upgrade `@sinclair/typebox` ([#​14775](https://github.com/jestjs/jest/pull/14775))
- `[jest-transform]` Upgrade `write-file-atomic` ([#​14274](https://github.com/jestjs/jest/pull/14274))
- `[jest-util]` Upgrade `picomatch` to v4 ([#​14653](https://github.com/jestjs/jest/pull/14653) & [#​14885](https://github.com/jestjs/jest/pull/14885))
- `[docs] Append to NODE_OPTIONS, not overwrite ([#​14730](https://github.com/jestjs/jest/pull/14730))`
- `[docs]` Updated `.toHaveBeenCalled()` documentation to correctly reflect its functionality ([#​14842](https://github.com/jestjs/jest/pull/14842))
- `[docs]` Link NestJS documentation on testing with Jest ([#​14940](https://github.com/jestjs/jest/pull/14940))
- `[docs]` `Revised documentation for .toHaveBeenCalled()` to accurately depict its functionality. ([#​14853](https://github.com/jestjs/jest/pull/14853))
- `[docs]` Removed ExpressJS reference link from documentation due to dead link ([#​15270](https://github.com/jestjs/jest/pull/15270))
- `[docs]` Correct broken links in docs ([#​15359](https://github.com/jestjs/jest/pull/15359))
### [`v29.7.0`](https://github.com/jestjs/jest/releases/tag/v29.7.0)
[Compare Source](https://github.com/jestjs/jest/compare/v29.6.4...v29.7.0)
#### Features
- `[create-jest]` Add `npm init` / `yarn create` initialiser for Jest projects ([#​14465](https://github.com/jestjs/jest/pull/14453))
- `[jest-validate]` Allow deprecation warnings for unknown options ([#​14499](https://github.com/jestjs/jest/pull/14499))
#### Fixes
- `[jest-resolver]` Replace unmatched capture groups in `moduleNameMapper` with empty string instead of `undefined` ([#​14507](https://github.com/jestjs/jest/pull/14507))
- `[jest-snapshot]` Allow for strings as well as template literals in inline snapshots ([#​14465](https://github.com/jestjs/jest/pull/14465))
- `[@jest/test-sequencer]` Calculate test runtime if `perStats.duration` is missing ([#​14473](https://github.com/jestjs/jest/pull/14473))
#### Performance
- `[@jest/create-cache-key-function]` Cache access of `NODE_ENV` and `BABEL_ENV` ([#​14455](https://github.com/jestjs/jest/pull/14455))
#### Chore & Maintenance
- `[jest-cli]` Move internal config initialisation logic to the `create-jest` package ([#​14465](https://github.com/jestjs/jest/pull/14453))
#### New Contributors
- [@​bawjensen](https://github.com/bawjensen) made their first contribution in https://github.com/jestjs/jest/pull/14465
- [@​malaviya-parth](https://github.com/malaviya-parth) made their first contribution in https://github.com/jestjs/jest/pull/14467
- [@​niklasholm](https://github.com/niklasholm) made their first contribution in https://github.com/jestjs/jest/pull/14507
**Full Changelog**: https://github.com/jestjs/jest/compare/v29.6.4...v29.7.0
### [`v29.6.4`](https://github.com/jestjs/jest/releases/tag/v29.6.4)
[Compare Source](https://github.com/jestjs/jest/compare/v29.6.3...v29.6.4)
#### Fixes
- `[jest-core]` Fix typo in `scheduleAndRun` performance marker ([#​14434](https://github.com/jestjs/jest/pull/14434))
- `[jest-environment-node]` Make sure `atob` and `btoa` are writeable in Node 20 ([#​14446](https://github.com/jestjs/jest/pull/14446))
- `[jest-worker]` Additional error wrapper for `parentPort.postMessage` to fix unhandled `DataCloneError`. ([#​14437](https://github.com/jestjs/jest/pull/14437))
#### New Contributors
- [@​stanleyume](https://github.com/stanleyume) made their first contribution in https://github.com/jestjs/jest/pull/14424
- [@​dj-stormtrooper](https://github.com/dj-stormtrooper) made their first contribution in https://github.com/jestjs/jest/pull/14437
- [@​thw0rted](https://github.com/thw0rted) made their first contribution in https://github.com/jestjs/jest/pull/14444
**Full Changelog**: https://github.com/jestjs/jest/compare/v29.6.3...v29.6.4
### [`v29.6.3`](https://github.com/jestjs/jest/releases/tag/v29.6.3)
[Compare Source](https://github.com/jestjs/jest/compare/v29.6.2...v29.6.3)
#### Fixes
- `[expect, @​jest/expect-utils]` `ObjectContaining` support `symbol` as key ([#​14414](https://github.com/jestjs/jest/pull/14414))
- `[expect]` Remove `@types/node` from dependencies ([#​14385](https://github.com/jestjs/jest/pull/14385))
- `[jest-core]` Use workers in watch mode by default to avoid crashes ([#​14059](https://github.com/facebook/jest/pull/14059) & [#​14085](https://github.com/facebook/jest/pull/14085)).
- `[jest-reporters]` Update `istanbul-lib-instrument` dependency to v6. ([#​14401](https://github.com/jestjs/jest/pull/14401))
- `[jest-mock]` Revert [#​13692](https://github.com/jestjs/jest/pull/13692) as it was a breaking change ([#​14429](https://github.com/jestjs/jest/pull/14429))
- `[jest-mock]` Revert [#​13866](https://github.com/jestjs/jest/pull/13866) as it was a breaking change ([#​14429](https://github.com/jestjs/jest/pull/14429))
- `[jest-mock]` Revert [#​13867](https://github.com/jestjs/jest/pull/13867) as it was a breaking change ([#​14429](https://github.com/jestjs/jest/pull/14429))
- `[@jest/reporters]` Marks Reporter's hooks as optional ([#​14433](https://github.com/jestjs/jest/pull/14433))
- `[jest-runtime]` Fix dynamic ESM import module bug when loaded module through `jest.isolateModulesAsync` ([#​14397](https://github.com/jestjs/jest/pull/14397))
#### Chore & Maintenance
- `[jest-changed-files, jest-circus, jest-console, @​jest/core, @​jest/runtime, @​jest/transform]` Use `invariant` and `notEmpty` from `jest-util` rather than own internal ([#​14366](https://github.com/jestjs/jest/pull/14366))
#### New Contributors
- [@​karlnorling](https://github.com/karlnorling) made their first contribution in https://github.com/jestjs/jest/pull/14401
- [@​vinicinbgs](https://github.com/vinicinbgs) made their first contribution in https://github.com/jestjs/jest/pull/14388
- [@​panteleevnikita](https://github.com/panteleevnikita) made their first contribution in https://github.com/jestjs/jest/pull/14433
**Full Changelog**: https://github.com/jestjs/jest/compare/v29.6.2...v29.6.3
### [`v29.6.2`](https://github.com/jestjs/jest/releases/tag/v29.6.2)
[Compare Source](https://github.com/jestjs/jest/compare/v29.6.1...v29.6.2)
#### Fixes
- `[jest-circus]` Fix snapshot matchers in concurrent tests when nr of tests exceeds `maxConcurrency` ([#​14335](https://github.com/jestjs/jest/pull/14335))
- `[@jest/core]` When running global setup and teardown, do not try to change the `message` property of the thrown error object when the `message` property is unwritable ([#​14113](https://github.com/jestjs/jest/pull/14113))
- `[jest-snapshot]` Move `@types/prettier` from `dependencies` to `devDependencies` ([#​14328](https://github.com/jestjs/jest/pull/14328))
- `[jest-snapshot]` Throw an explicit error if Prettier v3 is used ([#​14367](https://github.com/jestjs/jest/pull/14367))
- `[jest-reporters]` Add "skipped" and "todo" symbols to Github Actions Reporter ([#​14309](https://github.com/jestjs/jest/pull/14309))
#### Chore & Maintenance
- `[@jest/core]` Use `pluralize` from `jest-util` rather than own internal ([#​14322](https://github.com/jestjs/jest/pull/14322))
#### New Contributors
- [@​Kloen](https://github.com/Kloen) made their first contribution in https://github.com/jestjs/jest/pull/14328
- [@​eryue0220](https://github.com/eryue0220) made their first contribution in https://github.com/jestjs/jest/pull/14322
- [@​david-szabo97](https://github.com/david-szabo97) made their first contribution in https://github.com/jestjs/jest/pull/14113
**Full Changelog**: https://github.com/jestjs/jest/compare/v29.6.1...v29.6.2
### [`v29.6.1`](https://github.com/jestjs/jest/releases/tag/v29.6.1)
[Compare Source](https://github.com/jestjs/jest/compare/v29.6.0...v29.6.1)
#### Fixes
- `[jest-circus]` Revert [#​14110](https://github.com/jestjs/jest/pull/14110) as it was a breaking change ([#​14304](https://github.com/jestjs/jest/pull/14304))
**Full Changelog**: https://github.com/jestjs/jest/compare/v29.6.0...v29.6.1
### [`v29.6.0`](https://github.com/jestjs/jest/releases/tag/v29.6.0)
[Compare Source](https://github.com/jestjs/jest/compare/v29.5.0...v29.6.0)
#### Features
- `[jest-circus, jest-snapshot]` Add support for snapshot matchers in concurrent tests ([#​14139](https://github.com/jestjs/jest/pull/14139))
- `[jest-cli]` Include type definitions to generated config files ([#​14078](https://github.com/facebook/jest/pull/14078))
- `[jest-snapshot]` Support arrays as property matchers ([#​14025](https://github.com/facebook/jest/pull/14025))
- `[jest-core, jest-circus, jest-reporter, jest-runner]` Added support for reporting about start individual test cases using jest-circus ([#​14174](https://github.com/jestjs/jest/pull/14174))
#### Fixes
- `[jest-circus]` Prevent false test failures caused by promise rejections handled asynchronously ([#​14110](https://github.com/jestjs/jest/pull/14110))
- `[jest-config]` Handle frozen config object ([#​14054](https://github.com/facebook/jest/pull/14054))
- `[jest-config]` Allow `coverageDirectory` and `collectCoverageFrom` in project config ([#​14180](https://github.com/jestjs/jest/pull/14180))
- `[jest-core]` Always use workers in watch mode to avoid crashes ([#​14059](https://github.com/facebook/jest/pull/14059)).
- `[jest-environment-jsdom, jest-environment-node]` Fix assignment of `customExportConditions` via `testEnvironmentOptions` when custom env subclass defines a default value ([#​13989](https://github.com/facebook/jest/pull/13989))
- `[jest-matcher-utils]` Fix copying value of inherited getters ([#​14007](https://github.com/facebook/jest/pull/14007))
- `[jest-mock]` Tweak typings to allow `jest.replaceProperty()` replace methods ([#​14008](https://github.com/facebook/jest/pull/14008))
- `[jest-mock]` Improve user input validation and error messages of `spyOn` and `replaceProperty` methods ([#​14087](https://github.com/facebook/jest/pull/14087))
- `[jest-runtime]` Bind `jest.isolateModulesAsync` to `this` ([#​14083](https://github.com/facebook/jest/pull/14083))
- `[jest-runtime]` Forward `wrapperLength` to the `Script` constructor as `columnOffset` for accurate debugging ([#​14148](https://github.com/facebook/jest/pull/14148))
- `[jest-runtime]` Guard `_isMockFunction` access with `in` ([#​14188](https://github.com/facebook/jest/pull/14188))
- `[jest-snapshot]` Fix a potential bug when not using prettier and improve performance ([#​14036](https://github.com/facebook/jest/pull/14036))
- `[@jest/transform]` Do not instrument `.json` modules ([#​14048](https://github.com/facebook/jest/pull/14048))
- `[jest-worker]` Restart a shut down worker before sending it a task ([#​14015](https://github.com/facebook/jest/pull/14015))
#### Chore & Maintenance
- `[*]` Update `semver` dependency to get vulnerability fix ([#​14262](https://github.com/jestjs/jest/pull/14262))
- `[docs]` Updated documentation for the `--runTestsByPath` CLI command ([#​14004](https://github.com/facebook/jest/pull/14004))
- `[docs]` Updated documentation regarding the synchronous fallback when asynchronous code transforms are unavailable ([#​14056](https://github.com/facebook/jest/pull/14056))
- `[docs]` Update jest statistics of use and downloads in website Index.
#### New Contributors
- [@​huntie](https://github.com/huntie) made their first contribution in https://github.com/jestjs/jest/pull/13989
- [@​liammulh](https://github.com/liammulh) made their first contribution in https://github.com/jestjs/jest/pull/14001
- [@​BenceSzalai](https://github.com/BenceSzalai) made their first contribution in https://github.com/jestjs/jest/pull/14007
- [@​Mike-Dax](https://github.com/Mike-Dax) made their first contribution in https://github.com/jestjs/jest/pull/14056
- [@​bakasmarius](https://github.com/bakasmarius) made their first contribution in https://github.com/jestjs/jest/pull/14025
- [@​PeteTheHeat](https://github.com/PeteTheHeat) made their first contribution in https://github.com/jestjs/jest/pull/14015
- [@​tjenkinson](https://github.com/tjenkinson) made their first contribution in https://github.com/jestjs/jest/pull/14083
- [@​soyjuanmacias](https://github.com/soyjuanmacias) made their first contribution in https://github.com/jestjs/jest/pull/14101
- [@​bharathkalyans](https://github.com/bharathkalyans) made their first contribution in https://github.com/jestjs/jest/pull/14154
- [@​itzjacki](https://github.com/itzjacki) made their first contribution in https://github.com/jestjs/jest/pull/14165
- [@​DmitryMakhnev](https://github.com/DmitryMakhnev) made their first contribution in https://github.com/jestjs/jest/pull/14174
- [@​BobdenOs](https://github.com/BobdenOs) made their first contribution in https://github.com/jestjs/jest/pull/14148
- [@​william-lai-927](https://github.com/william-lai-927) made their first contribution in https://github.com/jestjs/jest/pull/14179
- [@​bakamitai456](https://github.com/bakamitai456) made their first contribution in https://github.com/jestjs/jest/pull/14045
- [@​rbuckton](https://github.com/rbuckton) made their first contribution in https://github.com/jestjs/jest/pull/14188
- [@​barbados-clemens](https://github.com/barbados-clemens) made their first contribution in https://github.com/jestjs/jest/pull/14180
- [@​rburdet](https://github.com/rburdet) made their first contribution in https://github.com/jestjs/jest/pull/14197
- [@​cw1997](https://github.com/cw1997) made their first contribution in https://github.com/jestjs/jest/pull/14184
- [@​renovate](https://github.com/renovate) made their first contribution in https://github.com/jestjs/jest/pull/14209
- [@​stekycz](https://github.com/stekycz) made their first contribution in https://github.com/jestjs/jest/pull/14110
- [@​ziyad-elabid-nw](https://github.com/ziyad-elabid-nw) made their first contribution in https://github.com/jestjs/jest/pull/14262
**Full Changelog**: https://github.com/jestjs/jest/compare/v29.5.0...v29.6.0
### [`v29.5.0`](https://github.com/jestjs/jest/releases/tag/v29.5.0)
[Compare Source](https://github.com/jestjs/jest/compare/v29.4.3...v29.5.0)
#### Features
- `[jest-changed-files]` Support Sapling ([#​13941](https://github.com/facebook/jest/pull/13941))
- `[jest-circus, @​jest/cli, jest-config]` Add feature to randomize order of tests via CLI flag or through the config file([#​12922](https://github.com/facebook/jest/pull/12922))
- `[jest-cli, jest-config, @​jest/core, jest-haste-map, @​jest/reporters, jest-runner, jest-runtime, @​jest/types]` Add `workerThreads` configuration option to allow using [worker threads](https://nodejs.org/dist/latest/docs/api/worker_threads.html) for parallelization ([#​13939](https://github.com/facebook/jest/pull/13939))
- `[jest-cli]` Export `yargsOptions` ([#​13970](https://github.com/facebook/jest/pull/13970))
- `[jest-config]` Add `openHandlesTimeout` option to configure possible open handles warning. ([#​13875](https://github.com/facebook/jest/pull/13875))
- `[@jest/create-cache-key-function]` Allow passing `length` argument to `createCacheKey()` function and set its default value to `16` on Windows ([#​13827](https://github.com/facebook/jest/pull/13827))
- `[jest-message-util]` Add support for [AggregateError](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/AggregateError) ([#​13946](https://github.com/facebook/jest/pull/13946) & [#​13947](https://github.com/facebook/jest/pull/13947))
- `[jest-message-util]` Add support for [Error causes](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error/cause) in `test` and `it` ([#​13935](https://github.com/facebook/jest/pull/13935) & [#​13966](https://github.com/facebook/jest/pull/13966))
- `[jest-reporters]` Add `summaryThreshold` option to summary reporter to allow overriding the internal threshold that is used to print the summary of all failed tests when the number of test suites surpasses it ([#​13895](https://github.com/facebook/jest/pull/13895))
- `[jest-runtime]` Expose `@sinonjs/fake-timers` async APIs functions `advanceTimersByTimeAsync(msToRun)` (`tickAsync(msToRun)`), `advanceTimersToNextTimerAsync(steps)` (`nextAsync`), `runAllTimersAsync` (`runAllAsync`), and `runOnlyPendingTimersAsync` (`runToLastAsync`) ([#​13981](https://github.com/facebook/jest/pull/13981))
- `[jest-runtime, @​jest/transform]` Allow V8 coverage provider to collect coverage from files which were not loaded explicitly ([#​13974](https://github.com/facebook/jest/pull/13974))
- `[jest-snapshot]` Add support to `cts` and `mts` TypeScript files to inline snapshots ([#​13975](https://github.com/facebook/jest/pull/13975))
- `[jest-worker]` Add `start` method to worker farms ([#​13937](https://github.com/facebook/jest/pull/13937))
- `[jest-worker]` Support passing a URL as path to worker ([#​13982](https://github.com/facebook/jest/pull/13982))
#### Fixes
- `[babel-plugin-jest-hoist]` Fix unwanted hoisting of nested `jest` usages ([#​13952](https://github.com/facebook/jest/pull/13952))
- `[jest-circus]` Send test case results for `todo` tests ([#​13915](https://github.com/facebook/jest/pull/13915))
- `[jest-circus]` Update message printed on test timeout ([#​13830](https://github.com/facebook/jest/pull/13830))
- `[jest-circus]` Avoid creating the word "testfalse" when `takesDoneCallback` is `false` in the message printed on test timeout AND updated timeouts test ([#​13954](https://github.com/facebook/jest/pull/13954))
- `[jest-environment-jsdom]` Stop setting `document` to `null` on teardown ([#​13972](https://github.com/facebook/jest/pull/13972))
- `[@jest/expect-utils]` Update `toStrictEqual()` to be able to check `jest.fn().mock.calls` ([#​13960](https://github.com/facebook/jest/pull/13960))
- `[@jest/test-result]` Allow `TestResultsProcessor` type to return a Promise ([#​13950](https://github.com/facebook/jest/pull/13950))
#### Chore & Maintenance
- `[jest-snapshot]` Remove dependency on `jest-haste-map` ([#​13977](https://github.com/facebook/jest/pull/13977))
#### New Contributors
- [@​frosas](https://github.com/frosas) made their first contribution in https://github.com/facebook/jest/pull/13932
- [@​akshitsinha](https://github.com/akshitsinha) made their first contribution in https://github.com/facebook/jest/pull/13915
- [@​trajano](https://github.com/trajano) made their first contribution in https://github.com/facebook/jest/pull/13827
- [@​DercilioFontes](https://github.com/DercilioFontes) made their first contribution in https://github.com/facebook/jest/pull/13954
- [@​jsnajdr](https://github.com/jsnajdr) made their first contribution in https://github.com/facebook/jest/pull/13952
- [@​SteveFlames](https://github.com/SteveFlames) made their first contribution in https://github.com/facebook/jest/pull/13895
- [@​willc001](https://github.com/willc001) made their first contribution in https://github.com/facebook/jest/pull/13970
- [@​benjaminhobbs](https://github.com/benjaminhobbs) made their first contribution in https://github.com/facebook/jest/pull/13901
**Full Changelog**: https://github.com/facebook/jest/compare/v29.4.3...v29.5.0
### [`v29.4.3`](https://github.com/jestjs/jest/releases/tag/v29.4.3)
[Compare Source](https://github.com/jestjs/jest/compare/v29.4.2...v29.4.3)
#### Features
- `[expect]` Update `toThrow()` to be able to use error `cause`s ([#​13606](https://github.com/facebook/jest/pull/13606))
- `[jest-core]` allow to use `workerIdleMemoryLimit` with only 1 worker or `runInBand` option ([#​13846](https://github.com/facebook/jest/pull/13846))
- `[jest-message-util]` Add support for [error `cause`s](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error/cause) ([#​13868](https://github.com/facebook/jest/pull/13868) & [#​13912](https://github.com/facebook/jest/pull/13912))
- `[jest-runtime]` Revert `import assertions` for JSON modules as it's been relegated to Stage 2 ([#​13911](https://github.com/facebook/jest/pull/13911))
#### Fixes
- `[@jest/expect-utils]` `subsetEquality` should consider also an object's inherited string keys ([#​13824](https://github.com/facebook/jest/pull/13824))
- `[jest-mock]` Clear mock state when `jest.restoreAllMocks()` is called ([#​13867](https://github.com/facebook/jest/pull/13867))
- `[jest-mock]` Prevent `mockImplementationOnce` and `mockReturnValueOnce` bleeding into `withImplementation` ([#​13888](https://github.com/facebook/jest/pull/13888))
- `[jest-mock]` Do not restore mocks when `jest.resetAllMocks()` is called ([#​13866](https://github.com/facebook/jest/pull/13866))
#### New Contributors
- [@​brodo](https://github.com/brodo) made their first contribution in https://github.com/facebook/jest/pull/13868
- [@​DannyNemer](https://github.com/DannyNemer) made their first contribution in https://github.com/facebook/jest/pull/13878
- [@​ghusse](https://github.com/ghusse) made their first contribution in https://github.com/facebook/jest/pull/13846
- [@​broofa](https://github.com/broofa) made their first contribution in https://github.com/facebook/jest/pull/13911
**Full Changelog**: https://github.com/facebook/jest/compare/v29.4.2...v29.4.3
### [`v29.4.2`](https://github.com/jestjs/jest/releases/tag/v29.4.2)
[Compare Source](https://github.com/jestjs/jest/compare/v29.4.1...v29.4.2)
#### Features
- `[@jest/core]` Instrument significant lifecycle events with [`performance.mark()`](https://nodejs.org/docs/latest-v16.x/api/perf_hooks.html#performancemarkname-options) ([#​13859](https://github.com/facebook/jest/pull/13859))
#### Fixes
- `[expect, @​jest/expect]` Provide type of `actual` as a generic argument to `Matchers` to allow better-typed extensions ([#​13848](https://github.com/facebook/jest/pull/13848))
- `[jest-circus]` Added explicit mention of test failing because `done()` is not being called in error message ([#​13847](https://github.com/facebook/jest/pull/13847))
- `[jest-runtime]` Handle CJS re-exports of node core modules from ESM ([#​13856](https://github.com/facebook/jest/pull/13856))
- `[jest-transform]` Downgrade `write-file-atomic` to v4 ([#​13853](https://github.com/facebook/jest/pull/13853))
- `[jest-worker]` Ignore IPC messages not intended for Jest ([#​13543](https://github.com/facebook/jest/pull/13543))
#### Chore & Maintenance
- `[*]` make sure to exclude `.eslintcache` from published module ([#​13832](https://github.com/facebook/jest/pull/13832))
- `[docs]` Cleanup incorrect links in CHANGELOG.md ([#​13857](https://github.com/facebook/jest/pull/13857))
#### New Contributors
- [@​benjaminjkraft](https://github.com/benjaminjkraft) made their first contribution in https://github.com/facebook/jest/pull/13848
- [@​LinusU](https://github.com/LinusU) made their first contribution in https://github.com/facebook/jest/pull/13543
- [@​SuperSodaSea](https://github.com/SuperSodaSea) made their first contribution in https://github.com/facebook/jest/pull/13857
- [@​kowalski](https://github.com/kowalski) made their first contribution in https://github.com/facebook/jest/pull/13856
**Full Changelog**: https://github.com/facebook/jest/compare/v29.4.1...v29.4.2
### [`v29.4.1`](https://github.com/jestjs/jest/releases/tag/v29.4.1)
[Compare Source](https://github.com/jestjs/jest/compare/v29.4.0...v29.4.1)
#### Features
- `[expect, jest-circus, @​jest/types]` Implement `numPassingAsserts` of testResults to track the number of passing asserts in a test ([#​13795](https://github.com/facebook/jest/pull/13795))
- `[jest-core]` Add newlines to JSON output ([#​13817](https://github.com/facebook/jest/pull/13817))
- `[@jest/reporters]` Automatic log folding in GitHub Actions Reporter ([#​13626](https://github.com/facebook/jest/pull/13626))
#### Fixes
- `[@jest/expect-utils]` `toMatchObject` diffs should include `Symbol` properties ([#​13810](https://github.com/facebook/jest/pull/13810))
- `[jest-runtime]` Handle missing `replaceProperty` ([#​13823](https://github.com/facebook/jest/pull/13823))
- `[@jest/types]` Add partial support for `done` callbacks in typings of `each` ([#​13756](https://github.com/facebook/jest/pull/13756))
#### New Contributors
- [@​jessevanassen](https://github.com/jessevanassen) made their first contribution in https://github.com/facebook/jest/pull/13817
- [@​ymqy](https://github.com/ymqy) made their first contribution in https://github.com/facebook/jest/pull/13795
- [@​MatteoH2O1999](https://github.com/MatteoH2O1999) made their first contribution in https://github.com/facebook/jest/pull/13626
**Full Changelog**: https://github.com/facebook/jest/compare/v29.4.0...v29.4.1
### [`v29.4.0`](https://github.com/jestjs/jest/releases/tag/v29.4.0)
[Compare Source](https://github.com/jestjs/jest/compare/v29.3.1...v29.4.0)
#### Features
- `[expect, @​jest/expect-utils]` Support custom equality testers ([#​13654](https://github.com/facebook/jest/pull/13654))
- `[jest-config, jest-worker]` Use `os.availableParallelism` if available to calculate number of workers to spawn ([#​13738](https://github.com/facebook/jest/pull/13738))
- `[@jest/globals, jest-mock]` Add `jest.replaceProperty()` that replaces property value ([#​13496](https://github.com/facebook/jest/pull/13496))
- `[jest-haste-map]` ignore Sapling vcs directories (`.sl/`) ([#​13674](https://github.com/facebook/jest/pull/13674))
- `[jest-resolve]` Support subpath imports ([#​13705](https://github.com/facebook/jest/pull/13705), [#​13723](https://github.com/facebook/jest/pull/13723), [#​13777](https://github.com/facebook/jest/pull/13777))
- `[jest-runtime]` Add `jest.isolateModulesAsync` for scoped module initialization of asynchronous functions ([#​13680](https://github.com/facebook/jest/pull/13680))
- `[jest-runtime]` Add `jest.isEnvironmentTornDown` function ([#​13741](https://github.com/facebook/jest/pull/13741))
- `[jest-test-result]` Added `skipped` and `focused` status to `FormattedTestResult` ([#​13700](https://github.com/facebook/jest/pull/13700))
- `[jest-transform]` Support for asynchronous `createTransformer` ([#​13762](https://github.com/facebook/jest/pull/13762))
#### Fixes
- `[jest-environment-node]` Fix non-configurable globals ([#​13687](https://github.com/facebook/jest/pull/13687))
- `[@jest/expect-utils]` `toMatchObject` should handle `Symbol` properties ([#​13639](https://github.com/facebook/jest/pull/13639))
- `[jest-mock]` Fix `mockReset` and `resetAllMocks` `undefined` return value([#​13692](https://github.com/facebook/jest/pull/13692))
- `[jest-resolve]` Add global paths to `require.resolve.paths` ([#​13633](https://github.com/facebook/jest/pull/13633))
- `[jest-resolve]` Correct node core module detection when using `node:` specifiers ([#​13806](https://github.com/facebook/jest/pull/13806))
- `[jest-runtime]` Support WASM files that import JS resources ([#​13608](https://github.com/facebook/jest/pull/13608))
- `[jest-runtime]` Use the `scriptTransformer` cache in `jest-runner` ([#​13735](https://github.com/facebook/jest/pull/13735))
- `[jest-runtime]` Enforce import assertions when importing JSON in ESM ([#​12755](https://github.com/facebook/jest/pull/12755) & [#​13805](https://github.com/facebook/jest/pull/13805))
- `[jest-snapshot]` Make sure to import `babel` outside of the sandbox ([#​13694](https://github.com/facebook/jest/pull/13694))
- `[jest-transform]` Ensure the correct configuration is passed to preprocessors specified multiple times in the `transform` option ([#​13770](https://github.com/facebook/jest/pull/13770))
#### Chore & Maintenance
- `[@jest/fake-timers]` Update `@sinonjs/fake-timers` ([#​13612](https://github.com/facebook/jest/pull/13612))
- `[docs]` Improve custom puppeteer example to prevent worker warnings ([#​13619](https://github.com/facebook/jest/pull/13619))
#### New Contributors
- [@​lvqq](https://github.com/lvqq) made their first contribution in https://github.com/facebook/jest/pull/13633
- [@​zjfresh](https://github.com/zjfresh) made their first contribution in https://github.com/facebook/jest/pull/13682
- [@​rnwst](https://github.com/rnwst) made their first contribution in https://github.com/facebook/jest/pull/13635
- [@​overlookmotel](https://github.com/overlookmotel) made their first contribution in https://github.com/facebook/jest/pull/13687
- [@​mmanciop](https://github.com/mmanciop) made their first contribution in https://github.com/facebook/jest/pull/13680
- [@​Jeroendevr](https://github.com/Jeroendevr) made their first contribution in https://github.com/facebook/jest/pull/13428
- [@​falsyvalues](https://github.com/falsyvalues) made their first contribution in https://github.com/facebook/jest/pull/13619
- [@​vegerot](https://github.com/vegerot) made their first contribution in https://github.com/facebook/jest/pull/13674
- [@​faustAbc](https://github.com/faustAbc) made their first contribution in https://github.com/facebook/jest/pull/13331
- [@​valentincostam](https://github.com/valentincostam) made their first contribution in https://github.com/facebook/jest/pull/13634
- [@​unional](https://github.com/unional) made their first contribution in https://github.com/facebook/jest/pull/13721
- [@​andrewiggins](https://github.com/andrewiggins) made their first contribution in https://github.com/facebook/jest/pull/13654
- [@​michal-kocarek](https://github.com/michal-kocarek) made their first contribution in https://github.com/facebook/jest/pull/13496
- [@​jdufresne](https://github.com/jdufresne) made their first contribution in https://github.com/facebook/jest/pull/13469
- [@​feliperli](https://github.com/feliperli) made their first contribution in https://github.com/facebook/jest/pull/13692
- [@​bob-zs](https://github.com/bob-zs) made their first contribution in https://github.com/facebook/jest/pull/13740
- [@​MasterOdin](https://github.com/MasterOdin) made their first contribution in https://github.com/facebook/jest/pull/13743
- [@​kalyncoose](https://github.com/kalyncoose) made their first contribution in https://github.com/facebook/jest/pull/13746
- [@​arash-hacker](https://github.com/arash-hacker) made their first contribution in https://github.com/facebook/jest/pull/13747
- [@​jomendez](https://github.com/jomendez) made their first contribution in https://github.com/facebook/jest/pull/13741
- [@​coffeebeats](https://github.com/coffeebeats) made their first contribution in https://github.com/facebook/jest/pull/13770
- [@​lachrist](https://github.com/lachrist) made their first contribution in https://github.com/facebook/jest/pull/13762
- [@​lukeed](https://github.com/lukeed) made their first contribution in https://github.com/facebook/jest/pull/13777
**Full Changelog**: https://github.com/facebook/jest/compare/v29.3.1...v29.4.0
### [`v29.3.1`](https://github.com/jestjs/jest/releases/tag/v29.3.1)
[Compare Source](https://github.com/jestjs/jest/compare/v29.3.0...v29.3.1)
#### Fixes
- `[jest-config]` Do not warn about `preset` in `ProjectConfig` ([#​13583](https://github.com/facebook/jest/pull/13583))
#### Performance
- `[jest-transform]` Defer creation of cache directory ([#​13420](https://github.com/facebook/jest/pull/13420))
### [`v29.3.0`](https://github.com/jestjs/jest/releases/tag/v29.3.0)
[Compare Source](https://github.com/jestjs/jest/compare/v29.2.2...v29.3.0)
#### Features
- `[jest-runtime]` Support WebAssembly (Wasm) imports in ESM modules ([#​13505](https://github.com/facebook/jest/pull/13505))
#### Fixes
- `[jest-config]` Add config validation for `projects` option ([#​13565](https://github.com/facebook/jest/pull/13565))
- `[jest-mock]` Treat cjs modules as objects so they can be mocked ([#​13513](https://github.com/facebook/jest/pull/13513))
- `[jest-worker]` Throw an error instead of hanging when jest workers terminate unexpectedly ([#​13566](https://github.com/facebook/jest/pull/13566))
#### Chore & Maintenance
- `[@jest/transform]` Update `convert-source-map` ([#​13509](https://github.com/facebook/jest/pull/13509))
- `[docs]` Mention `toStrictEqual` in UsingMatchers docs. ([#​13560](https://github.com/facebook/jest/pull/13560))
#### New Contributors
- [@​Tofandel](https://github.com/Tofandel) made their first contribution in https://github.com/facebook/jest/pull/13513
- [@​RyWilliams](https://github.com/RyWilliams) made their first contribution in https://github.com/facebook/jest/pull/13520
- [@​waikoo](https://github.com/waikoo) made their first contribution in https://github.com/facebook/jest/pull/13447
- [@​kachkaev](https://github.com/kachkaev) made their first contribution in https://github.com/facebook/jest/pull/13505
- [@​ibuibu](https://github.com/ibuibu) made their first contribution in https://github.com/facebook/jest/pull/13565
- [@​necipallef](https://github.com/necipallef) made their first contribution in https://github.com/facebook/jest/pull/13560
- [@​ravshansbox](https://github.com/ravshansbox) made their first contribution in https://github.com/facebook/jest/pull/13533
**Full Changelog**: https://github.com/facebook/jest/compare/v29.2.2...v29.3.0
### [`v29.2.2`](https://github.com/jestjs/jest/releases/tag/v29.2.2)
[Compare Source](https://github.com/jestjs/jest/compare/v29.2.1...v29.2.2)
#### Fixes
- `[@jest/test-sequencer]` Make sure sharding does not produce empty groups ([#​13476](https://github.com/facebook/jest/pull/13476))
- `[jest-circus]` Test marked as `todo` are shown as todo when inside a focussed describe ([#​13504](https://github.com/facebook/jest/pull/13504))
- `[jest-mock]` Ensure mock resolved and rejected values are promises from correct realm ([#​13503](https://github.com/facebook/jest/pull/13503))
- `[jest-snapshot]` Don't highlight passing asymmetric property matchers in snapshot diff ([#​13480](https://github.com/facebook/jest/issues/13480))
#### Chore & Maintenance
- `[docs]` Update link to Jest 28 upgrade guide in error message ([#​13483](https://github.com/facebook/jest/pull/13483))
- `[jest-runner, jest-watcher]` Update `emittery` ([#​13490](https://github.com/facebook/jest/pull/13490))
#### New Contributors
- [@​moonrailgun](https://github.com/moonrailgun) made their first contribution in https://github.com/facebook/jest/pull/13483
- [@​halldorbjarni](https://github.com/halldorbjarni) made their first contribution in https://github.com/facebook/jest/pull/13491
**Full Changelog**: https://github.com/facebook/jest/compare/v29.2.1...v29.2.2
### [`v29.2.1`](https://github.com/jestjs/jest/releases/tag/v29.2.1)
[Compare Source](https://github.com/jestjs/jest/compare/v29.2.0...v29.2.1)
#### Features
- `[@jest/globals, jest-mock]` Add `jest.Spied*` utility types ([#​13440](https://github.com/facebook/jest/pull/13440))
#### Fixes
- `[jest-environment-node]` make `globalThis.performance` writable for Node 19 and fake timers ([#​13467](https://github.com/facebook/jest/pull/13467))
- `[jest-mock]` Revert [#​13398](https://github.com/facebook/jest/pull/13398) to restore mocking of setters ([#​13472](https://github.com/facebook/jest/pull/13472))
#### Performance
- `[*]` Use sha1 instead of sha256 for hashing ([#​13421](https://github.com/facebook/jest/pull/13421))
**Full Changelog**: https://github.com/facebook/jest/compare/v29.2.0...v29.2.1
### [`v29.2.0`](https://github.com/jestjs/jest/releases/tag/v29.2.0)
[Compare Source](https://github.com/jestjs/jest/compare/v29.1.2...v29.2.0)
#### Features
- `[@jest/cli, jest-config]` A seed for the test run will be randomly generated, or set by a CLI option ([#​13400](https://github.com/facebook/jest/pull/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 the config file ([#​13400](https://github.com/facebook/jest/pull/13400))
- `[jest-config]` Add `readInitialConfig` utility function ([#​13356](https://github.com/facebook/jest/pull/13356))
- `[jest-core]` Allow `testResultsProcessor` to be async ([#​13343](https://github.com/facebook/jest/pull/13343))
- `[@jest/environment, jest-environment-node, jest-environment-jsdom, jest-runtime]` Add `getSeed()` to the `jest` object ([#​13400](https://github.com/facebook/jest/pull/13400))
- `[expect, @​jest/expect-utils]` Allow `isA` utility to take a type argument ([#​13355](https://github.com/facebook/jest/pull/13355))
- `[expect]` Expose `AsyncExpectationResult` and `SyncExpectationResult` types ([#​13411](https://github.com/facebook/jest/pull/13411))
#### Fixes
- `[babel-plugin-jest-hoist]` Ignore `TSTypeQuery` when checking for hoisted references ([#​13367](https://github.com/facebook/jest/pull/13367))
- `[jest-core]` Fix `detectOpenHandles` false positives for some special objects such as `TLSWRAP` ([#​13414](https://github.com/facebook/jest/pull/13414))
- `[jest-mock]` Fix mocking of getters and setters on classes ([#​13398](https://github.com/facebook/jest/pull/13398))
- `[jest-reporters]` Revert: Transform file paths into hyperlinks ([#​13399](https://github.com/facebook/jest/pull/13399))
- `[@jest/types]` Infer type of `each` table correctly when the table is a tuple or array ([#​13381](https://github.com/facebook/jest/pull/13381))
- `[@jest/types]` Rework typings to allow the `*ReturnedWith` matchers to be called with no argument ([#​13385](https://github.com/facebook/jest/pull/13385))
#### Chore & Maintenance
- `[*]` Update `@babel/*` deps, resulting in slightly different stack traces for `each` ([#​13422](https://github.com/facebook/jest/pull/13422))
#### Performance
- `[jest-runner]` Do not instrument v8 coverage data if coverage should not be collected ([#​13282](https://github.com/facebook/jest/pull/13282))
#### New Contributors
- [@​johannessjoberg](https://github.com/johannessjoberg) made their first contribution in https://github.com/facebook/jest/pull/13343
- [@​mitchhentgesspotify](https://github.com/mitchhentgesspotify) made their first contribution in https://github.com/facebook/jest/pull/13282
- [@​Methuselah96](https://github.com/Methuselah96) made their first contribution in https://github.com/facebook/jest/pull/13409
- [@​jhwang98](https://github.com/jhwang98) made their first contribution in https://github.com/facebook/jest/pull/13400
- [@​professorjrod](https://github.com/professorjrod) made their first contribution in https://github.com/facebook/jest/pull/13418
- [@​jesusarell](https://github.com/jesusarell) made their first contribution in https://github.com/facebook/jest/pull/13407
**Full Changelog**: https://github.com/facebook/jest/compare/v29.1.2...v29.2.0
### [`v29.1.2`](https://github.com/jestjs/jest/releases/tag/v29.1.2)
[Compare Source](https://github.com/jestjs/jest/compare/v29.1.0...v29.1.2)
#### Fixes
- `[expect, @​jest/expect]` Revert buggy inference of argument types for `*CalledWith` and `*ReturnedWith` matchers introduced in 29.1.0 ([#​13339](https://github.com/facebook/jest/pull/13339))
- `[jest-worker]` Add missing dependency on `jest-util` ([#​13341](https://github.com/facebook/jest/pull/13341))
#### New Contributors
- [@​brunocabral88](https://github.com/brunocabral88) made their first contribution in https://github.com/facebook/jest/pull/13329
- [@​alexander-akait](https://github.com/alexander-akait) made their first contribution in https://github.com/facebook/jest/pull/13341
**Full Changelog**: https://github.com/facebook/jest/compare/v29.1.1...v29.1.2
### [`v29.1.0`](https://github.com/jestjs/jest/releases/tag/v29.1.0)
[Compare Source](https://github.com/jestjs/jest/compare/v29.0.3...v29.1.0)
#### Features
- `[expect, @​jest/expect]` support type inference for function parameters in `CalledWith` assertions ([#​13268](https://github.com/facebook/jest/pull/13268))
- `[expect, @​jest/expect]` Infer type of `*ReturnedWith` matchers argument ([#​13278](https://github.com/facebook/jest/pull/13278))
- `[@jest/environment, jest-runtime]` Allow `jest.requireActual` and `jest.requireMock` to take a type argument ([#​13253](https://github.com/facebook/jest/pull/13253))
- `[@jest/environment]` Allow `jest.mock` and `jest.doMock` to take a type argument ([#​13254](https://github.com/facebook/jest/pull/13254))
- `[@jest/fake-timers]` Add `jest.now()` to return the current fake clock time ([#​13244](https://github.com/facebook/jest/pull/13244), [#​13246](https://github.com/facebook/jest/pull/13246))
- `[@jest/mock]` Add `withImplementation` method for temporarily overriding a mock ([#​13281](https://github.com/facebook/jest/pull/13281))
- `[expect]` Export `toThrow*` matchers ([#​13328](https://github.com/facebook/jest/pull/13328))
#### Fixes
- `[jest-circus, jest-jasmine2]` Fix error messages for Node's `assert.throes` ([#​13322](https://github.com/facebook/jest/pull/13322))
- `[jest-haste-map]` Remove `__proto__` usage ([#​13256](https://github.com/facebook/jest/pull/13256))
- `[jest-mock]` Improve `spyOn` typings to handle optional properties ([#​13247](https://github.com/facebook/jest/pull/13247))
- `[jest-mock]` Fix mocking of getters and setters on classes ([#​13145](https://github.com/facebook/jest/pull/13145))
- `[jest-snapshot]` Throw useful error when an array is passed as property matchers ([#​13263](https://github.com/facebook/jest/pull/13263))
- `[jest-snapshot]` Prioritize parser used in the project ([#​13323](https://github.com/facebook/jest/pull/13323))
- `[jest-transform]` Attempt to work around issues with atomic writes on Windows ([#​11423](https://github.com/facebook/jest/pull/11423))
#### New Contributors
- [@​fzn0x](https://github.com/fzn0x) made their first contribution in https://github.com/facebook/jest/pull/13234
- [@​guimard](https://github.com/guimard) made their first contribution in https://github.com/facebook/jest/pull/13256
- [@​weidehai](https://github.com/weidehai) made their first contribution in https://github.com/facebook/jest/pull/13270
- [@​kettanaito](https://github.com/kettanaito) made their first contribution in https://github.com/facebook/jest/pull/12871
- [@​royhadad](https://github.com/royhadad) made their first contribution in https://github.com/facebook/jest/pull/13279
- [@​ghiscoding](https://github.com/ghiscoding) made their first contribution in https://github.com/facebook/jest/pull/13290
- [@​paulreece](https://github.com/paulreece) made their first contribution in https://github.com/facebook/jest/pull/13311
- [@​jeppester](https://github.com/jeppester) made their first contribution in https://github.com/facebook/jest/pull/13281
- [@​sashashura](https://github.com/sashashura) made their first contribution in https://github.com/facebook/jest/pull/13324
- [@​lpizzinidev](https://github.com/lpizzinidev) made their first contribution in https://github.com/facebook/jest/pull/13322
- [@​JVBorges](https://github.com/JVBorges) made their first contribution in https://github.com/facebook/jest/pull/13323
- [@​staplespeter](https://github.com/staplespeter) made their first contribution in https://github.com/facebook/jest/pull/13145
**Full Changelog**: https://github.com/facebook/jest/compare/v29.0.3...v29.1.0
### [`v29.0.3`](https://github.com/jestjs/jest/releases/tag/v29.0.3)
[Compare Source](https://github.com/jestjs/jest/compare/v29.0.2...v29.0.3)
#### Features
- `[@jest/environment, jest-runtime]` Allow passing a generic type argument to `jest.createMockFromModule<T>()` method ([#​13202](https://github.com/facebook/jest/pull/13202))
- `[expect]` Expose `ExpectationResult` type ([#​13240](https://github.com/facebook/jest/pull/13240))
- `[jest-snapshot]` Expose `Context` type ([#​13240](https://github.com/facebook/jest/pull/13240))
- `[@jest/globals]` Add `jest.Mock` type helper ([#​13235](https://github.com/facebook/jest/pull/13235))
#### Fixes
- `[jest-core]` Capture `execError` during `TestScheduler.scheduleTests` and dispatch to reporters ([#​13203](https://github.com/facebook/jest/pull/13203))
- `[jest-resolve]` Make sure to resolve module paths after looking at `exports` ([#​13242](https://github.com/facebook/jest/pull/13242))
- `[jest-resolve]` Improve error on module not found deep in the `require` stack ([#​8704](https://github.com/facebook/jest/pull/8704))
- `[jest-snapshot]` Fix typings of snapshot matchers ([#​13240](https://github.com/facebook/jest/pull/13240))
#### Chore & Maintenance
- `[*]` Fix inconsistent workspace prefixes ([#​13217](https://github.com/facebook/jest/pull/13217))
- `[jest-haste-map]` Expose a minimal public API to TypeScript ([#​13023](https://github.com/facebook/jest/pull/13023))
#### New Contributors
- [@​iamWing](https://github.com/iamWing) made their first contribution in https://github.com/facebook/jest/pull/13191
- [@​shinxi](https://github.com/shinxi) made their first contribution in https://github.com/facebook/jest/pull/12930
- [@​bmish](https://github.com/bmish) made their first contribution in https://github.com/facebook/jest/pull/13217
- [@​maschwenk](https://github.com/maschwenk) made their first contribution in https://github.com/facebook/jest/pull/13226
**Full Changelog**: https://github.com/facebook/jest/compare/v29.0.2...v29.0.3
### [`v29.0.2`](https://github.com/jestjs/jest/releases/tag/v29.0.2)
[Compare Source](https://github.com/jestjs/jest/compare/v29.0.1...v29.0.2)
#### Features
- `[jest-transform]` Expose `TransformFactory` type ([#​13184](https://github.com/facebook/jest/pull/13184))
#### Fixes
- `[babel-plugin-jest-hoist]` Support imported `jest` in mock factory ([#​13188](https://github.com/facebook/jest/pull/13188))
- `[jest-mock]` Align the behavior and return type of `generateFromMetadata` method ([#​13207](https://github.com/facebook/jest/pull/13207))
- `[jest-runtime]` Support `jest.resetModules()` with ESM ([#​13211](https://github.com/facebook/jest/pull/13211))
#### New Contributors
- [@​momokid](https://github.com/momokid) made their first contribution in https://github.com/facebook/jest/pull/13194
**Full Changelog**: https://github.com/facebook/jest/compare/v29.0.1...v29.0.2
### [`v29.0.1`](https://github.com/jestjs/jest/releases/tag/v29.0.1)
[Compare Source](https://github.com/jestjs/jest/compare/v29.0.0...v29.0.1)
##### Fixes
- `[jest-snapshot]` Pass `snapshotFormat` through when diffing snapshots ([#​13181](https://github.com/facebook/jest/pull/13181))
**Full Changelog**: https://github.com/facebook/jest/compare/v29.0.0...v29.0.1
### [`v29.0.0`](https://github.com/jestjs/jest/releases/tag/v29.0.0)
[Compare Source](https://github.com/jestjs/jest/compare/v28.1.3...v29.0.0)
Blog post: https://jestjs.io/blog/2022/08/25/jest-29
#### Features
- `[expect]` \[**BREAKING**] Differentiate between `MatcherContext` `MatcherUtils` and `MatcherState` types ([#​13141](https://github.com/facebook/jest/pull/13141))
- `[jest-circus]` Add support for `test.failing.each` ([#​13142](https://github.com/facebook/jest/pull/13142))
- `[jest-config]` \[**BREAKING**] Make `snapshotFormat` default to `escapeString: false` and `printBasicPrototype: false` ([#​13036](https://github.com/facebook/jest/pull/13036))
- `[jest-config]` \[**BREAKING**] Remove undocumented `collectCoverageOnlyFrom` option ([#​13156](https://github.com/facebook/jest/pull/13156))
- `[jest-environment-jsdom]` \[**BREAKING**] Upgrade to `jsdom@20` ([#​13037](https://github.com/facebook/jest/pull/13037), [#​13058](https://github.com/facebook/jest/pull/13058))
- `[@jest/globals]` Add `jest.Mocked`, `jest.MockedClass`, `jest.MockedFunction` and `jest.MockedObject` utility types ([#​12727](https://github.com/facebook/jest/pull/12727))
- `[jest-mock]` \[**BREAKING**] Refactor `Mocked*` utility types. `MaybeMockedDeep` and `MaybeMocked` became `Mocked` and `MockedShallow` respectively; only deep mocked variants of `MockedClass`, `MockedFunction` and `MockedObject` are exported ([#​13123](https://github.com/facebook/jest/pull/13123), [#​13124](https://github.com/facebook/jest/pull/13124))
- `[jest-mock]` \[**BREAKING**] Change the default `jest.mocked` helper’s behavior to deep mocked ([#​13125](https://github.com/facebook/jest/pull/13125))
- `[jest-snapshot]` \[**BREAKING**] Let `babel` find config when updating inline snapshots ([#​13150](https://github.com/facebook/jest/pull/13150))
- `[@jest/test-result, @​jest/types]` \[**BREAKING**] Replace `Bytes` and `Milliseconds` types with `number` ([#​13155](https://github.com/facebook/jest/pull/13155))
- `[jest-worker]` Adds `workerIdleMemoryLimit` option which is used as a check for worker memory leaks >= Node 16.11.0 and recycles child workers as required ([#​13056](https://github.com/facebook/jest/pull/13056), [#​13105](https://github.com/facebook/jest/pull/13105), [#​13106](https://github.com/facebook/jest/pull/13106), [#​13107](https://github.com/facebook/jest/pull/13107))
- `[pretty-format]` \[**BREAKING**] Remove `ConvertAnsi` plugin in favour of `jest-serializer-ansi-escapes` ([#​13040](https://github.com/facebook/jest/pull/13040))
- `[pretty-format]` Allow to opt out from sorting object keys with `compareKeys: null` ([#​12443](https://github.com/facebook/jest/pull/12443))
#### Fixes
- `[jest-config]` Fix testing multiple projects with TypeScript config files ([#​13099](https://github.com/facebook/jest/pull/13099))
- `[@jest/expect-utils]` Fix deep equality of ImmutableJS Record ([#​13055](https://github.com/facebook/jest/pull/13055))
- `[jest-haste-map]` Increase the maximum possible file size that jest-haste-map can handle ([#​13094](https://github.com/facebook/jest/pull/13094))
- `[jest-runtime]` Properly support CJS re-exports from dual packages ([#​13170](https://github.com/facebook/jest/pull/13170))
- `[jest-snapshot]` Make `prettierPath` optional in `SnapshotState` ([#​13149](https://github.com/facebook/jest/pull/13149))
- `[jest-snapshot]` Fix parsing error from inline snapshot files with `JSX` ([#​12760](https://github.com/facebook/jest/pull/12760))
- `[jest-worker]` When a process runs out of memory worker exits correctly and doesn't spin indefinitely ([#​13054](https://github.com/facebook/jest/pull/13054))
#### Chore & Maintenance
- `[*]` \[**BREAKING**] Drop support for Node v12 and v17 ([#​13033](https://github.com/facebook/jest/pull/13033))
- `[docs]` Fix webpack name ([#​13049](https://github.com/facebook/jest/pull/13049))
- `[docs]` Explicit how to set `n` for `--bail` ([#​13128](https://github.com/facebook/jest/pull/13128))
- `[docs]` Update Enzyme URL ([#​13166](https://github.com/facebook/jest/pull/13166))
- `[jest-leak-detector]` Remove support for `weak-napi` ([#​13035](https://github.com/facebook/jest/pull/13035))
- `[jest-snapshot]` \[**BREAKING**] Require `rootDir` as argument to `SnapshotState` ([#​13150](https://github.com/facebook/jest/pull/13150))
#### New Contributors
- [@​makstech](https://github.com/makstech) made their first contribution in https://github.com/facebook/jest/pull/13049
- [@​sa2taka](https://github.com/sa2taka) made their first contribution in https://github.com/facebook/jest/pull/13055
- [@​matheus-rodrigues00](https://github.com/matheus-rodrigues00) made their first contribution in https://github.com/facebook/jest/pull/13090
- [@​lanpai](https://github.com/lanpai) made their first contribution in https://github.com/facebook/jest/pull/13094
- [@​Zebreus](https://github.com/Zebreus) made their first contribution in https://github.com/facebook/jest/pull/13099
- [@​backmask](https://github.com/backmask) made their first contribution in https://github.com/facebook/jest/pull/13106
- [@​liuxingbaoyu](https://github.com/liuxingbaoyu) made their first contribution in https://github.com/facebook/jest/pull/13120
- [@​Trim](https://github.com/Trim) made their first contribution in https://github.com/facebook/jest/pull/13128
- [@​kkyusufk](https://github.com/kkyusufk) made their first contribution in https://github.com/facebook/jest/pull/13142
- [@​KrishnaPG](https://github.com/KrishnaPG) made their first contribution in https://github.com/facebook/jest/pull/13157
- [@​dev-itsheng](https://github.com/dev-itsheng) made their first contribution in https://github.com/facebook/jest/pull/13115
- [@​jeffslofish](https://github.com/jeffslofish) made their first contribution in https://github.com/facebook/jest/pull/13166
**Full Changelog**: https://github.com/facebook/jest/compare/v28.1.3...v29.0.0
### [`v28.1.3`](https://github.com/jestjs/jest/releases/tag/v28.1.3)
[Compare Source](https://github.com/jestjs/jest/compare/v28.1.2...v28.1.3)
#### Features
- `[jest-leak-detector]` Use native `FinalizationRegistry` when it exists to get rid of external C dependency ([#​12973](https://github.com/facebook/jest/pull/12973))
#### Fixes
- `[jest-changed-files]` Fix a lock-up after repeated invocations ([#​12757](https://github.com/facebook/jest/issues/12757))
- `[@jest/expect-utils]` Fix deep equality of ImmutableJS OrderedSets ([#​12977](https://github.com/facebook/jest/pull/12977))
- `[jest-mock]` Add index signature support for `spyOn` types ([#​13013](https://github.com/facebook/jest/pull/13013), [#​13020](https://github.com/facebook/jest/pull/13020))
- `[jest-snapshot]` Fix indentation of awaited inline snapshots ([#​12986](https://github.com/facebook/jest/pull/12986))
#### Chore & Maintenance
- `[*]` Replace internal usage of `pretty-format/ConvertAnsi` with `jest-serializer-ansi-escapes` ([#​12935](https://github.com/facebook/jest/pull/12935), [#​13004](https://github.com/facebook/jest/pull/13004))
- `[docs]` Update spyOn docs ([#​13000](https://github.com/facebook/jest/pull/13000))
#### New Contributors
- [@​joshkel](https://github.com/joshkel) made their first contribution in https://github.com/facebook/jest/pull/12960
- [@​enrilzhou](https://github.com/enrilzhou) made their first contribution in https://github.com/facebook/jest/pull/12973
- [@​milahu](https://github.com/milahu) made their first contribution in https://github.com/facebook/jest/pull/12983
- [@​MiguelYax](https://github.com/MiguelYax) made their first contribution in https://github.com/facebook/jest/pull/13000
- [@​kaffarell](https://github.com/kaffarell) made their first contribution in https://github.com/facebook/jest/pull/13015
- [@​TheKhanj](https://github.com/TheKhanj) made their first contribution in https://github.com/facebook/jest/pull/12988
- [@​Fdawgs](https://github.com/Fdawgs) made their first contribution in https://github.com/facebook/jest/pull/13019
**Full Changelog**: https://github.com/facebook/jest/compare/v28.1.2...v28.1.3
### [`v28.1.2`](https://github.com/jestjs/jest/releases/tag/v28.1.2)
[Compare Source](https://github.com/jestjs/jest/compare/v28.1.1...v28.1.2)
#### Fixes
- `[jest-runtime]` Avoid star type import from `@jest/globals` ([#​12949](https://github.com/facebook/jest/pull/12949))
#### Chore & Maintenance
- `[docs]` Mention that jest-codemods now supports Sinon ([#​12898](https://github.com/facebook/jest/pull/12898))
#### New Contributors
- [@​danbeam](https://github.com/danbeam) made their first contribution in https://github.com/facebook/jest/pull/12898
- [@​DanRowe](https://github.com/DanRowe) made their first contribution in https://github.com/facebook/jest/pull/12915
**Full Changelog**: https://github.com/facebook/jest/compare/v28.1.1...v28.1.2
### [`v28.1.1`](https://github.com/jestjs/jest/releases/tag/v28.1.1)
[Compare Source](https://github.com/jestjs/jest/compare/v28.1.0...v28.1.1)
#### Features
- `[jest]` Expose `Config` type ([#​12848](https://github.com/facebook/jest/pull/12848))
- `[@jest/reporters]` Improve `GitHubActionsReporter`s annotation format ([#​12826](https://github.com/facebook/jest/pull/12826))
- `[@jest/types]` Infer argument types passed to `test` and `describe` callback functions from `each` tables ([#​12885](https://github.com/facebook/jest/pull/12885), [#​12905](https://github.com/facebook/jest/pull/12905))
#### Fixes
- `[@jest/expect-utils]` Fix deep equality of ImmutableJS OrderedMaps ([#​12763](https://github.com/facebook/jest/pull/12899))
- `[jest-docblock]` Handle multiline comments in parseWithComments ([#​12845](https://github.com/facebook/jest/pull/12845))
- `[jest-mock]` Improve `spyOn` error messages ([#​12901](https://github.com/facebook/jest/pull/12901))
- `[jest-runtime]` Correctly report V8 coverage with `resetModules: true` ([#​12912](https://github.com/facebook/jest/pull/12912))
- `[jest-worker]` Make `JestWorkerFarm` helper type to include methods of worker module that take more than one argument ([#​12839](https://github.com/facebook/jest/pull/12839))
#### Chore & Maintenance
- `[docs]` Updated docs to indicate that `jest-environment-jsdom` is a separate package [#​12828](https://github.com/facebook/jest/issues/12828)
- `[docs]` Document the comments used by coverage providers [#​12835](https://github.com/facebook/jest/issues/12835)
- `[docs]` Use `docusaurus-remark-plugin-tab-blocks` to format tabs with code examples ([#​12859](https://github.com/facebook/jest/pull/12859))
- `[jest-haste-map]` Bump `walker` version ([#​12324](https://github.com/facebook/jest/pull/12324))
- `[expect]` Adjust typings of `lastCalledWith`, `nthCalledWith`, `toBeCalledWith` matchers to allow a case there a mock was called with no arguments ([#​12807](https://github.com/facebook/jest/pull/12807))
- `[@jest/expect-utils]` Fix deep equality of ImmutableJS Lists ([#​12763](https://github.com/facebook/jest/pull/12763))
- `[jest-core]` Do not collect `SIGNREQUEST` as open handles ([#​12789](https://github.com/facebook/jest/pull/12789))
#### New Contributors
- [@​owjsub](https://github.com/owjsub) made their first contribution in https://github.com/facebook/jest/pull/12324
- [@​Aveline-art](https://github.com/Aveline-art) made their first contribution in https://github.com/facebook/jest/pull/12831
- [@​spenserblack](https://github.com/spenserblack) made their first contribution in https://github.com/facebook/jest/pull/12836
- [@​dimitropoulos](https://github.com/dimitropoulos) made their first contribution in https://github.com/facebook/jest/pull/12817
- [@​ullumullu](https://github.com/ullumullu) made their first contribution in https://github.com/facebook/jest/pull/12845
- [@​limonte](https://github.com/limonte) made their first contribution in https://github.com/facebook/jest/pull/12851
- [@​Dennis273](https://github.com/Dennis273) made their first contribution in https://github.com/facebook/jest/pull/12870
- [@​shreykinshu](https://github.com/shreykinshu) made their first contribution in https://github.com/facebook/jest/pull/12886
- [@​pbomb](https://github.com/pbomb) made their first contribution in https://github.com/facebook/jest/pull/12899
- [@​ChrisCoastal](https://github.com/ChrisCoastal) made their first contribution in https://github.com/facebook/jest/pull/12887
- [@​HyunseungLee-Travis](https://github.com/HyunseungLee-Travis) made their first contribution in https://github.com/facebook/jest/pull/12810
**Full Changelog**: https://github.com/facebook/jest/compare/v28.1.0...v28.1.1
### [`v28.1.0`](https://github.com/jestjs/jest/releases/tag/v28.1.0)
[Compare Source](https://github.com/jestjs/jest/compare/v28.0.3...v28.1.0)
#### Features
- `[jest-circus]` Add `failing` test modifier that inverts the behaviour of tests ([#​12610](https://github.com/facebook/jest/pull/12610))
- `[jest-environment-node, jest-environment-jsdom]` Allow specifying `customExportConditions` ([#​12774](https://github.com/facebook/jest/pull/12774))
#### Fixes
- `[expect]` Adjust typings of `lastCalledWith`, `nthCalledWith`, `toBeCalledWith` matchers to allow a case there a mock was called with no arguments ([#​12807](https://github.com/facebook/jest/pull/12807))
- `[@jest/expect-utils]` Fix deep equality of ImmutableJS Lists ([#​12763](https://github.com/facebook/jest/pull/12763))
- `[jest-core]` Do not collect `SIGNREQUEST` as open handles ([#​12789](https://github.com/facebook/jest/pull/12789))
#### Chore & Maintenance
- `[docs]` Specified documentation about `--filter` CLI docs ([#​12799](https://github.com/facebook/jest/pull/12799))
- `[@jest-reporters]` Move helper functions from `utils.ts` into separate files ([#​12782](https://github.com/facebook/jest/pull/12782))
- `[jest-resolve]` Replace `process.versions.pnp` type declaration with `@types/pnpapi` devDependency ([#​12783](https://github.com/facebook/jest/pull/12783))
#### New Contributors
- [@​romellem](https://github.com/romellem) made their first contribution in https://github.com/facebook/jest/pull/12763
- [@​cristianrgreco](https://github.com/cristianrgreco) made their first contribution in https://github.com/facebook/jest/pull/12789
- [@​rethab](https://github.com/rethab) made their first contribution in https://github.com/facebook/jest/pull/12791
- [@​gramsco](https://github.com/gramsco) made their first contribution in https://github.com/facebook/jest/pull/12799
- [@​michalwarda](https://github.com/michalwarda) made their first contribution in https://github.com/facebook/jest/pull/12610
- [@​mikemaccana](https://github.com/mikemaccana) made their first contribution in https://github.com/facebook/jest/pull/12809
**Full Changelog**: https://github.com/facebook/jest/compare/v28.0.3...v28.1.0
### [`v28.0.3`](https://github.com/jestjs/jest/releases/tag/v28.0.3)
[Compare Source](https://github.com/jestjs/jest/compare/v28.0.2...v28.0.3)
#### Fixes
- `[jest-config]` Normalize `reporters` option defined in presets ([#​12769](https://github.com/facebook/jest/pull/12769))
- `[@jest/reporters]` Fix trailing slash in matching `coverageThreshold` key ([#​12714](https://github.com/facebook/jest/pull/12714))
- `[jest-resolve]` Fix (experimental) ESM module mocking for re-exports ([#​12766](https://github.com/facebook/jest/pull/12766))
- `[@jest/transform]` Throw better error if an invalid return value if encountered ([#​12764](https://github.com/facebook/jest/pull/12764))
#### Chore & Maintenance
- `[docs]` Fix typo in `--shard` CLI docs ([#​12761](https://github.com/facebook/jest/pull/12761))
#### New Contributors
- [@​wespickett](https://github.com/wespickett) made their first contribution in https://github.com/facebook/jest/pull/12714
- [@​helloitsjoe](https://github.com/helloitsjoe) made their first contribution in https://github.com/facebook/jest/pull/12761
- [@​maxdavidson](https://github.com/maxdavidson) made their first contribution in https://github.com/facebook/jest/pull/12766
**Full Changelog**: https://github.com/facebook/jest/compare/v28.0.2...v28.0.3
### [`v28.0.2`](https://github.com/jestjs/jest/releases/tag/v28.0.2)
[Compare Source](https://github.com/jestjs/jest/compare/v28.0.1...v28.0.2)
#### Features
- `[jest-worker]` Add `JestWorkerFarm` helper type ([#​12753](https://github.com/facebook/jest/pull/12753))
#### Fixes
- `[*]` Lower Node 16 requirement to 16.10 from 16.13 due to a [Node bug](https://github.com/nodejs/node/issues/40014) that causes memory and performance issues ([#​12754](https://github.com/facebook/jest/pull/12754))
**Full Changelog**: https://github.com/facebook/jest/compare/v28.0.1...v28.0.2
### [`v28.0.1`](https://github.com/jestjs/jest/releases/tag/v28.0.1)
[Compare Source](https://github.com/jestjs/jest/compare/v28.0.0...v28.0.1)
#### Features
- `[jest-resolve]` Expose `ResolverOptions` type ([#​12736](https://github.com/facebook/jest/pull/12736))
#### Fixes
- `[expect]` Add missing dependency `jest-util` ([#​12744](https://github.com/facebook/jest/pull/12744))
- `[jest-circus]` Improve `test.concurrent` ([#​12748](https://github.com/facebook/jest/pull/12748))
- `[jest-resolve]` Correctly throw an error if `jsdom` test environment is used, but not installed ([#​12749](https://github.com/facebook/jest/pull/12749))
#### Chore & Maintenance
- `[jest-serializer]` Remove deprecated module from source tree ([#​12735](https://github.com/facebook/jest/pull/12735))
**Full Changelog**: https://github.com/facebook/jest/compare/v28.0.0...v28.0.1
### [`v28.0.0`](https://github.com/jestjs/jest/releases/tag/v28.0.0)
[Compare Source](https://github.com/jestjs/jest/compare/v27.5.1...v28.0.0)
Blog post: https://jestjs.io/blog/2022/04/25/jest-28
#### Features
- `[babel-jest]` Export `createTransformer` function ([#​12399](https://github.com/facebook/jest/pull/12399))
- `[expect]` Expose `AsymmetricMatchers`, `MatcherFunction` and `MatcherFunctionWithState` interfaces ([#​12363](https://github.com/facebook/jest/pull/12363), [#​12376](https://github.com/facebook/jest/pull/12376))
- `[jest-circus]` Support error logging before retry ([#​12201](https://github.com/facebook/jest/pull/12201))
- `[jest-circus, jest-jasmine2]` Allowed classes and functions as `describe` and `it`/`test` names ([#​12484](https://github.com/facebook/jest/pull/12484))
- `[jest-cli, jest-config]` \[**BREAKING**] Remove `testURL` config, use `testEnvironmentOptions.url` instead ([#​10797](https://github.com/facebook/jest/pull/10797))
- `[jest-cli, jest-core]` Add `--shard` parameter for distributed parallel test execution ([#​12546](https://github.com/facebook/jest/pull/12546))
- `[jest-cli]` \[**BREAKING**] Remove undocumented `--timers` option ([#​12572](https://github.com/facebook/jest/pull/12572))
- `[jest-config]` \[**BREAKING**] Stop shipping `jest-environment-jsdom` by default ([#​12354](https://github.com/facebook/jest/pull/12354))
- `[jest-config]` \[**BREAKING**] Stop shipping `jest-jasmine2` by default ([#​12355](https://github.com/facebook/jest/pull/12355))
- `[jest-config, @​jest/types]` Add `ci` to `GlobalConfig` ([#​12378](https://github.com/facebook/jest/pull/12378))
- `[jest-config]` \[**BREAKING**] Rename `moduleLoader` to `runtime` ([#​10817](https://github.com/facebook/jest/pull/10817))
- `[jest-config]` \[**BREAKING**] Rename `extraGlobals` to `sandboxInjectedGlobals` ([#​10817](https://github.com/facebook/jest/pull/10817))
- `[jest-config]` \[**BREAKING**] Throw an error instead of showing a warning if multiple configs are used ([#​12510](https://github.com/facebook/jest/pull/12510))
- `[jest-config]` \[**BREAKING**] Do not normalize long deprecated configuration options `preprocessorIgnorePatterns`, `scriptPreprocessor`, `setupTestFrameworkScriptFile` and `testPathDirs` ([#​12701](https://github.com/facebook/jest/pull/12701))
- `[jest-cli, jest-core]` Add `--ignoreProjects` CLI argument to ignore test suites by project name ([#​12620](https://github.com/facebook/jest/pull/12620))
- `[jest-core]` Pass project config to `globalSetup`/`globalTeardown` function as second argument ([#​12440](https://github.com/facebook/jest/pull/12440))
- `[jest-core]` Stabilize test runners with event emitters ([#​12641](https://github.com/facebook/jest/pull/12641))
- `[jest-core, jest-watcher]` \[**BREAKING**] Move `TestWatcher` class to `jest-watcher` package ([#​12652](https://github.com/facebook/jest/pull/12652))
- `[jest-core]` Allow using Summary Reporter as stand-alone reporter ([#​12687](https://github.com/facebook/jest/pull/12687))
- `[jest-environment-jsdom]` \[**BREAKING**] Upgrade jsdom to 19.0.0 ([#​12290](https://github.com/facebook/jest/pull/12290))
- `[jest-environment-jsdom]` \[**BREAKING**] Add default `browser` condition to `exportConditions` for `jsdom` environment ([#​11924](https://github.com/facebook/jest/pull/11924))
- `[jest-environment-jsdom]` \[**BREAKING**] Pass global config to Jest environment constructor for `jsdom` environment ([#​12461](https://github.com/facebook/jest/pull/12461))
- `[jest-environment-jsdom]` \[**BREAKING**] Second argument `context` to constructor is mandatory ([#​12469](https://github.com/facebook/jest/pull/12469))
- `[jest-environment-node]` \[**BREAKING**] Add default `node` and `node-addon` conditions to `exportConditions` for `node` environment ([#​11924](https://github.com/facebook/jest/pull/11924))
- `[jest-environment-node]` \[**BREAKING**] Pass global config to Jest environment constructor for `node` environment ([#​12461](https://github.com/facebook/jest/pull/12461))
- `[jest-environment-node]` \[**BREAKING**] Second argument `context` to constructor is mandatory ([#​12469](https://github.com/facebook/jest/pull/12469))
- `[jest-environment-node]` Add all available globals to test globals, not just explicit ones ([#​12642](https://github.com/facebook/jest/pull/12642), [#​12696](https://github.com/facebook/jest/pull/12696))
- `[@jest/expect]` New module which extends `expect` with `jest-snapshot` matchers ([#​12404](https://github.com/facebook/jest/pull/12404), [#​12410](https://github.com/facebook/jest/pull/12410), [#​12418](https://github.com/facebook/jest/pull/12418))
- `[@jest/expect-utils]` New module exporting utils for `expect` ([#​12323](https://github.com/facebook/jest/pull/12323))
- `[@jest/fake-timers]` \[**BREAKING**] Rename `timers` configuration option to `fakeTimers` ([#​12572](https://github.com/facebook/jest/pull/12572))
- `[@jest/fake-timers]` \[**BREAKING**] Allow `jest.useFakeTimers()` and `projectConfig.fakeTimers` to take an options bag ([#​12572](https://github.com/facebook/jest/pull/12572))
- `[jest-haste-map]` \[**BREAKING**] `HasteMap.create` now returns a promise ([#​12008](https://github.com/facebook/jest/pull/12008))
- `[jest-haste-map]` Add support for `dependencyExtractor` written in ESM ([#​12008](https://github.com/facebook/jest/pull/12008))
- `[jest-mock]` \[**BREAKING**] Rename exported utility types `ClassLike`, `FunctionLike`, `ConstructorLikeKeys`, `MethodLikeKeys`, `PropertyLikeKeys`; remove exports of utility types `ArgumentsOf`, `ArgsType`, `ConstructorArgumentsOf` - TS builtin utility types `ConstructorParameters` and `Parameters` should be used instead ([#​12435](https://github.com/facebook/jest/pull/12435), [#​12489](https://github.com/facebook/jest/pull/12489))
- `[jest-mock]` Improve `isMockFunction` to infer types of passed function ([#​12442](https://github.com/facebook/jest/pull/12442))
- `[jest-mock]` \[**BREAKING**] Improve the usage of `jest.fn` generic type argument ([#​12489](https://github.com/facebook/jest/pull/12489))
- `[jest-mock]` Add support for auto-mocking async generator functions ([#​11080](https://github.com/facebook/jest/pull/11080))
- `[jest-mock]` Add `contexts` member to mock functions ([#​12601](https://github.com/facebook/jest/pull/12601))
- `[@jest/reporters]` Add GitHub Actions reporter ([#​11320](https://github.com/facebook/jest/pull/11320), [#​12658](https://github.com/facebook/jest/pull/12658))
- `[@jest/reporters]` Pass `reporterContext` to custom reporter constructors as third argument ([#​12657](https://github.com/facebook/jest/pull/12657))
- `[jest-resolve]` \[**BREAKING**] Add support for `package.json` `exports` ([#​11961](https://github.com/facebook/jest/pull/11961), [#​12373](https://github.com/facebook/jest/pull/12373))
- `[jest-resolve]` Support package self-reference ([#​12682](https://github.com/facebook/jest/pull/12682))
- `[jest-resolve, jest-runtime]` Add support for `data:` URI import and mock ([#​12392](https://github.com/facebook/jest/pull/12392))
- `[jest-resolve, jest-runtime]` Add support for async resolver ([#​11540](https://github.com/facebook/jest/pull/11540))
- `[jest-resolve]` \[**BREAKING**] Remove `browser?: boolean` from resolver options, `conditions: ['browser']` should be used instead ([#​12707](https://github.com/facebook/jest/pull/12707))
- `[jest-resolve]` Expose `JestResolver`, `AsyncResolver`, `SyncResolver`, `PackageFilter`, `PathFilter` and `PackageJSON` types ([#​12707](https://github.com/facebook/jest/pull/12707), ([#​12712](https://github.com/facebook/jest/pull/12712))
- `[jest-runner]` Allow `setupFiles` module to export an async function ([#​12042](https://github.com/facebook/jest/pull/12042))
- `[jest-runner]` Allow passing `testEnvironmentOptions` via docblocks ([#​12470](https://github.com/facebook/jest/pull/12470))
- `[jest-runner]` Expose `CallbackTestRunner`, `EmittingTestRunner` abstract classes and `CallbackTestRunnerInterface`, `EmittingTestRunnerInterface` to help typing third party runners ([#​12646](https://github.com/facebook/jest/pull/12646), [#​12715](https://github.com/facebook/jest/pull/12715))
- `[jest-runner]` Lock version of `source-map-support` to 0.5.13 ([#​12720](https://github.com/facebook/jest/pull/12720))
- `[jest-runtime]` \[**BREAKING**] `Runtime.createHasteMap` now returns a promise ([#​12008](https://github.com/facebook/jest/pull/12008))
- `[jest-runtime]` Calling `jest.resetModules` function will clear FS and transform cache ([#​12531](https://github.com/facebook/jest/pull/12531))
- `[jest-runtime]` \[**BREAKING**] Remove `Context` type export, it must be imported from `@jest/test-result` ([#​12685](https://github.com/facebook/jest/pull/12685))
- `[jest-runtime]` Add `import.meta.jest` ([#​12698](https://github.com/facebook/jest/pull/12698))
- `[@jest/schemas]` New module for JSON schemas for Jest's config ([#​12384](https://github.com/facebook/jest/pull/12384))
- `[@jest/source-map]` Migrate from `source-map` to `@jridgewell/trace-mapping` ([#​12692](https://github.com/facebook/jest/pull/12692))
- `[jest-transform]` \[**BREAKING**] Make it required for `process()` and `processAsync()` methods to always return structured data ([#​12638](https://github.com/facebook/jest/pull/12638))
- `[jest-test-result]` Add duration property to JSON test output ([#​12518](https://github.com/facebook/jest/pull/12518))
- `[jest-watcher]` \[**BREAKING**] Make `PatternPrompt` class to take `entityName` as third constructor parameter instead of `this._entityName` ([#​12591](https://github.com/facebook/jest/pull/12591))
- `[jest-worker]` \[**BREAKING**] Allow only absolute `workerPath` ([#​12343](https://github.com/facebook/jest/pull/12343))
- `[jest-worker]` \[**BREAKING**] Default to advanced serialization when using child process workers ([#​10983](https://github.com/facebook/jest/pull/10983))
- `[pretty-format]` New `maxWidth` parameter ([#​12402](https://github.com/facebook/jest/pull/12402))
##### Fixes
- `[*]` Use `sha256` instead of `md5` as hashing algortihm for compatibility with FIPS systems ([#​12722](https://github.com/facebook/jest/pull/12722))
- `[babel-jest]` \[**BREAKING**] Pass `rootDir` as `root` in Babel's options ([#​12689](https://github.com/facebook/jest/pull/12689))
- `[expect]` Move typings of `.not`, `.rejects` and `.resolves` modifiers outside of `Matchers` interface ([#​12346](https://github.com/facebook/jest/pull/12346))
- `[expect]` Throw useful error if `expect.extend` is called with invalid matchers ([#​12488](https://github.com/facebook/jest/pull/12488))
- `[expect]` Fix `iterableEquality` ignores other properties ([#​8359](https://github.com/facebook/jest/pull/8359))
- `[expect]` Fix print for the `closeTo` matcher ([#​12626](https://github.com/facebook/jest/pull/12626))
- `[jest-changed-files]` Improve `changedFilesWithAncestor` pattern for Mercurial SCM ([#​12322](https://github.com/facebook/jest/pull/12322))
- `[jest-circus, @​jest/types]` Disallow undefined value in `TestContext` type ([#​12507](https://github.com/facebook/jest/pull/12507))
- `[jest-config]` Correctly detect CI environment and update snapshots accordingly ([#​12378](https://github.com/facebook/jest/pull/12378))
- `[jest-config]` Pass `moduleTypes` to `ts-node` to enforce CJS when transpiling ([#​12397](https://github.com/facebook/jest/pull/12397))
- `[jest-config]` \[**BREAKING**] Add `mjs` and `cjs` to default `moduleFileExtensions` config ([#​12578](https://github.com/facebook/jest/pull/12578))
- `[jest-config, jest-haste-map]` Allow searching for tests in `node_modules` by exposing `retainAllFiles` ([#​11084](https://github.com/facebook/jest/pull/11084))
- `[jest-core]` \[**BREAKING**] Exit with status `1` if no tests are found with `--findRelatedTests` flag ([#​12487](https://github.com/facebook/jest/pull/12487))
- `[jest-core]` Do not report unref-ed subprocesses as open handles ([#​12705](https://github.com/facebook/jest/pull/12705))
- `[jest-each]` `%#` is not replaced with index of the test case ([#​12517](https://github.com/facebook/jest/pull/12517))
- `[jest-each]` Fixes error message with incorrect count of missing arguments ([#​12464](https://github.com/facebook/jest/pull/12464))
- `[jest-environment-jsdom]` Make `jsdom` accessible to extending environments again ([#​12232](https://github.com/facebook/jest/pull/12232))
- `[jest-environment-jsdom]` Log JSDOM errors more cleanly ([#​12386](https://github.com/facebook/jest/pull/12386))
- `[jest-environment-node]` Add `MessageChannel`, `MessageEvent` to globals ([#​12553](https://github.com/facebook/jest/pull/12553))
- `[jest-environment-node]` Add `structuredClone` to globals ([#​12631](https://github.com/facebook/jest/pull/12631))
- `[@jest/expect-utils]` \[**BREAKING**] Fix false positives when looking for `undefined` prop ([#​8923](https://github.com/facebook/jest/pull/8923))
- `[jest-haste-map]` Don't use partial results if file crawl errors ([#​12420](https://github.com/facebook/jest/pull/12420))
- `[jest-haste-map]` Make watchman existence check lazy+async ([#​12675](https://github.com/facebook/jest/pull/12675))
- `[jest-jasmine2, jest-types]` \[**BREAKING**] Move all `jasmine` specific types from `@jest/types` to its own package ([#​12125](https://github.com/facebook/jest/pull/12125))
- `[jest-jasmine2]` Do not set `duration` to `0` for skipped tests ([#​12518](https://github.com/facebook/jest/pull/12518))
- `[jest-matcher-utils]` Pass maxWidth to `pretty-format` to avoid printing every element in arrays by default ([#​12402](https://github.com/facebook/jest/pull/12402))
- `[jest-mock]` Fix function overloads for `spyOn` to allow more correct type inference in complex object ([#​12442](https://github.com/facebook/jest/pull/12442))
- `[jest-mock]` Handle overridden `Function.name` property ([#​12674](https://github.com/facebook/jest/pull/12674))
- `[@jest/reporters]` Notifications generated by the `--notify` flag are no longer persistent in GNOME Shell. ([#​11733](https://github.com/facebook/jest/pull/11733))
- `[@jest/reporters]` Move missing icon file which is needed for `NotifyReporter` class. ([#​12593](https://github.com/facebook/jest/pull/12593))
- `[@jest/reporters]` Update `v8-to-istanbul` ([#​12697](https://github.com/facebook/jest/pull/12697))
- `[jest-resolver]` Call custom resolver with core node.js modules ([#​12654](https://github.com/facebook/jest/pull/12654))
- `[jest-runner]` Correctly resolve `source-map-support` ([#​12706](https://github.com/facebook/jest/pull/12706))
- `[jest-worker]` Fix `Farm` execution results memory leak ([#​12497](https://github.com/facebook/jest/pull/12497))
#### Chore & Maintenance
- `[*]` \[**BREAKING**] Drop support for Node v10 and v15 and target first LTS `16.13.0` ([#​12220](https://github.com/facebook/jest/pull/12220))
- `[*]` \[**BREAKING**] Drop support for `typescript@3.8`, minimum version is now `4.3` ([#​11142](https://github.com/facebook/jest/pull/11142), [#​12648](https://github.com/facebook/jest/pull/12648))
- `[*]` Bundle all `.d.ts` files into a single `index.d.ts` per module ([#​12345](https://github.com/facebook/jest/pull/12345))
- `[*]` Use `globalThis` instead of `global` ([#​12447](https://github.com/facebook/jest/pull/12447))
- `[babel-jest]` \[**BREAKING**] Only export `createTransformer` ([#​12407](https://github.com/facebook/jest/pull/12407))
- `[docs]` Add note about not mixing `done()` with Promises ([#​11077](https://github.com/facebook/jest/pull/11077))
- `[docs, examples]` Update React examples to match with the new React guidelines for code examples ([#​12217](https://github.com/facebook/jest/pull/12217))
- `[docs]` Add clarity for module factory hoisting limitations ([#​12453](https://github.com/facebook/jest/pull/12453))
- `[docs]` Add more information about how code transformers work ([#​12407](https://github.com/facebook/jest/pull/12407))
- `[docs]` Add upgrading guide ([#​12633](https://github.com/facebook/jest/pull/12633))
- `[expect]` \[**BREAKING**] Remove support for importing `build/utils` ([#​12323](https://github.com/facebook/jest/pull/12323))
- `[expect]` \[**BREAKING**] Migrate to ESM ([#​12344](https://github.com/facebook/jest/pull/12344))
- `[expect]` \[**BREAKING**] Snapshot matcher types are moved to `@jest/expect` ([#​12404](https://github.com/facebook/jest/pull/12404))
- `[jest-cli]` Update `yargs` to v17 ([#​12357](https://github.com/facebook/jest/pull/12357))
- `[jest-config]` \[**BREAKING**] Remove `getTestEnvironment` export ([#​12353](https://github.com/facebook/jest/pull/12353))
- `[jest-config]` \[**BREAKING**] Rename config option `name` to `id` ([#​11981](https://github.com/facebook/jest/pull/11981))
- `[jest-create-cache-key-function]` Added README.md file with basic usage instructions ([#​12492](https://github.com/facebook/jest/pull/12492))
- `[@jest/core]` Use `index.ts` instead of `jest.ts` as main export ([#​12329](https://github.com/facebook/jest/pull/12329))
- `[jest-environment-jsdom]` \[**BREAKING**] Migrate to ESM ([#​12340](https://github.com/facebook/jest/pull/12340))
- `[jest-environment-node]` \[**BREAKING**] Migrate to ESM ([#​12340](https://github.com/facebook/jest/pull/12340))
- `[jest-haste-map]` Remove legacy `isRegExpSupported` ([#​12676](https://github.com/facebook/jest/pull/12676))
- `[@jest/fake-timers]` Update `@sinonjs/fake_timers` to v9 ([#​12357](https://github.com/facebook/jest/pull/12357))
- `[jest-jasmine2, jest-runtime]` \[**BREAKING**] Use `Symbol` to pass `jest.setTimeout` value instead of `jasmine` specific logic ([#​12124](https://github.com/facebook/jest/pull/12124))
- `[jest-phabricator]` \[**BREAKING**] Migrate to ESM ([#​12341](https://github.com/facebook/jest/pull/12341))
- `[jest-resolve]` \[**BREAKING**] Make `requireResolveFunction` argument mandatory ([#​12353](https://github.com/facebook/jest/pull/12353))
- `[jest-runner]` \[**BREAKING**] Remove some type exports from `@jest/test-result` ([#​12353](https://github.com/facebook/jest/pull/12353))
- `[jest-runner]` \[**BREAKING**] Second argument to constructor (`Context`) is not optional ([#​12640](https://github.com/facebook/jest/pull/12640))
- `[jest-serializer]` \[**BREAKING**] Deprecate package in favour of using `v8` APIs directly ([#​12391](https://github.com/facebook/jest/pull/12391))
- `[jest-snapshot]` \[**BREAKING**] Migrate to ESM ([#​12342](https://github.com/facebook/jest/pull/12342))
- `[jest-transform]` Update `write-file-atomic` to v4 ([#​12357](https://github.com/facebook/jest/pull/12357))
- `[jest-types]` \[**BREAKING**] Remove `Config.Glob` and `Config.Path` ([#​12406](https://github.com/facebook/jest/pull/12406))
- `[jest]` Use `index.ts` instead of `jest.ts` as main export ([#​12329](https://github.com/facebook/jest/pull/12329))
#### Performance
- `[jest-haste-map]` \[**BREAKING**] Default to `node` crawler over shelling out to `find` if `watchman` is not enabled ([#​12320](https://github.com/facebook/jest/pull/12320))
#### New Contributors
- [@​marcelltoth](https://github.com/marcelltoth) made their first contribution in https://github.com/facebook/jest/pull/12290
- [@​soryy708](https://github.com/soryy708) made their first contribution in https://github.com/facebook/jest/pull/12010
- [@​dmitryvinn-fb](https://github.com/dmitryvinn-fb) made their first contribution in https://github.com/facebook/jest/pull/12379
- [@​cola119](https://github.com/cola119) made their first contribution in https://github.com/facebook/jest/pull/12375
- [@​holylander](https://github.com/holylander) made their first contribution in https://github.com/facebook/jest/pull/12257
- [@​jsjoeio](https://github.com/jsjoeio) made their first contribution in https://github.com/facebook/jest/pull/11077
- [@​tbossi](https://github.com/tbossi) made their first contribution in https://github.com/facebook/jest/pull/12392
- [@​ryanwilsonperkin](https://github.com/ryanwilsonperkin) made their first contribution in https://github.com/facebook/jest/pull/12402
- [@​yesmeck](https://github.com/yesmeck) made their first contribution in https://github.com/facebook/jest/pull/12408
- [@​benblank](https://github.com/benblank) made their first contribution in https://github.com/facebook/jest/pull/12441
- [@​john-u](https://github.com/john-u) made their first contribution in https://github.com/facebook/jest/pull/12453
- [@​cjr125](https://github.com/cjr125) made their first contribution in https://github.com/facebook/jest/pull/11084
- [@​davidjgoss](https://github.com/davidjgoss) made their first contribution in https://github.com/facebook/jest/pull/11566
- [@​SixTfour](https://github.com/SixTfour) made their first contribution in https://github.com/facebook/jest/pull/8923
- [@​aditya04848](https://github.com/aditya04848) made their first contribution in https://github.com/facebook/jest/pull/12385
- [@​rick-shar-ww](https://github.com/rick-shar-ww) made their first contribution in https://github.com/facebook/jest/pull/8333
- [@​shooit](https://github.com/shooit) made their first contribution in https://github.com/facebook/jest/pull/11080
- [@​d7my11](https://github.com/d7my11) made their first contribution in https://github.com/facebook/jest/pull/8359
- [@​BudgieInWA](https://github.com/BudgieInWA) made their first contribution in https://github.com/facebook/jest/pull/11733
- [@​IIIEII](https://github.com/IIIEII) made their first contribution in https://github.com/facebook/jest/pull/12497
- [@​mhnaeem](https://github.com/mhnaeem) made their first contribution in https://github.com/facebook/jest/pull/12492
- [@​adrianbienias](https://github.com/adrianbienias) made their first contribution in https://github.com/facebook/jest/pull/12501
- [@​TrickyPi](https://github.com/TrickyPi) made their first contribution in https://github.com/facebook/jest/pull/12510
- [@​F3n67u](https://github.com/F3n67u) made their first contribution in https://github.com/facebook/jest/pull/12517
- [@​dmitryvinn](https://github.com/dmitryvinn) made their first contribution in https://github.com/facebook/jest/pull/12532
- [@​brandon-leapyear](https://github.com/brandon-leapyear) made their first contribution in https://github.com/facebook/jest/pull/12526
- [@​marionebl](https://github.com/marionebl) made their first contribution in https://github.com/facebook/jest/pull/12546
- [@​matthias-ccri](https://github.com/matthias-ccri) made their first contribution in https://github.com/facebook/jest/pull/12601
- [@​Kaiguang](https://github.com/Kaiguang) made their first contribution in https://github.com/facebook/jest/pull/12616
- [@​ockham](https://github.com/ockham) made their first contribution in https://github.com/facebook/jest/pull/11320
- [@​msonnberger](https://github.com/msonnberger) made their first contribution in https://github.com/facebook/jest/pull/12608
- [@​nate-io](https://github.com/nate-io) made their first contribution in https://github.com/facebook/jest/pull/12607
- [@​fatso83](https://github.com/fatso83) made their first contribution in https://github.com/facebook/jest/pull/12407
- [@​Araxeus](https://github.com/Araxeus) made their first contribution in https://github.com/facebook/jest/pull/12631
- [@​Udit-takkar](https://github.com/Udit-takkar) made their first contribution in https://github.com/facebook/jest/pull/11981
- [@​ChocolateLoverRaj](https://github.com/ChocolateLoverRaj) made their first contribution in https://github.com/facebook/jest/pull/12654
- [@​adi611](https://github.com/adi611) made their first contribution in https://github.com/facebook/jest/pull/12555
- [@​fisker](https://github.com/fisker) made their first contribution in https://github.com/facebook/jest/pull/12653
- [@​flakolefluk](https://github.com/flakolefluk) made their first contribution in https://github.com/facebook/jest/pull/12464
- [@​L4vlet](https://github.com/L4vlet) made their first contribution in https://github.com/facebook/jest/pull/12626
- [@​Gerrit0](https://github.com/Gerrit0) made their first contribution in https://github.com/facebook/jest/pull/12612
- [@​robhogan](https://github.com/robhogan) made their first contribution in https://github.com/facebook/jest/pull/12676
- [@​wrslatz](https://github.com/wrslatz) made their first contribution in https://github.com/facebook/jest/pull/12693
- [@​katlim-br](https://github.com/katlim-br) made their first contribution in https://github.com/facebook/jest/pull/12702
- [@​zackasaurus](https://github.com/zackasaurus) made their first contribution in https://github.com/facebook/jest/pull/12201
- [@​darmbrust](https://github.com/darmbrust) made their first contribution in https://github.com/facebook/jest/pull/12722
- [@​Ash-KODES](https://github.com/Ash-KODES) made their first contribution in https://github.com/facebook/jest/pull/12565
**Full Changelog**: https://github.com/facebook/jest/compare/v27.5.1...v28.0.0
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4zOC4yIiwidXBkYXRlZEluVmVyIjoiNDEuMzguMiIsInRhcmdldEJyYW5jaCI6Im1hc3RlciIsImxhYmVscyI6W119-->
Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.
♻ Renovate will retry this branch, including artifacts, only when one of the following happens:
any of the package files in this branch needs updating, or
the branch becomes conflicted, or
you click the rebase/retry checkbox if found above, or
you rename this PR's title to start with "rebase!" to trigger it manually
The artifact failure details are included below:
File name: package-lock.json
npm ERR! Invalid Version: >=4.5.1
npm ERR! A complete log of this run can be found in:
npm ERR! /tmp/renovate/cache/others/npm/_logs/2025-07-19T12_03_37_446Z-debug-0.log
### ⚠️ Artifact update problem
Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.
♻ Renovate will retry this branch, including artifacts, only when one of the following happens:
- any of the package files in this branch needs updating, or
- the branch becomes conflicted, or
- you click the rebase/retry checkbox if found above, or
- you rename this PR's title to start with "rebase!" to trigger it manually
The artifact failure details are included below:
##### File name: package-lock.json
```
npm ERR! Invalid Version: >=4.5.1
npm ERR! A complete log of this run can be found in:
npm ERR! /tmp/renovate/cache/others/npm/_logs/2025-07-19T12_03_37_446Z-debug-0.log
```
Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.
You can manually request rebase by checking the rebase/retry box above.
⚠️Warning: custom changes will be lost.
### Edited/Blocked Notification
Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.
You can manually request rebase by checking the rebase/retry box above.
⚠️ **Warning**: custom changes will be lost.
This repo is archived. You cannot comment on pull requests.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
This PR contains the following updates:
^27.5.1->^30.0.0Release Notes
jestjs/jest (babel-jest)
v30.0.4Compare Source
Features
[expect]TheInversetype is now exported (#15714)[expect]feat: supportasync functionsintoBe(#15704)Fixes
[jest]jest --onlyFailures --listTests now correctly lists only failed tests (#15700)[jest-snapshot]Handle line endings in snapshots (#15708)v30.0.2Compare Source
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)v30.0.1Compare Source
Features
[jest-resolver]Implement thedefaultAsyncResolver(#15679)Fixes
[jest-resolver]Resolve builtin modules correctly (#15683)[jest-environment-node, jest-util]Avoid setting globals cleanup protection symbol when feature is off (#15684)Chore & Maintenance
[*]Remove and deprecatejest-replpackage (#15673)[jest-resolver]Replace customisBuiltinModulewith node'sisBuiltin(#15685)v30.0.0Compare Source
Features
[*]RenamedglobalsCleanupModetoglobalsCleanupand--waitNextEventLoopTurnForUnhandledRejectionEventsto--waitForUnhandledRejections[expect]AddArrayOfasymmetric matcher for validating array elements. (#15567)[babel-jest]Add optionexcludeJestPresetto allow opting out ofbabel-preset-jest(#15164)[expect]Revert #15038 to fixexpect(fn).toHaveBeenCalledWith(expect.objectContaining(...))when there are multiple calls (#15508)[jest-circus, jest-cli, jest-config]AddwaitNextEventLoopTurnForUnhandledRejectionEventsflag to minimise performance impact of correct detection of unhandled promise rejections introduced in #14315 (#14681)[jest-circus]Add awaitBeforeRetryoption tojest.retryTimes(#14738)[jest-circus]Add aretryImmediatelyoption tojest.retryTimes(#14696)[jest-circus, jest-jasmine2]AllowsetupFilesAfterEnvto export an async function (#10962)[jest-circus, jest-test-result]AddstartedAttimestamp inTestCaseResultObjectwithinonTestCaseResult(#15145)[jest-cli]ExportbuildArgv(#15310)[jest-config][BREAKING] Addmtsandctsto defaultmoduleFileExtensionsconfig (#14369)[jest-config][BREAKING] UpdatetestMatchandtestRegexdefault option for supportingmjs,cjs,mts, andcts(#14584)[jest-config]Loads config file from provided path inpackage.json(#14044)[jest-config]Allow loadingjest.config.ctsfiles (#14070)[jest-config]ShowrootDirin error message when apresetfails to load (#15194)[jest-config]Support loading TS config files usingesbuild-registervia docblock loader (#15190)[jest-config]Allow passing TS config loader options via docblock comment (#15234)[jest-config]If Node is running with type stripping enabled, do not require a TS loader (#15480)[@jest/core]Group together open handles with the same stack trace (#13417, & #14789)[@jest/core]AddperfStatsto surface test setup overhead (#14622)[@jest/core][BREAKING] Changed--filterto accept an object with shape{ filtered: Array<string> }to match documentation (#13319)[@jest/core]Support--outputFileoption for--listTests(#14980)[@jest/core]Stringify Errors properly with--jsonflag (#15329)[@jest/core, @​jest/test-sequencer][BREAKING] ExposesglobalConfig&contextstoTestSequencer(#14535, & #14543)[jest-each]Introduce%$option to add number of the test to its title (#14710)[@jest/environment][BREAKING] Remove deprecatedjest.genMockFromModule()(#15042)[@jest/environment][BREAKING] Remove unnecessary defensive code (#15045)[jest-environment-jsdom][BREAKING] Upgrade JSDOM to v22 (#13825)[@jest/environment-jsdom-abstract]Introduce new package which abstracts over thejsdomenvironment, allowing usage of custom versions of JSDOM (#14717)[jest-environment-node]Update jest environment with dispose symbolsSymbol(#14888 & #14909)[expect, @​jest/expect][BREAKING] Add type inference for function parameters inCalledWithassertions (#15129)[@jest/expect-utils]Properly compare all types ofTypedArrays (#15178)[@jest/fake-timers][BREAKING] Upgrade@sinonjs/fake-timersto v13 (#14544 & #15470)[@jest/fake-timers]Exposing new modern timers functionadvanceTimersToFrame()which advances all timers by the needed milliseconds to execute callbacks currently scheduled withrequestAnimationFrame(#14598)[jest-matcher-utils]AddSERIALIZABLE_PROPERTIESto allow custom serialization of objects (#14893)[jest-mock]Add support for the Explicit Resource Management proposal to use theusingkeyword withjest.spyOn(object, methodName)(#14895)[jest-reporters]Add support for DEC mode 2026 (#15008)[jest-resolver]Supportfile://URLs as paths (#15154)[jest-resolve,jest-runtime,jest-resolve-dependencies]Pass the conditions when resolving stub modules (#15489)[jest-runtime]Exposing new modern timers functionjest.advanceTimersToFrame()from@jest/fake-timers(#14598)[jest-runtime]Supportimport.meta.filenameandimport.meta.dirname(available from Node 20.11) (#14854)[jest-runtime]Supportimport.meta.resolve(#14930)[jest-runtime][BREAKING] Make it mandatory to passglobalConfigto theRuntimeconstructor (#15044)[jest-runtime]Addunstable_unmockModule(#15080)[jest-runtime]AddonGenerateMocktransformer callback for auto generated callbacks (#15433 & #15482)[jest-runtime][BREAKING] Usevm.compileFunctionovervm.Script(#15461)[@jest/schemas]Upgrade@sinclair/typeboxto v0.34 (#15450)[@jest/types]test.each(): Accept a readonly (as const) table properly (#14565)[@jest/types]Improve argument type inference passed totestanddescribecallback functions fromeachtables (#14920)[jest-snapshot][BREAKING] Add support for Error causes in snapshots (#13965)[jest-snapshot]Support Prettier 3 (#14566)[@jest/util-snapshot]Extract utils used by tooling fromjest-snapshotinto its own package (#15095)[pretty-format][BREAKING] Do not render empty string children ('') in React plugin (#14470)Fixes
[expect]ShowAggregateErrorto display (#15346)[*]Replaceexitwithexit-x(#15399)[babel-plugin-jest-hoist]Usedenylistinstead of the deprecatedblacklistfor Babel 8 support (#14109)[babel-plugin-jest-hoist]Do not rely on buggy Babel behaviour (#15415)[expect]Check error instance type fortoThrow/toThrowError(#14576)[expect]Improve diff for failingexpect.objectContaining(#15038)[expect]UseArray.isArrayto check if an array is anArray(#15101)[expect]Fix Errorcauseassertion errors (#15339)[jest-changed-files]Print underlying errors when VCS commands fail (#15052)[jest-changed-files]Abortsl rootcall if output resembles a steam locomotive (#15053)[jest-circus][BREAKING] Prevent false test failures caused by promise rejections handled asynchronously (#14315)[jest-circus]Replace recursivemakeTestResultsimplementation with iterative one (#14760)[jest-circus]Omitexpect.hasAssertions()errors if a test already has errors (#14866)[jest-circus, jest-expect, jest-snapshot]Passtest.failingtests when containing failing snapshot matchers (#14313)[jest-circus]Concurrent tests now emit jest circus events at the correct point and in the expected order. (#15381)[jest-cli][BREAKING] Validate CLI flags that require arguments receives them (#14783)[jest-config]Make sure to respectrunInBandoption (#14578)[jest-config]SupporttestTimeoutin project config (#14697)[jest-config]SupportcoverageReportersin project config (#14697)[jest-config]Allowreportersin project config (#14768)[jest-config]Allow Node16/NodeNext/BundlermoduleResolutionin project's tsconfig (#14739)[@jest/create-cache-key-function]Correct the return type ofcreateCacheKey(#15159)[jest-each]Allow$keypathtemplates withnullorundefinedvalues (#14831)[@jest/expect-utils]Fix comparison ofDataView(#14408)[@jest/expect-utils][BREAKING] exclude non-enumerable in object matching (#14670)[@jest/expect-utils]Fix comparison ofURL(#14672)[@jest/expect-utils]CheckSymbolproperties in equality (#14688)[@jest/expect-utils]Catch circular references within arrays when matching objects (#14894)[@jest/expect-utils]Fix not addressing to Sets and Maps as objects without keys (#14873)[jest-haste-map]Fix errors or clobbering with multiplehasteImplModulePaths (#15522)[jest-leak-detector]Make leak-detector more aggressive when running GC (#14526)[jest-runtime]Properly handle re-exported native modules in ESM via CJS (#14589)[jest-runtime]Refactor_importCoreModelso required core module is consistent if modified while loading (#15077)[jest-schemas, jest-types][BREAKING] Fix type oftestFailureExitCodeconfig option(#15232)[jest-util]Make sureisInteractiveworks in a browser (#14552)[pretty-format][BREAKING] PrintArrayBufferandDataViewcorrectly (#14290)[pretty-format]Fixed a bug where "anonymous custom elements" were not being printed as expected. (#15138)[jest-cli]When specifying paths on the command line, only match against the relative paths of the test files (#12519)testPathPatternconfiguration option totestPathPatterns, which now takes a list of patterns instead of the regex.--testPathPatternis now--testPathPatternstestPathPatternswhen programmatically callingwatchmust be specified asnew TestPathPatterns(patterns), whereTestPathPatternscan be imported from@jest/pattern[jest-reporters, jest-runner]Unhandled errors without stack get correctly logged to console (#14619)[jest-util]Always loadmjsfiles withimport(#15447)[jest-worker]Properly handle a circular reference error when worker tries to send an assertion fails where either the expected or actual value is circular (#15191)[jest-worker]Properly handle a BigInt when worker tries to send an assertion fails where either the expected or actual value is BigInt (#15191)[expect]Resolve issue whereObjectContainingmatched non-object values. #15463.conditional/checkto ensure the argument passed toexpectis an object.ObjectContainingbehavior.invalid/wrongtest case assertions forObjectContaining.[jest-worker]Addresses incorrect state on exit (#15610)Performance
[*][BREAKING] Bundle all of Jest's modules intoindex.js(#12348, #14550 & #14661)[jest-haste-map]Only spawn one process to check forwatchmaninstallation (#14826)[jest-runner]Better cleanupsource-map-supportafter test to resolve (minor) memory leak (#15233)[jest-resolver]Migrateresolveandresolve.exportstounrs-resolver(#15619)[jest-circus, jest-environment-node, jest-repl, jest-runner, jest-util]Cleanup global variables on environment teardown to reduce memory leaks (#15215 & #15636 & #15643)Chore & Maintenance
[jest-environment-jsdom, jest-environment-jsdom-abstract]Increased version of jsdom to^26.0.0(#15325CVE-2024-37890)[*]Increase version ofmicromatchto^4.0.7(#15082)[*][BREAKING] Drop support for Node.js versions 14, 16, 19, 21 and 23 (#14460, #15118, #15623, #15640)[*][BREAKING] Drop support fortypescript@4.3, minimum version is now5.4(#14542, #15621)[*]Depend on exact versions of monorepo dependencies instead of^range (#14553)[*][BREAKING] Add ESM wrapper for all of Jest's modules (#14661)[*][BREAKING] Upgrade toglob@10(#14509)[*]UseTypeErroroverErrorwhere appropriate (#14799)[docs]Fix typos inCHANGELOG.mdandpackages/jest-validate/README.md(#14640)[docs]Don't use alias matchers in docs (#14631)[babel-jest, babel-preset-jest][BREAKING] Increase peer dependency of@babel/coreto^7.11(#14109)[babel-jest, @​jest/transform]Updatebabel-plugin-istanbulto v6 (#15156)[babel-plugin-jest-hoist]Move unnecessarydependenciestodevDependencies(#15010)[expect][BREAKING] Remove.toBeCalled(),.toBeCalledTimes(),.toBeCalledWith(),.lastCalledWith(),.nthCalledWith(),.toReturn(),.toReturnTimes(),.toReturnWith(),.lastReturnedWith(),.nthReturnedWith()and.toThrowError()matcher aliases (#14632)[jest-cli, jest-config, @​jest/types][BREAKING] Remove deprecated--initargument (#14490)[jest-config, @​jest/core, jest-util]Upgradeci-info(#14655)[jest-mock][BREAKING] RemoveMockFunctionMetadataType,MockFunctionMetadataandSpyInstancetypes (#14621)[@jest/reporters]Upgradeistanbul-lib-source-maps(#14924)[jest-schemas]Upgrade@sinclair/typebox(#14775)[jest-transform]Upgradewrite-file-atomic(#14274)[jest-util]Upgradepicomatchto v4 (#14653 & #14885)[docs] Append to NODE_OPTIONS, not overwrite ([#​14730](https://github.com/jestjs/jest/pull/14730))[docs]Updated.toHaveBeenCalled()documentation to correctly reflect its functionality (#14842)[docs]Link NestJS documentation on testing with Jest (#14940)[docs]Revised documentation for .toHaveBeenCalled()to accurately depict its functionality. (#14853)[docs]Removed ExpressJS reference link from documentation due to dead link (#15270)[docs]Correct broken links in docs (#15359)v29.7.0Compare Source
Features
[create-jest]Addnpm init/yarn createinitialiser for Jest projects (#14465)[jest-validate]Allow deprecation warnings for unknown options (#14499)Fixes
[jest-resolver]Replace unmatched capture groups inmoduleNameMapperwith empty string instead ofundefined(#14507)[jest-snapshot]Allow for strings as well as template literals in inline snapshots (#14465)[@jest/test-sequencer]Calculate test runtime ifperStats.durationis missing (#14473)Performance
[@jest/create-cache-key-function]Cache access ofNODE_ENVandBABEL_ENV(#14455)Chore & Maintenance
[jest-cli]Move internal config initialisation logic to thecreate-jestpackage (#14465)New Contributors
Full Changelog: https://github.com/jestjs/jest/compare/v29.6.4...v29.7.0
v29.6.4Compare Source
Fixes
[jest-core]Fix typo inscheduleAndRunperformance marker (#14434)[jest-environment-node]Make sureatobandbtoaare writeable in Node 20 (#14446)[jest-worker]Additional error wrapper forparentPort.postMessageto fix unhandledDataCloneError. (#14437)New Contributors
Full Changelog: https://github.com/jestjs/jest/compare/v29.6.3...v29.6.4
v29.6.3Compare Source
Fixes
[expect, @​jest/expect-utils]ObjectContainingsupportsymbolas key (#14414)[expect]Remove@types/nodefrom dependencies (#14385)[jest-core]Use workers in watch mode by default to avoid crashes (#14059 & #14085).[jest-reporters]Updateistanbul-lib-instrumentdependency to v6. (#14401)[jest-mock]Revert #13692 as it was a breaking change (#14429)[jest-mock]Revert #13866 as it was a breaking change (#14429)[jest-mock]Revert #13867 as it was a breaking change (#14429)[@jest/reporters]Marks Reporter's hooks as optional (#14433)[jest-runtime]Fix dynamic ESM import module bug when loaded module throughjest.isolateModulesAsync(#14397)Chore & Maintenance
[jest-changed-files, jest-circus, jest-console, @​jest/core, @​jest/runtime, @​jest/transform]UseinvariantandnotEmptyfromjest-utilrather than own internal (#14366)New Contributors
Full Changelog: https://github.com/jestjs/jest/compare/v29.6.2...v29.6.3
v29.6.2Compare Source
Fixes
[jest-circus]Fix snapshot matchers in concurrent tests when nr of tests exceedsmaxConcurrency(#14335)[@jest/core]When running global setup and teardown, do not try to change themessageproperty of the thrown error object when themessageproperty is unwritable (#14113)[jest-snapshot]Move@types/prettierfromdependenciestodevDependencies(#14328)[jest-snapshot]Throw an explicit error if Prettier v3 is used (#14367)[jest-reporters]Add "skipped" and "todo" symbols to Github Actions Reporter (#14309)Chore & Maintenance
[@jest/core]Usepluralizefromjest-utilrather than own internal (#14322)New Contributors
Full Changelog: https://github.com/jestjs/jest/compare/v29.6.1...v29.6.2
v29.6.1Compare Source
Fixes
[jest-circus]Revert #14110 as it was a breaking change (#14304)Full Changelog: https://github.com/jestjs/jest/compare/v29.6.0...v29.6.1
v29.6.0Compare Source
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-core, jest-circus, jest-reporter, jest-runner]Added support for reporting about start individual test cases using jest-circus (#14174)Fixes
[jest-circus]Prevent false test failures caused by promise rejections handled asynchronously (#14110)[jest-config]Handle frozen config object (#14054)[jest-config]AllowcoverageDirectoryandcollectCoverageFromin project config (#14180)[jest-core]Always use workers in watch mode to avoid crashes (#14059).[jest-environment-jsdom, jest-environment-node]Fix assignment ofcustomExportConditionsviatestEnvironmentOptionswhen custom env subclass defines a default value (#13989)[jest-matcher-utils]Fix copying value of inherited getters (#14007)[jest-mock]Tweak typings to allowjest.replaceProperty()replace methods (#14008)[jest-mock]Improve user input validation and error messages ofspyOnandreplacePropertymethods (#14087)[jest-runtime]Bindjest.isolateModulesAsynctothis(#14083)[jest-runtime]ForwardwrapperLengthto theScriptconstructor ascolumnOffsetfor accurate debugging (#14148)[jest-runtime]Guard_isMockFunctionaccess within(#14188)[jest-snapshot]Fix a potential bug when not using prettier and improve performance (#14036)[@jest/transform]Do not instrument.jsonmodules (#14048)[jest-worker]Restart a shut down worker before sending it a task (#14015)Chore & Maintenance
[*]Updatesemverdependency to get vulnerability fix (#14262)[docs]Updated documentation for the--runTestsByPathCLI command (#14004)[docs]Updated documentation regarding the synchronous fallback when asynchronous code transforms are unavailable (#14056)[docs]Update jest statistics of use and downloads in website Index.New Contributors
Full Changelog: https://github.com/jestjs/jest/compare/v29.5.0...v29.6.0
v29.5.0Compare Source
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/reporters, jest-runner, jest-runtime, @​jest/types]AddworkerThreadsconfiguration option to allow using worker threads for parallelization (#13939)[jest-cli]ExportyargsOptions(#13970)[jest-config]AddopenHandlesTimeoutoption to configure possible open handles warning. (#13875)[@jest/create-cache-key-function]Allow passinglengthargument tocreateCacheKey()function and set its default value to16on Windows (#13827)[jest-message-util]Add support for AggregateError (#13946 & #13947)[jest-message-util]Add support for Error causes intestandit(#13935 & #13966)[jest-reporters]AddsummaryThresholdoption to summary reporter to allow overriding the internal threshold that is used to print the summary of all failed tests when the number of test suites surpasses it (#13895)[jest-runtime]Expose@sinonjs/fake-timersasync APIs functionsadvanceTimersByTimeAsync(msToRun)(tickAsync(msToRun)),advanceTimersToNextTimerAsync(steps)(nextAsync),runAllTimersAsync(runAllAsync), andrunOnlyPendingTimersAsync(runToLastAsync) (#13981)[jest-runtime, @​jest/transform]Allow V8 coverage provider to collect coverage from files which were not loaded explicitly (#13974)[jest-snapshot]Add support toctsandmtsTypeScript files to inline snapshots (#13975)[jest-worker]Addstartmethod to worker farms (#13937)[jest-worker]Support passing a URL as path to worker (#13982)Fixes
[babel-plugin-jest-hoist]Fix unwanted hoisting of nestedjestusages (#13952)[jest-circus]Send test case results fortodotests (#13915)[jest-circus]Update message printed on test timeout (#13830)[jest-circus]Avoid creating the word "testfalse" whentakesDoneCallbackisfalsein the message printed on test timeout AND updated timeouts test (#13954)[jest-environment-jsdom]Stop settingdocumenttonullon teardown (#13972)[@jest/expect-utils]UpdatetoStrictEqual()to be able to checkjest.fn().mock.calls(#13960)[@jest/test-result]AllowTestResultsProcessortype to return a Promise (#13950)Chore & Maintenance
[jest-snapshot]Remove dependency onjest-haste-map(#13977)New Contributors
Full Changelog: https://github.com/facebook/jest/compare/v29.4.3...v29.5.0
v29.4.3Compare Source
Features
[expect]UpdatetoThrow()to be able to use errorcauses (#13606)[jest-core]allow to useworkerIdleMemoryLimitwith only 1 worker orrunInBandoption (#13846)[jest-message-util]Add support for errorcauses (#13868 & #13912)[jest-runtime]Revertimport assertionsfor JSON modules as it's been relegated to Stage 2 (#13911)Fixes
[@jest/expect-utils]subsetEqualityshould consider also an object's inherited string keys (#13824)[jest-mock]Clear mock state whenjest.restoreAllMocks()is called (#13867)[jest-mock]PreventmockImplementationOnceandmockReturnValueOncebleeding intowithImplementation(#13888)[jest-mock]Do not restore mocks whenjest.resetAllMocks()is called (#13866)New Contributors
Full Changelog: https://github.com/facebook/jest/compare/v29.4.2...v29.4.3
v29.4.2Compare Source
Features
[@jest/core]Instrument significant lifecycle events withperformance.mark()(#13859)Fixes
[expect, @​jest/expect]Provide type ofactualas a generic argument toMatchersto allow better-typed extensions (#13848)[jest-circus]Added explicit mention of test failing becausedone()is not being called in error message (#13847)[jest-runtime]Handle CJS re-exports of node core modules from ESM (#13856)[jest-transform]Downgradewrite-file-atomicto v4 (#13853)[jest-worker]Ignore IPC messages not intended for Jest (#13543)Chore & Maintenance
[*]make sure to exclude.eslintcachefrom published module (#13832)[docs]Cleanup incorrect links in CHANGELOG.md (#13857)New Contributors
Full Changelog: https://github.com/facebook/jest/compare/v29.4.1...v29.4.2
v29.4.1Compare Source
Features
[expect, jest-circus, @​jest/types]ImplementnumPassingAssertsof 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 GitHub Actions Reporter (#13626)Fixes
[@jest/expect-utils]toMatchObjectdiffs should includeSymbolproperties (#13810)[jest-runtime]Handle missingreplaceProperty(#13823)[@jest/types]Add partial support fordonecallbacks in typings ofeach(#13756)New Contributors
Full Changelog: https://github.com/facebook/jest/compare/v29.4.0...v29.4.1
v29.4.0Compare Source
Features
[expect, @​jest/expect-utils]Support custom equality testers (#13654)[jest-config, jest-worker]Useos.availableParallelismif available to calculate number of workers to spawn (#13738)[@jest/globals, jest-mock]Addjest.replaceProperty()that replaces property value (#13496)[jest-haste-map]ignore Sapling vcs directories (.sl/) (#13674)[jest-resolve]Support subpath imports (#13705, #13723, #13777)[jest-runtime]Addjest.isolateModulesAsyncfor scoped module initialization of asynchronous functions (#13680)[jest-runtime]Addjest.isEnvironmentTornDownfunction (#13741)[jest-test-result]Addedskippedandfocusedstatus toFormattedTestResult(#13700)[jest-transform]Support for asynchronouscreateTransformer(#13762)Fixes
[jest-environment-node]Fix non-configurable globals (#13687)[@jest/expect-utils]toMatchObjectshould handleSymbolproperties (#13639)[jest-mock]FixmockResetandresetAllMocksundefinedreturn value(#13692)[jest-resolve]Add global paths torequire.resolve.paths(#13633)[jest-resolve]Correct node core module detection when usingnode:specifiers (#13806)[jest-runtime]Support WASM files that import JS resources (#13608)[jest-runtime]Use thescriptTransformercache injest-runner(#13735)[jest-runtime]Enforce import assertions when importing JSON in ESM (#12755 & #13805)[jest-snapshot]Make sure to importbabeloutside of the sandbox (#13694)[jest-transform]Ensure the correct configuration is passed to preprocessors specified multiple times in thetransformoption (#13770)Chore & Maintenance
[@jest/fake-timers]Update@sinonjs/fake-timers(#13612)[docs]Improve custom puppeteer example to prevent worker warnings (#13619)New Contributors
Full Changelog: https://github.com/facebook/jest/compare/v29.3.1...v29.4.0
v29.3.1Compare Source
Fixes
[jest-config]Do not warn aboutpresetinProjectConfig(#13583)Performance
[jest-transform]Defer creation of cache directory (#13420)v29.3.0Compare Source
Features
[jest-runtime]Support WebAssembly (Wasm) imports in ESM modules (#13505)Fixes
[jest-config]Add config validation forprojectsoption (#13565)[jest-mock]Treat cjs modules as objects so they can be mocked (#13513)[jest-worker]Throw an error instead of hanging when jest workers terminate unexpectedly (#13566)Chore & Maintenance
[@jest/transform]Updateconvert-source-map(#13509)[docs]MentiontoStrictEqualin UsingMatchers docs. (#13560)New Contributors
Full Changelog: https://github.com/facebook/jest/compare/v29.2.2...v29.3.0
v29.2.2Compare Source
Fixes
[@jest/test-sequencer]Make sure sharding does not produce empty groups (#13476)[jest-circus]Test marked astodoare shown as todo when inside a focussed describe (#13504)[jest-mock]Ensure mock resolved and rejected values are promises from correct realm (#13503)[jest-snapshot]Don't highlight passing asymmetric property matchers in snapshot diff (#13480)Chore & Maintenance
[docs]Update link to Jest 28 upgrade guide in error message (#13483)[jest-runner, jest-watcher]Updateemittery(#13490)New Contributors
Full Changelog: https://github.com/facebook/jest/compare/v29.2.1...v29.2.2
v29.2.1Compare Source
Features
[@jest/globals, jest-mock]Addjest.Spied*utility types (#13440)Fixes
[jest-environment-node]makeglobalThis.performancewritable for Node 19 and fake timers (#13467)[jest-mock]Revert #13398 to restore mocking of setters (#13472)Performance
[*]Use sha1 instead of sha256 for hashing (#13421)Full Changelog: https://github.com/facebook/jest/compare/v29.2.0...v29.2.1
v29.2.0Compare Source
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-seedwill display the seed value in the report, and can be set via a CLI flag or through the config file (#13400)[jest-config]AddreadInitialConfigutility function (#13356)[jest-core]AllowtestResultsProcessorto be async (#13343)[@jest/environment, jest-environment-node, jest-environment-jsdom, jest-runtime]AddgetSeed()to thejestobject (#13400)[expect, @​jest/expect-utils]AllowisAutility to take a type argument (#13355)[expect]ExposeAsyncExpectationResultandSyncExpectationResulttypes (#13411)Fixes
[babel-plugin-jest-hoist]IgnoreTSTypeQuerywhen checking for hoisted references (#13367)[jest-core]FixdetectOpenHandlesfalse positives for some special objects such asTLSWRAP(#13414)[jest-mock]Fix mocking of getters and setters on classes (#13398)[jest-reporters]Revert: Transform file paths into hyperlinks (#13399)[@jest/types]Infer type ofeachtable correctly when the table is a tuple or array (#13381)[@jest/types]Rework typings to allow the*ReturnedWithmatchers to be called with no argument (#13385)Chore & Maintenance
[*]Update@babel/*deps, resulting in slightly different stack traces foreach(#13422)Performance
[jest-runner]Do not instrument v8 coverage data if coverage should not be collected (#13282)New Contributors
Full Changelog: https://github.com/facebook/jest/compare/v29.1.2...v29.2.0
v29.1.2Compare Source
Fixes
[expect, @​jest/expect]Revert buggy inference of argument types for*CalledWithand*ReturnedWithmatchers introduced in 29.1.0 (#13339)[jest-worker]Add missing dependency onjest-util(#13341)New Contributors
Full Changelog: https://github.com/facebook/jest/compare/v29.1.1...v29.1.2
v29.1.0Compare Source
Features
[expect, @​jest/expect]support type inference for function parameters inCalledWithassertions (#13268)[expect, @​jest/expect]Infer type of*ReturnedWithmatchers argument (#13278)[@jest/environment, jest-runtime]Allowjest.requireActualandjest.requireMockto take a type argument (#13253)[@jest/environment]Allowjest.mockandjest.doMockto take a type argument (#13254)[@jest/fake-timers]Addjest.now()to return the current fake clock time (#13244, #13246)[@jest/mock]AddwithImplementationmethod for temporarily overriding a mock (#13281)[expect]ExporttoThrow*matchers (#13328)Fixes
[jest-circus, jest-jasmine2]Fix error messages for Node'sassert.throes(#13322)[jest-haste-map]Remove__proto__usage (#13256)[jest-mock]ImprovespyOntypings to handle optional properties (#13247)[jest-mock]Fix mocking of getters and setters on classes (#13145)[jest-snapshot]Throw useful error when an array is passed as property matchers (#13263)[jest-snapshot]Prioritize parser used in the project (#13323)[jest-transform]Attempt to work around issues with atomic writes on Windows (#11423)New Contributors
Full Changelog: https://github.com/facebook/jest/compare/v29.0.3...v29.1.0
v29.0.3Compare Source
Features
[@jest/environment, jest-runtime]Allow passing a generic type argument tojest.createMockFromModule<T>()method (#13202)[expect]ExposeExpectationResulttype (#13240)[jest-snapshot]ExposeContexttype (#13240)[@jest/globals]Addjest.Mocktype helper (#13235)Fixes
[jest-core]CaptureexecErrorduringTestScheduler.scheduleTestsand dispatch to reporters (#13203)[jest-resolve]Make sure to resolve module paths after looking atexports(#13242)[jest-resolve]Improve error on module not found deep in therequirestack (#8704)[jest-snapshot]Fix typings of snapshot matchers (#13240)Chore & Maintenance
[*]Fix inconsistent workspace prefixes (#13217)[jest-haste-map]Expose a minimal public API to TypeScript (#13023)New Contributors
Full Changelog: https://github.com/facebook/jest/compare/v29.0.2...v29.0.3
v29.0.2Compare Source
Features
[jest-transform]ExposeTransformFactorytype (#13184)Fixes
[babel-plugin-jest-hoist]Support importedjestin mock factory (#13188)[jest-mock]Align the behavior and return type ofgenerateFromMetadatamethod (#13207)[jest-runtime]Supportjest.resetModules()with ESM (#13211)New Contributors
Full Changelog: https://github.com/facebook/jest/compare/v29.0.1...v29.0.2
v29.0.1Compare Source
Fixes
[jest-snapshot]PasssnapshotFormatthrough when diffing snapshots (#13181)Full Changelog: https://github.com/facebook/jest/compare/v29.0.0...v29.0.1
v29.0.0Compare Source
Blog post: https://jestjs.io/blog/2022/08/25/jest-29
Features
[expect][BREAKING] Differentiate betweenMatcherContextMatcherUtilsandMatcherStatetypes (#13141)[jest-circus]Add support fortest.failing.each(#13142)[jest-config][BREAKING] MakesnapshotFormatdefault toescapeString: falseandprintBasicPrototype: false(#13036)[jest-config][BREAKING] Remove undocumentedcollectCoverageOnlyFromoption (#13156)[jest-environment-jsdom][BREAKING] Upgrade tojsdom@20(#13037, #13058)[@jest/globals]Addjest.Mocked,jest.MockedClass,jest.MockedFunctionandjest.MockedObjectutility types (#12727)[jest-mock][BREAKING] RefactorMocked*utility types.MaybeMockedDeepandMaybeMockedbecameMockedandMockedShallowrespectively; only deep mocked variants ofMockedClass,MockedFunctionandMockedObjectare exported (#13123, #13124)[jest-mock][BREAKING] Change the defaultjest.mockedhelper’s behavior to deep mocked (#13125)[jest-snapshot][BREAKING] Letbabelfind config when updating inline snapshots (#13150)[@jest/test-result, @​jest/types][BREAKING] ReplaceBytesandMillisecondstypes withnumber(#13155)[jest-worker]AddsworkerIdleMemoryLimitoption which is used as a check for worker memory leaks >= Node 16.11.0 and recycles child workers as required (#13056, #13105, #13106, #13107)[pretty-format][BREAKING] RemoveConvertAnsiplugin in favour ofjest-serializer-ansi-escapes(#13040)[pretty-format]Allow to opt out from sorting object keys withcompareKeys: null(#12443)Fixes
[jest-config]Fix testing multiple projects with TypeScript config files (#13099)[@jest/expect-utils]Fix deep equality of ImmutableJS Record (#13055)[jest-haste-map]Increase the maximum possible file size that jest-haste-map can handle (#13094)[jest-runtime]Properly support CJS re-exports from dual packages (#13170)[jest-snapshot]MakeprettierPathoptional inSnapshotState(#13149)[jest-snapshot]Fix parsing error from inline snapshot files withJSX(#12760)[jest-worker]When a process runs out of memory worker exits correctly and doesn't spin indefinitely (#13054)Chore & Maintenance
[*][BREAKING] Drop support for Node v12 and v17 (#13033)[docs]Fix webpack name (#13049)[docs]Explicit how to setnfor--bail(#13128)[docs]Update Enzyme URL (#13166)[jest-leak-detector]Remove support forweak-napi(#13035)[jest-snapshot][BREAKING] RequirerootDiras argument toSnapshotState(#13150)New Contributors
Full Changelog: https://github.com/facebook/jest/compare/v28.1.3...v29.0.0
v28.1.3Compare Source
Features
[jest-leak-detector]Use nativeFinalizationRegistrywhen 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 ImmutableJS OrderedSets (#12977)[jest-mock]Add index signature support forspyOntypes (#13013, #13020)[jest-snapshot]Fix indentation of awaited inline snapshots (#12986)Chore & Maintenance
[*]Replace internal usage ofpretty-format/ConvertAnsiwithjest-serializer-ansi-escapes(#12935, #13004)[docs]Update spyOn docs (#13000)New Contributors
Full Changelog: https://github.com/facebook/jest/compare/v28.1.2...v28.1.3
v28.1.2Compare Source
Fixes
[jest-runtime]Avoid star type import from@jest/globals(#12949)Chore & Maintenance
[docs]Mention that jest-codemods now supports Sinon (#12898)New Contributors
Full Changelog: https://github.com/facebook/jest/compare/v28.1.1...v28.1.2
v28.1.1Compare Source
Features
[jest]ExposeConfigtype (#12848)[@jest/reporters]ImproveGitHubActionsReporters annotation format (#12826)[@jest/types]Infer argument types passed totestanddescribecallback functions fromeachtables (#12885, #12905)Fixes
[@jest/expect-utils]Fix deep equality of ImmutableJS OrderedMaps (#12763)[jest-docblock]Handle multiline comments in parseWithComments (#12845)[jest-mock]ImprovespyOnerror messages (#12901)[jest-runtime]Correctly report V8 coverage withresetModules: true(#12912)[jest-worker]MakeJestWorkerFarmhelper type to include methods of worker module that take more than one argument (#12839)Chore & Maintenance
[docs]Updated docs to indicate thatjest-environment-jsdomis a separate package #12828[docs]Document the comments used by coverage providers #12835[docs]Usedocusaurus-remark-plugin-tab-blocksto format tabs with code examples (#12859)[jest-haste-map]Bumpwalkerversion (#12324)[expect]Adjust typings oflastCalledWith,nthCalledWith,toBeCalledWithmatchers to allow a case there a mock was called with no arguments (#12807)[@jest/expect-utils]Fix deep equality of ImmutableJS Lists (#12763)[jest-core]Do not collectSIGNREQUESTas open handles (#12789)New Contributors
Full Changelog: https://github.com/facebook/jest/compare/v28.1.0...v28.1.1
v28.1.0Compare Source
Features
[jest-circus]Addfailingtest modifier that inverts the behaviour of tests (#12610)[jest-environment-node, jest-environment-jsdom]Allow specifyingcustomExportConditions(#12774)Fixes
[expect]Adjust typings oflastCalledWith,nthCalledWith,toBeCalledWithmatchers to allow a case there a mock was called with no arguments (#12807)[@jest/expect-utils]Fix deep equality of ImmutableJS Lists (#12763)[jest-core]Do not collectSIGNREQUESTas open handles (#12789)Chore & Maintenance
[docs]Specified documentation about--filterCLI docs (#12799)[@jest-reporters]Move helper functions fromutils.tsinto separate files (#12782)[jest-resolve]Replaceprocess.versions.pnptype declaration with@types/pnpapidevDependency (#12783)New Contributors
Full Changelog: https://github.com/facebook/jest/compare/v28.0.3...v28.1.0
v28.0.3Compare Source
Fixes
[jest-config]Normalizereportersoption defined in presets (#12769)[@jest/reporters]Fix trailing slash in matchingcoverageThresholdkey (#12714)[jest-resolve]Fix (experimental) ESM module mocking for re-exports (#12766)[@jest/transform]Throw better error if an invalid return value if encountered (#12764)Chore & Maintenance
[docs]Fix typo in--shardCLI docs (#12761)New Contributors
Full Changelog: https://github.com/facebook/jest/compare/v28.0.2...v28.0.3
v28.0.2Compare Source
Features
[jest-worker]AddJestWorkerFarmhelper 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)Full Changelog: https://github.com/facebook/jest/compare/v28.0.1...v28.0.2
v28.0.1Compare Source
Features
[jest-resolve]ExposeResolverOptionstype (#12736)Fixes
[expect]Add missing dependencyjest-util(#12744)[jest-circus]Improvetest.concurrent(#12748)[jest-resolve]Correctly throw an error ifjsdomtest environment is used, but not installed (#12749)Chore & Maintenance
[jest-serializer]Remove deprecated module from source tree (#12735)Full Changelog: https://github.com/facebook/jest/compare/v28.0.0...v28.0.1
v28.0.0Compare Source
Blog post: https://jestjs.io/blog/2022/04/25/jest-28
Features
[babel-jest]ExportcreateTransformerfunction (#12399)[expect]ExposeAsymmetricMatchers,MatcherFunctionandMatcherFunctionWithStateinterfaces (#12363, #12376)[jest-circus]Support error logging before retry (#12201)[jest-circus, jest-jasmine2]Allowed classes and functions asdescribeandit/testnames (#12484)[jest-cli, jest-config][BREAKING] RemovetestURLconfig, usetestEnvironmentOptions.urlinstead (#10797)[jest-cli, jest-core]Add--shardparameter for distributed parallel test execution (#12546)[jest-cli][BREAKING] Remove undocumented--timersoption (#12572)[jest-config][BREAKING] Stop shippingjest-environment-jsdomby default (#12354)[jest-config][BREAKING] Stop shippingjest-jasmine2by default (#12355)[jest-config, @​jest/types]AddcitoGlobalConfig(#12378)[jest-config][BREAKING] RenamemoduleLoadertoruntime(#10817)[jest-config][BREAKING] RenameextraGlobalstosandboxInjectedGlobals(#10817)[jest-config][BREAKING] Throw an error instead of showing a warning if multiple configs are used (#12510)[jest-config][BREAKING] Do not normalize long deprecated configuration optionspreprocessorIgnorePatterns,scriptPreprocessor,setupTestFrameworkScriptFileandtestPathDirs(#12701)[jest-cli, jest-core]Add--ignoreProjectsCLI argument to ignore test suites by project name (#12620)[jest-core]Pass project config toglobalSetup/globalTeardownfunction as second argument (#12440)[jest-core]Stabilize test runners with event emitters (#12641)[jest-core, jest-watcher][BREAKING] MoveTestWatcherclass tojest-watcherpackage (#12652)[jest-core]Allow using Summary Reporter as stand-alone reporter (#12687)[jest-environment-jsdom][BREAKING] Upgrade jsdom to 19.0.0 (#12290)[jest-environment-jsdom][BREAKING] Add defaultbrowsercondition toexportConditionsforjsdomenvironment (#11924)[jest-environment-jsdom][BREAKING] Pass global config to Jest environment constructor forjsdomenvironment (#12461)[jest-environment-jsdom][BREAKING] Second argumentcontextto constructor is mandatory (#12469)[jest-environment-node][BREAKING] Add defaultnodeandnode-addonconditions toexportConditionsfornodeenvironment (#11924)[jest-environment-node][BREAKING] Pass global config to Jest environment constructor fornodeenvironment (#12461)[jest-environment-node][BREAKING] Second argumentcontextto constructor is mandatory (#12469)[jest-environment-node]Add all available globals to test globals, not just explicit ones (#12642, #12696)[@jest/expect]New module which extendsexpectwithjest-snapshotmatchers (#12404, #12410, #12418)[@jest/expect-utils]New module exporting utils forexpect(#12323)[@jest/fake-timers][BREAKING] Renametimersconfiguration option tofakeTimers(#12572)[@jest/fake-timers][BREAKING] Allowjest.useFakeTimers()andprojectConfig.fakeTimersto take an options bag (#12572)[jest-haste-map][BREAKING]HasteMap.createnow returns a promise (#12008)[jest-haste-map]Add support fordependencyExtractorwritten in ESM (#12008)[jest-mock][BREAKING] Rename exported utility typesClassLike,FunctionLike,ConstructorLikeKeys,MethodLikeKeys,PropertyLikeKeys; remove exports of utility typesArgumentsOf,ArgsType,ConstructorArgumentsOf- TS builtin utility typesConstructorParametersandParametersshould be used instead (#12435, #12489)[jest-mock]ImproveisMockFunctionto infer types of passed function (#12442)[jest-mock][BREAKING] Improve the usage ofjest.fngeneric type argument (#12489)[jest-mock]Add support for auto-mocking async generator functions (#11080)[jest-mock]Addcontextsmember to mock functions (#12601)[@jest/reporters]Add GitHub Actions reporter (#11320, #12658)[@jest/reporters]PassreporterContextto custom reporter constructors as third argument (#12657)[jest-resolve][BREAKING] Add support forpackage.jsonexports(#11961, #12373)[jest-resolve]Support package self-reference (#12682)[jest-resolve, jest-runtime]Add support fordata:URI import and mock (#12392)[jest-resolve, jest-runtime]Add support for async resolver (#11540)[jest-resolve][BREAKING] Removebrowser?: booleanfrom resolver options,conditions: ['browser']should be used instead (#12707)[jest-resolve]ExposeJestResolver,AsyncResolver,SyncResolver,PackageFilter,PathFilterandPackageJSONtypes (#12707, (#12712)[jest-runner]AllowsetupFilesmodule to export an async function (#12042)[jest-runner]Allow passingtestEnvironmentOptionsvia docblocks (#12470)[jest-runner]ExposeCallbackTestRunner,EmittingTestRunnerabstract classes andCallbackTestRunnerInterface,EmittingTestRunnerInterfaceto help typing third party runners (#12646, #12715)[jest-runner]Lock version ofsource-map-supportto 0.5.13 (#12720)[jest-runtime][BREAKING]Runtime.createHasteMapnow returns a promise (#12008)[jest-runtime]Callingjest.resetModulesfunction will clear FS and transform cache (#12531)[jest-runtime][BREAKING] RemoveContexttype export, it must be imported from@jest/test-result(#12685)[jest-runtime]Addimport.meta.jest(#12698)[@jest/schemas]New module for JSON schemas for Jest's config (#12384)[@jest/source-map]Migrate fromsource-mapto@jridgewell/trace-mapping(#12692)[jest-transform][BREAKING] Make it required forprocess()andprocessAsync()methods to always return structured data (#12638)[jest-test-result]Add duration property to JSON test output (#12518)[jest-watcher][BREAKING] MakePatternPromptclass to takeentityNameas third constructor parameter instead ofthis._entityName(#12591)[jest-worker][BREAKING] Allow only absoluteworkerPath(#12343)[jest-worker][BREAKING] Default to advanced serialization when using child process workers (#10983)[pretty-format]NewmaxWidthparameter (#12402)Fixes
[*]Usesha256instead ofmd5as hashing algortihm for compatibility with FIPS systems (#12722)[babel-jest][BREAKING] PassrootDirasrootin Babel's options (#12689)[expect]Move typings of.not,.rejectsand.resolvesmodifiers outside ofMatchersinterface (#12346)[expect]Throw useful error ifexpect.extendis called with invalid matchers (#12488)[expect]FixiterableEqualityignores other properties (#8359)[expect]Fix print for thecloseTomatcher (#12626)[jest-changed-files]ImprovechangedFilesWithAncestorpattern for Mercurial SCM (#12322)[jest-circus, @​jest/types]Disallow undefined value inTestContexttype (#12507)[jest-config]Correctly detect CI environment and update snapshots accordingly (#12378)[jest-config]PassmoduleTypestots-nodeto enforce CJS when transpiling (#12397)[jest-config][BREAKING] Addmjsandcjsto defaultmoduleFileExtensionsconfig (#12578)[jest-config, jest-haste-map]Allow searching for tests innode_modulesby exposingretainAllFiles(#11084)[jest-core][BREAKING] Exit with status1if no tests are found with--findRelatedTestsflag (#12487)[jest-core]Do not report unref-ed subprocesses as open handles (#12705)[jest-each]%#is not replaced with index of the test case (#12517)[jest-each]Fixes error message with incorrect count of missing arguments (#12464)[jest-environment-jsdom]Makejsdomaccessible to extending environments again (#12232)[jest-environment-jsdom]Log JSDOM errors more cleanly (#12386)[jest-environment-node]AddMessageChannel,MessageEventto globals (#12553)[jest-environment-node]AddstructuredCloneto globals (#12631)[@jest/expect-utils][BREAKING] Fix false positives when looking forundefinedprop (#8923)[jest-haste-map]Don't use partial results if file crawl errors (#12420)[jest-haste-map]Make watchman existence check lazy+async (#12675)[jest-jasmine2, jest-types][BREAKING] Move alljasminespecific types from@jest/typesto its own package (#12125)[jest-jasmine2]Do not setdurationto0for skipped tests (#12518)[jest-matcher-utils]Pass maxWidth topretty-formatto avoid printing every element in arrays by default (#12402)[jest-mock]Fix function overloads forspyOnto allow more correct type inference in complex object (#12442)[jest-mock]Handle overriddenFunction.nameproperty (#12674)[@jest/reporters]Notifications generated by the--notifyflag are no longer persistent in GNOME Shell. (#11733)[@jest/reporters]Move missing icon file which is needed forNotifyReporterclass. (#12593)[@jest/reporters]Updatev8-to-istanbul(#12697)[jest-resolver]Call custom resolver with core node.js modules (#12654)[jest-runner]Correctly resolvesource-map-support(#12706)[jest-worker]FixFarmexecution results memory leak (#12497)Chore & Maintenance
[*][BREAKING] Drop support for Node v10 and v15 and target first LTS16.13.0(#12220)[*][BREAKING] Drop support fortypescript@3.8, minimum version is now4.3(#11142, #12648)[*]Bundle all.d.tsfiles into a singleindex.d.tsper module (#12345)[*]UseglobalThisinstead ofglobal(#12447)[babel-jest][BREAKING] Only exportcreateTransformer(#12407)[docs]Add note about not mixingdone()with Promises (#11077)[docs, examples]Update React examples to match with the new React guidelines for code examples (#12217)[docs]Add clarity for module factory hoisting limitations (#12453)[docs]Add more information about how code transformers work (#12407)[docs]Add upgrading guide (#12633)[expect][BREAKING] Remove support for importingbuild/utils(#12323)[expect][BREAKING] Migrate to ESM (#12344)[expect][BREAKING] Snapshot matcher types are moved to@jest/expect(#12404)[jest-cli]Updateyargsto v17 (#12357)[jest-config][BREAKING] RemovegetTestEnvironmentexport (#12353)[jest-config][BREAKING] Rename config optionnametoid(#11981)[jest-create-cache-key-function]Added README.md file with basic usage instructions (#12492)[@jest/core]Useindex.tsinstead ofjest.tsas main export (#12329)[jest-environment-jsdom][BREAKING] Migrate to ESM (#12340)[jest-environment-node][BREAKING] Migrate to ESM (#12340)[jest-haste-map]Remove legacyisRegExpSupported(#12676)[@jest/fake-timers]Update@sinonjs/fake_timersto v9 (#12357)[jest-jasmine2, jest-runtime][BREAKING] UseSymbolto passjest.setTimeoutvalue instead ofjasminespecific logic (#12124)[jest-phabricator][BREAKING] Migrate to ESM (#12341)[jest-resolve][BREAKING] MakerequireResolveFunctionargument mandatory (#12353)[jest-runner][BREAKING] Remove some type exports from@jest/test-result(#12353)[jest-runner][BREAKING] Second argument to constructor (Context) is not optional (#12640)[jest-serializer][BREAKING] Deprecate package in favour of usingv8APIs directly (#12391)[jest-snapshot][BREAKING] Migrate to ESM (#12342)[jest-transform]Updatewrite-file-atomicto v4 (#12357)[jest-types][BREAKING] RemoveConfig.GlobandConfig.Path(#12406)[jest]Useindex.tsinstead ofjest.tsas main export (#12329)Performance
[jest-haste-map][BREAKING] Default tonodecrawler over shelling out tofindifwatchmanis not enabled (#12320)New Contributors
Full Changelog: https://github.com/facebook/jest/compare/v27.5.1...v28.0.0
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Renovate Bot.
⚠️ Artifact update problem
Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.
♻ Renovate will retry this branch, including artifacts, only when one of the following happens:
The artifact failure details are included below:
File name: package-lock.json
Edited/Blocked Notification
Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.
You can manually request rebase by checking the rebase/retry box above.
⚠️ Warning: custom changes will be lost.