Skip to content

chore(deps): update jest monorepo to v29 (major)

Renovate requested to merge renovate/major-jest-monorepo into staging

This MR contains the following updates:

Package Type Update Change
@types/jest (source) devDependencies major ^26.0.24 -> ^29.5.13
babel-jest (source) devDependencies major ^26.6.3 -> ^29.7.0
jest (source) devDependencies major 26.6.3 -> 29.7.0
ts-jest (source) devDependencies major ^26.5.6 -> ^29.2.5

Release Notes

jestjs/jest (babel-jest)

v29.7.0

Compare Source

Features
  • [create-jest] Add npm init / yarn create initialiser for Jest projects (#​14465)
  • [jest-validate] Allow deprecation warnings for unknown options (#​14499)
Fixes
  • [jest-resolver] Replace unmatched capture groups in moduleNameMapper with empty string instead of undefined (#​14507)
  • [jest-snapshot] Allow for strings as well as template literals in inline snapshots (#​14465)
  • [@jest/test-sequencer] Calculate test runtime if perStats.duration is missing (#​14473)
Performance
  • [@jest/create-cache-key-function] Cache access of NODE_ENV and BABEL_ENV (#​14455)
Chore & Maintenance
  • [jest-cli] Move internal config initialisation logic to the create-jest package (#​14465)

v29.6.4

Compare Source

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

v29.6.3

Compare Source

Fixes
  • [expect, @​jest/expect-utils] ObjectContaining support sumbol 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)

v29.6.2

Compare Source

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

v29.6.1

Compare Source

Fixes

v29.6.0

Compare 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] 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.

v29.5.0

Compare 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] Add workerThreads configuration option to allow using worker threads for parallelization (#​13939)
  • [jest-cli] Export yargsOptions (#​13970)
  • [jest-config] Add openHandlesTimeout option to configure possible open handles warning. (#​13875)
  • [@jest/create-cache-key-function] Allow passing length argument to createCacheKey() function and set its default value to 16 on Windows (#​13827)
  • [jest-message-util] Add support for AggregateError (#​13946 & #​13947)
  • [jest-message-util] Add support for Error causes in test and it (#​13935 & #​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)
  • [jest-runtime] Expose @sinonjs/fake-timers async APIs functions advanceTimersByTimeAsync(msToRun) (tickAsync(msToRun)), advanceTimersToNextTimerAsync(steps) (nextAsync), runAllTimersAsync (runAllAsync), and runOnlyPendingTimersAsync (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 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)

v29.4.3

Compare Source

Features
  • [expect] Update toThrow() to be able to use error causes (#​13606)
  • [jest-core] allow to use workerIdleMemoryLimit with only 1 worker or runInBand option (#​13846)
  • [jest-message-util] Add support for error causes (#​13868 & #​13912)
  • [jest-runtime] Revert import assertions for JSON modules as it's been relegated to Stage 2 (#​13911)
Fixes
  • [@jest/expect-utils] subsetEquality should consider also an object's inherited string keys (#​13824)
  • [jest-mock] Clear mock state when jest.restoreAllMocks() is called (#​13867)
  • [jest-mock] Prevent mockImplementationOnce and mockReturnValueOnce bleeding into withImplementation (#​13888)
  • [jest-mock] Do not restore mocks when jest.resetAllMocks() is called (#​13866)

v29.4.2

Compare Source

Features
Fixes
  • [expect, @​jest/expect] Provide type of actual as a generic argument to Matchers to allow better-typed extensions (#​13848)
  • [jest-circus] Added explicit mention of test failing because done() is not being called in error message (#​13847)
  • [jest-runtime] Handle CJS re-exports of node core modules from ESM (#​13856)
  • [jest-transform] Downgrade write-file-atomic to v4 (#​13853)
  • [jest-worker] Ignore IPC messages not intended for Jest (#​13543)
Chore & Maintenance
  • [*] make sure to exclude .eslintcache from published module (#​13832)
  • [docs] Cleanup incorrect links in CHANGELOG.md (#​13857)

v29.4.1

Compare Source

Features
  • [expect, jest-circus, @​jest/types] Implement numPassingAsserts of testResults to track the number of passing asserts in a test (#​13795)
  • [jest-core] Add newlines to JSON output (#​13817)
  • [@jest/reporters] Automatic log folding in GitHub Actions Reporter (#​13626)
Fixes
  • [@jest/expect-utils] toMatchObject diffs should include Symbol properties (#​13810)
  • [jest-runtime] Handle missing replaceProperty (#​13823)
  • [@jest/types] Add partial support for done callbacks in typings of each (#​13756)

v29.4.0

Compare Source

Features
  • [expect, @​jest/expect-utils] Support custom equality testers (#​13654)
  • [jest-config, jest-worker] Use os.availableParallelism if available to calculate number of workers to spawn (#​13738)
  • [@jest/globals, jest-mock] Add jest.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] Add jest.isolateModulesAsync for scoped module initialization of asynchronous functions (#​13680)
  • [jest-runtime] Add jest.isEnvironmentTornDown function (#​13741)
  • [jest-test-result] Added skipped and focused status to FormattedTestResult (#​13700)
  • [jest-transform] Support for asynchronous createTransformer (#​13762)
Fixes
  • [jest-environment-node] Fix non-configurable globals (#​13687)
  • [@jest/expect-utils] toMatchObject should handle Symbol properties (#​13639)
  • [jest-mock] Fix mockReset and resetAllMocks undefined return value(#​13692)
  • [jest-resolve] Add global paths to require.resolve.paths (#​13633)
  • [jest-resolve] Correct node core module detection when using node: specifiers (#​13806)
  • [jest-runtime] Support WASM files that import JS resources (#​13608)
  • [jest-runtime] Use the scriptTransformer cache in jest-runner (#​13735)
  • [jest-runtime] Enforce import assertions when importing JSON in ESM (#​12755 & #​13805)
  • [jest-snapshot] Make sure to import babel outside of the sandbox (#​13694)
  • [jest-transform] Ensure the correct configuration is passed to preprocessors specified multiple times in the transform option (#​13770)
Chore & Maintenance
  • [@jest/fake-timers] Update @sinonjs/fake-timers (#​13612)
  • [docs] Improve custom puppeteer example to prevent worker warnings (#​13619)

v29.3.1

Compare Source

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

v29.3.0

Compare Source

Features
  • [jest-runtime] Support WebAssembly (Wasm) imports in ESM modules (#​13505)
Fixes
  • [jest-config] Add config validation for projects option (#​13565)
  • [jest-mock] Treat cjs modules as objects so they can be mocked (#​13513)
  • [jest-worker] Throw an error instead of hanging when jest workers terminate unexpectedly (#​13566)
Chore & Maintenance
  • [@jest/transform] Update convert-source-map (#​13509)
  • [docs] Mention toStrictEqual in UsingMatchers docs. (#​13560)

v29.2.2

Compare Source

Fixes
  • [@jest/test-sequencer] Make sure sharding does not produce empty groups (#​13476)
  • [jest-circus] Test marked as todo are shown as todo when inside a focussed describe (#​13504)
  • [jest-mock] Ensure mock resolved and rejected values are 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] Update emittery (#​13490)

v29.2.1

Compare Source

Features
  • [@jest/globals, jest-mock] Add jest.Spied* utility types (#​13440)
Fixes
  • [jest-environment-node] make globalThis.performance writable for Node 19 and fake timers (#​13467)
  • [jest-mock] Revert #​13398 to restore mocking of setters (#​13472)
Performance
  • [*] Use sha1 instead of sha256 for hashing (#​13421)

v29.2.0

Compare 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-seed will display the seed value in the report, and can be set via a CLI flag or through the config file (#​13400)
  • [jest-config] Add readInitialConfig utility function (#​13356)
  • [jest-core] Allow testResultsProcessor to be async (#​13343)
  • [@jest/environment, jest-environment-node, jest-environment-jsdom, jest-runtime] Add getSeed() to the jest object (#​13400)
  • [expect, @​jest/expect-utils] Allow isA utility to take a type argument (#​13355)
  • [expect] Expose AsyncExpectationResult and SyncExpectationResult types (#​13411)
Fixes
  • [babel-plugin-jest-hoist] Ignore TSTypeQuery when checking for hoisted references (#​13367)
  • [jest-core] Fix detectOpenHandles false positives for some special objects such as TLSWRAP (#​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 of each table correctly when the table is a tuple or array (#​13381)
  • [@jest/types] Rework typings to allow the *ReturnedWith matchers to be called with no argument (#​13385)
Chore & Maintenance
  • [*] Update @babel/* deps, resulting in slightly different stack traces for each (#​13422)
Performance
  • [jest-runner] Do not instrument v8 coverage data if coverage should not be collected (#​13282)

v29.1.2

Compare Source

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

v29.1.0

Compare Source

Features
  • [expect, @​jest/expect] Support type inference for function parameters in CalledWith assertions (#​13268)
  • [expect, @​jest/expect] Infer type of *ReturnedWith matchers argument (#​13278)
  • [@jest/environment, jest-runtime] Allow jest.requireActual and jest.requireMock to take a type argument (#​13253)
  • [@jest/environment] Allow jest.mock and jest.doMock to take a type argument (#​13254)
  • [@jest/fake-timers] Add jest.now() to return the current fake clock time (#​13244, #​13246)
  • [@jest/mock] Add withImplementation method for temporarily overriding a mock (#​13281)
  • [expect] Export toThrow* matchers (#​13328)
Fixes
  • [jest-circus, jest-jasmine2] Fix error messages for Node's assert.throes (#​13322)
  • [jest-haste-map] Remove __proto__ usage (#​13256)
  • [jest-mock] Improve spyOn typings 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)

v29.0.3

Compare Source

Features
  • [@jest/environment, jest-runtime] Allow passing a generic type argument to jest.createMockFromModule<T>() method (#​13202)
  • [expect] Expose ExpectationResult type (#​13240)
  • [jest-snapshot] Expose Context type (#​13240)
  • [@jest/globals] Add jest.Mock type helper (#​13235)
Fixes
  • [jest-core] Capture execError during TestScheduler.scheduleTests and dispatch to reporters (#​13203)
  • [jest-resolve] Make sure to resolve module paths after looking at exports (#​13242)
  • [jest-resolve] Improve error on module not found deep in the require stack (#​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)

v29.0.2

Compare Source

Features
  • [jest-transform] Expose TransformFactory type (#​13184)
Fixes
  • [babel-plugin-jest-hoist] Support imported jest in mock factory (#​13188)
  • [jest-mock] Align the behavior and return type of generateFromMetadata method (#​13207)
  • [jest-runtime] Support jest.resetModules() with ESM (#​13211)

v29.0.1

Compare Source

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

v29.0.0

Compare Source

Features
  • [expect] [BREAKING] Differentiate between MatcherContext MatcherUtils and MatcherState types (#​13141)
  • [jest-circus] Add support for test.failing.each (#​13142)
  • [jest-config] [BREAKING] Make snapshotFormat default to escapeString: false and printBasicPrototype: false (#​13036)
  • [jest-config] [BREAKING] Remove undocumented collectCoverageOnlyFrom option (#​13156)
  • [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, @&#8203;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)
  • [docs] Fix webpack name (#​13049)
  • [docs] Explicit how to set n for --bail (#​13128)
  • [docs] Update Enzyme URL (#​13166)
  • [jest-leak-detector] Remove support for weak-napi (#​13035)
  • [jest-snapshot] [BREAKING] Require rootDir as argument to SnapshotState (#​13150)

v28.1.3

Compare Source

Features
  • [jest-leak-detector] Use native FinalizationRegistry when it exists to get rid of external C dependency (#​12973)
Fixes
  • [jest-changed-files] Fix a lock-up after repeated invocations (#​12757)
  • [@jest/expect-utils] Fix deep equality of ImmutableJS OrderedSets (#​12977)
  • [jest-mock] Add index signature support for spyOn types (#​13013, #​13020)
  • [jest-snapshot] Fix indentation of awaited inline snapshots (#​12986)
Chore & Maintenance
  • [*] Replace internal usage of pretty-format/ConvertAnsi with jest-serializer-ansi-escapes (#​12935, #​13004)
  • [docs] Update spyOn docs (#​13000)

v28.1.2

Compare Source

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

v28.1.1

Compare Source

Features
  • [jest] Expose Config type (#​12848)
  • [@jest/reporters] Improve GitHubActionsReporters annotation format (#​12826)
  • [@jest/types] Infer argument types passed to test and describe callback functions from each tables (#​12885, #​12905)
Fixes
  • [@jest/expect-utils] Fix deep equality of ImmutableJS OrderedMaps (#​12899)
  • [jest-docblock] Handle multiline comments in parseWithComments (#​12845)
  • [jest-mock] Improve spyOn error messages (#​12901)
  • [jest-runtime] Correctly report V8 coverage with resetModules: true (#​12912)
  • [jest-worker] Make JestWorkerFarm helper type to include methods of worker module that take more than one argument (#​12839)
Chore & Maintenance
  • [docs] Updated docs to indicate that jest-environment-jsdom is a separate package #​12828
  • [docs] Document the comments used by coverage providers #​12835
  • [docs] Use docusaurus-remark-plugin-tab-blocks to format tabs with code examples (#​12859)
  • [jest-haste-map] Bump walker version (#​12324)

v28.1.0

Compare Source

Features
  • [jest-circus] Add failing test modifier that inverts the behavior of tests (#​12610)
  • [jest-environment-node, jest-environment-jsdom] Allow specifying customExportConditions (#​12774)
Fixes
  • [expect] Adjust typings of lastCalledWith, nthCalledWith, toBeCalledWith matchers 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 collect SIGNREQUEST as open handles (#​12789)
Chore & Maintenance
  • [docs] Specified documentation about --filter CLI docs (#​12799)
  • [@jest-reporters] Move helper functions from utils.ts into separate files (#​12782)
  • [jest-resolve] Replace process.versions.pnp type declaration with @types/pnpapi devDependency (#​12783)

v28.0.3

Compare Source

Fixes
  • [jest-config] Normalize reporters option defined in presets (#​12769)
  • [@jest/reporters] Fix trailing slash in matching coverageThreshold key (#​12714)
  • [jest-resolve] Fix (experimental) ESM module mocking for re-exports (#​12766)
  • [@jest/transform] Throw better error if an invalid return value if encountered (#​12764)
Chore & Maintenance
  • [docs] Fix typo in --shard CLI docs (#​12761)

v28.0.2

Compare Source

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

v28.0.1

Compare Source

Features
  • [jest-resolve] Expose ResolverOptions type (#​12736)
Fixes
  • [expect] Add missing dependency jest-util (#​12744)
  • [jest-circus] Improve test.concurrent (#​12748)
  • [jest-resolve] Correctly throw an error if jsdom test environment is used, but not installed (#​12749)
Chore & Maintenance
  • [jest-serializer] Remove deprecated module from source tree (#​12735)

v28.0.0

Compare Source

Features
  • [babel-jest] Export createTransformer function (#​12399)
  • [expect] Expose AsymmetricMatchers, MatcherFunction and MatcherFunctionWithState interfaces (#​12363, #​12376)
  • [jest-circus] Support error logging before retry (#​12201)
  • [jest-circus, jest-jasmine2] Allowed classes and functions as describe and it/test names (#​12484)
  • [jest-cli, jest-config] [BREAKING] Remove testURL config, use testEnvironmentOptions.url instead (#​10797)
  • [jest-cli, jest-core] Add --shard parameter for distributed parallel test execution (#​12546)
  • [jest-cli] [BREAKING] Remove undocumented --timers option (#​12572)
  • [jest-config] [BREAKING] Stop shipping jest-environment-jsdom by default (#​12354)
  • [jest-config] [BREAKING] Stop shipping jest-jasmine2 by default (#​12355)
  • [jest-config, @&#8203;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/reporters] Add GitHub Actions reporter (#​11320, #​12658)
  • [@jest/reporters] Pass reporterContext to custom reporter constructors as third argument (#​12657)
  • [jest-resolve] [BREAKING] Add support for package.json exports (#​11961, #​12373)
  • [jest-resolve] Support package self-reference (#​12682)
  • [jest-resolve, jest-runtime] Add support for data: URI import and mock (#​12392)
  • [jest-resolve, jest-runtime] Add support for async resolver (#​11540)
  • [jest-resolve] [BREAKING] Remove browser?: boolean from resolver options, conditions: ['browser'] should be used instead (#​12707)
  • [jest-resolve] Expose JestResolver, AsyncResolver, SyncResolver, PackageFilter, PathFilter and PackageJSON types (#​12707, (#​12712)
  • [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)
  • [jest-runtime] Add import.meta.jest (#​12698)
  • [@jest/schemas] New module for JSON schemas for Jest's config (#​12384)
  • [@jest/source-map] Migrate from source-map to @jridgewell/trace-mapping (#​12692)
  • [jest-transform] [BREAKING] Make it required for process() and processAsync() methods to always return structured data (#​12638)
  • [jest-test-result] Add duration property to JSON test output (#​12518)
  • [jest-watcher] [BREAKING] Make PatternPrompt class to take entityName as third constructor parameter instead of this._entityName (#​12591)
  • [jest-worker] [BREAKING] Allow only absolute workerPath (#​12343)
  • [jest-worker] [BREAKING] Default to advanced serialization when using child process workers (#​10983)
  • [pretty-format] New maxWidth parameter (#​12402)
Fixes
  • [*] Use sha256 instead of md5 as hashing algorithm for compatibility with FIPS systems (#​12722)
  • [babel-jest] [BREAKING] Pass rootDir as root in Babel's options (#​12689)
  • [expect] Move typings of .not, .rejects and .resolves modifiers outside of Matchers interface (#​12346)
  • [expect] Throw useful error if expect.extend is called with invalid matchers (#​12488)
  • [expect] Fix iterableEquality ignores other properties (#​8359)
  • [expect] Fix print for the closeTo matcher (#​12626)
  • [jest-changed-files] Improve changedFilesWithAncestor pattern for Mercurial SCM (#​12322)
  • [jest-circus, @&#8203;jest/types] Disallow undefined value in TestContext type (#​12507)
  • [jest-config] Correctly detect CI environment and update snapshots accordingly (#​12378)
  • [jest-config] Pass moduleTypes to ts-node to enforce CJS when transpiling (#​12397)
  • [jest-config] [BREAKING] Add mjs and cjs to default moduleFileExtensions config (#​12578)
  • [jest-config, jest-haste-map] Allow searching for tests in node_modules by exposing retainAllFiles (#​11084)
  • [jest-core] [BREAKING] Exit with status 1 if no tests are found with --findRelatedTests flag (#​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] Make jsdom accessible to extending environments again (#​12232)
  • [jest-environment-jsdom] Log JSDOM errors more cleanly (#​12386)
  • [jest-environment-node] Add MessageChannel, MessageEvent to globals (#​12553)
  • [jest-environment-node] Add structuredClone to globals (#​12631)
  • [@jest/expect-utils] [BREAKING] Fix false positives when looking for undefined prop (#​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 all jasmine specific types from @jest/types to its own package (#​12125)
  • [jest-jasmine2] Do not set duration to 0 for skipped tests (#​12518)
  • [jest-matcher-utils] Pass maxWidth to pretty-format to avoid printing every element in arrays by default (#​12402)
  • [jest-mock] Fix function overloads for spyOn to allow more correct type inference in complex object (#​12442)
  • [jest-mock] Handle overridden Function.name property (#​12674)
  • [@jest/reporters] Notifications generated by the --notify flag are no longer persistent in GNOME Shell. (#​11733)
  • [@jest/reporters] Move missing icon file which is needed for NotifyReporter class. (#​12593)
  • [@jest/reporters] Update v8-to-istanbul (#​12697)
  • [jest-resolver] Call custom resolver with core node.js modules (#​12654)
  • [jest-runner] Correctly resolve source-map-support (#​12706)
  • [jest-worker] Fix Farm execution results memory leak (#​12497)
Chore & Maintenance
  • [*] [BREAKING] Drop support for Node v10 and v15 and target first LTS 16.13.0 (#​12220)
  • [*] [BREAKING] Drop support for typescript@3.8, minimum version is now 4.3 (#​11142, #​12648)
  • [*] Bundle all .d.ts files into a single index.d.ts per module (#​12345)
  • [*] Use globalThis instead of global (#​12447)
  • [babel-jest] [BREAKING] Only export createTransformer (#​12407)
  • [docs] Add note about not mixing done() 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 importing build/utils (#​12323)
  • [expect] [BREAKING] Migrate to ESM (#​12344)
  • [expect] [BREAKING] Snapshot matcher types are moved to @jest/expect (#​12404)
  • [jest-cli] Update yargs to v17 (#​12357)
  • [jest-config] [BREAKING] Remove getTestEnvironment export (#​12353)
  • [jest-config] [BREAKING] Rename config option name to id (#​11981)
  • [jest-create-cache-key-function] Added README.md file with basic usage instructions (#​12492)
  • [@jest/core] Use index.ts instead of jest.ts as main export (#​12329)
  • [jest-environment-jsdom] [BREAKING] Migrate to ESM (#​12340)
  • [jest-environment-node] [BREAKING] Migrate to ESM (#​12340)
  • [jest-haste-map] Remove legacy isRegExpSupported (#​12676)
  • [@jest/fake-timers] Update @sinonjs/fake_timers to v9 (#​12357)
  • [jest-jasmine2, jest-runtime] [BREAKING] Use Symbol to pass jest.setTimeout value instead of jasmine specific logic (#​12124)
  • [jest-phabricator] [BREAKING] Migrate to ESM (#​12341)
  • [jest-resolve] [BREAKING] Make requireResolveFunction argument 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 using v8 APIs directly (#​12391)
  • [jest-snapshot] [BREAKING] Migrate to ESM (#​12342)
  • [jest-transform] Update write-file-atomic to v4 (#​12357)
  • [jest-types] [BREAKING] Remove Config.Glob and Config.Path (#​12406)
  • [jest] Use index.ts instead of jest.ts as main export (#​12329)
Performance
  • [jest-haste-map] [BREAKING] Default to node crawler over shelling out to find if watchman is not enabled (#​12320)

v27.5.1

Compare Source

Features
  • [jest-config] Support comments in JSON config file (#​12316)
  • [pretty-format] Expose ConvertAnsi plugin (#​12308)
Fixes
  • [expect] Add type definitions for asymmetric closeTo matcher (#​12304)
  • [jest-cli] Load binary via exported API (#​12315)
  • [jest-config] Replace jsonlint with parse-json (#​12316)
  • [jest-repl] Make module importable (#​12311 & #​12315)
Chore & Maintenance
  • [*] Avoid anonymous default exports (#​12313)

v27.5.0

Compare Source

Features
  • [expect] Add asymmetric matcher expect.closeTo (#​12243)
  • [jest-mock] Added mockFn.mock.lastCall to retrieve last argument (#​12285)
Fixes
  • [expect] Add a fix for .toHaveProperty('') (#​12251)
  • [jest-each, @&#8203;jest/globals] Allow passing ReadonlyArray type of a table to describe.each and test.each (#​12297)
  • [@jest/globals] Add missing options argument to jest.doMock typing (#​12292)
  • [jest-environment-node] Add atob and btoa (#​12269)
  • [jest-matcher-utils] Correct diff for expected asymmetric matchers (#​12264)
  • [jest-message-util] Fix .getTopFrame() (and toMatchInlineSnapshot()) with mjs files (#​12277)
Chore & Maintenance
  • [*] Update graceful-fs to ^4.2.9 (#​11749)
Performance
  • [jest-resolve] perf: skip error creation on not found stat calls (#​11749)

v27.4.6

Compare Source

Fixes
  • [jest-environment-node] Add AbortSignal (#​12157)
  • [jest-environment-node] Add Missing node global performance (#​12002)
  • [jest-runtime] Handle missing mocked property (#​12213)
  • [@jest/transform] Update dependency package pirates to 4.0.4 (#​12002)
Performance
  • jest-config perf: only register ts-node once when loading TS config files (#​12160)

v27.4.5

Compare Source

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

v27.4.4

Compare Source

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

v27.4.2

Compare Source

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

v27.4.1

Compare Source

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

v27.4.0

Compare Source

Features
  • [expect] Enhancing the toHaveProperty matcher to support array selection (#​12092)
  • [jest-core] Add support for testResultsProcessor written in ESM (#​12006)
  • [jest-diff, pretty-format] Add compareKeys option for custom sorting of object keys (#​11992)
  • [jest-mock] Add ts-jest mock util functions (#​12089)
Fixes
  • [expect] Allow again expect.Matchers generic with single value (#​11986)
  • [jest-circus, jest-jasmine2] Avoid false concurrent test failures due to unhandled promise rejections (#​11987)
  • [jest-config] Add missing slash dependency to package.json (#​12080)
  • [jest-core] Incorrect detection of open ZLIB handles (#​12022)
  • [jest-diff] Break dependency cycle (#​10818)
  • [jest-environment-jsdom] Add @types/jsdom dependency (#​11999)
  • [jest-environment-jsdom] Do not reset the global.document too early on teardown (#​11871)
  • [jest-transform] Improve error and warning messages (#​11998)
  • [jest-worker] Pass execArgv correctly to worker_threads worker (#​12069)
Chore & Maintenance
  • [docs] CLI options alphabetized (#​11586)
  • [jest-runner] Add info regarding timers to forcedExit message(#​12083)
  • [*] Replaced substr method with substring (#​12066)
  • [*] Add types entry to all export maps (#​12073)

v27.3.1

Compare Source

Fixes
  • [expect] Make expect extension properties configurable (#​11978)
  • [expect] Fix .any() checks on primitive wrapper classes (#​11976)
Chore & Maintenance
  • [expect] BigInt global is always defined, don't check for its existence at runtime (#​11979)
  • [jest-config, jest-util] Use ci-info instead of is-ci to detect CI environment (#​11973)

v27.3.0

Compare Source

Features
  • [jest-config] Add testEnvironmentOptions.html to apply to jsdom input (#​11950)
  • [jest-resolver] Support default export (.) in exports field if main is missing (#​11919)
Fixes
  • [expect] Tweak and improve types (#​11949)
  • [jest-runtime] Ensure absolute paths can be resolved within test modules (#​11943)
  • [jest-runtime] Fix instanceof for ModernFakeTimers and LegacyFakeTimers methods (#​11946)

v27.2.5

Compare Source

Features
  • [jest-config] Warn when multiple Jest configs are located (#​11922)
Fixes
  • [expect] Pass matcher context to asymmetric matchers (#​11926 & #​11930)
  • [expect] Improve TypeScript types (#​11931)
  • [expect] Improve typings of toThrow() and toThrowError() matchers (#​11929)
  • [jest-cli] Improve --help printout by removing defunct --browser option (#​11914)
  • [jest-haste-map] Use distinct cache paths for different values of computeDependencies (#​11916)
  • [@jest/reporters] Do not buffer console.logs when using verbose reporter (#​11054)
Chore & Maintenance
  • [expect] Export default matchers (#​11932)
  • [@jest/types] Mark deprecated configuration options as @deprecated (#​11913)

v27.2.4

Compare Source

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

v27.2.3

Compare Source

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

v27.2.2

Compare Source

Fixes
  • [jest-runtime] Correct wrapperLength value for ESM modules. (#​11893)

v27.2.1

Compare Source

Features
  • [jest-transform] Improve the unexpected token error message. (#​11807)
Fixes
  • [jest-runtime] Fix regression when using jest.isolateModules and mocks (#​11882)
  • [jest-runtime] Include test name when importing modules after test has completed (#​11885)
  • [jest-runtime] Error when ESM import is used after test is torn down (#​11885)

v27.2.0

Compare Source

Features
  • [jest-resolver, jest-runtime] Pass conditions to custom resolvers to enable them to implement support for package.json exports field (#​11859)
  • [jest-runtime] Allow custom envs to specify exportConditions which is passed together with Jest's own conditions to custom resolvers (#​11863)
Fixes
  • [@jest/reporters] Use async transform if available to transform files with no coverage (#​11852)
  • [jest-util] Return correct value from process.send stub (#​11799)

v27.1.1

Compare Source

Features
  • [jest-runtime] Add experimental, limited (and undocumented) support for mocking ECMAScript Modules (#​11818)
Fixes
  • [jest-resolver] Support node: prefix when importing Node core modules with ESM (#​11817)
  • [jest-types] Export the PrettyFormatOptions interface (#​11801)

v27.1.0

Compare Source

Features
  • [jest-haste-map] Use watchman suffix-set option for faster file indexing. (#​11784)
  • [jest-cli] Adds a new config options snapshotFormat which offers a way to override any of the formatting settings which come with pretty-format. (#​11654)
  • [jest-reporters] Expose the getSummary util (#​11695).
  • [jest-resolver] Support node: prefix when importing Node core modules (#​11331)
Fixes
  • [jest-each] Relaxed the validation to allow multibyte characters in headings (#​11575)
  • [jest-environment-jsdom] Add support for userAgent option (#​11773)
  • [jest-environment-node] Add Event and EventTarget to node global environment. (#​11727)
  • [jest-mock] Fix spyOn to use Object.prototype.hasOwnProperty (#​11721)
  • [jest-resolver] Add dependency on jest-haste-map (#​11759)
  • [jest-types] Compat with @types/node v16 (#​11645)
Chore & Maintenance
  • [docs] Correct expects.assertions documentation by adding async/await for asynchronous function.

v27.0.6

Compare Source

Fixes
  • [*] Publish all modules to include the build change in (#​11569)

v27.0.5

Compare Source

Features
  • [@jest/fake-timers] Flush callbacks scheduled with requestAnimationFrame every 16ms when using legacy timers. (#​11567)
  • [pretty-format] Use globalThis (with polyfill if required) to bring support for esbuild's browser bundling mode (#​11569)
Fixes
  • [jest-core] Support special characters like @, + and () on Windows with --findRelatedTests (#​11548)
  • [@jest/fake-timers] Do not add setImmediate and clearImmediate if they do not exist in the global environment (#​11599)
  • [@jest/reporters] Allow node-notifier@10 as peer dependency (#​11523)
  • [@jest/reporters] Update v8-to-istanbul (#​11523)

v27.0.2

Compare Source

Features
  • [jest-circus] Add some APIs to make it easier to build your own test runner
  • [jest-reporters] Expose the getResultHeader util (#​11460)
  • [jest-resolver] Export resolve* utils for different Jest modules (#​11466)
  • [@jest/test-result] Export Test, TestEvents and TestFileEvent (#​11466)
Fixes
  • [jest-circus] Add missing slash dependency (#​11465)
  • [jest-circus, @&#8203;jest/test-sequencer] Remove dependency on jest-runner (#​11466)
  • [jest-config] Resolve config.runner to absolute path (#​11465)
  • [jest-config] Make sure to support functions as config (#​11475)
  • [jest-core] Do not warn about DNSCHANNEL handles when using the --detectOpenHandles option (#​11470)
  • [jest-runner] Remove dependency on jest-config (#​11466)
  • [jest-worker] Loosen engine requirement to >= 10.13.0 (#​11451)

v27.0.1

Compare Source

Fixes
  • [jest-environment-jsdom] Bump version of JSDOM to avoid deprecated request package (#​11442)

v27.0.0

Compare Source

Features
  • [babel-jest] Add async transformation (#​11192)
  • [jest-changed-files] Use '--' to separate paths from revisions (#​11160)
  • [jest-circus] [BREAKING] Fail tests when multiple done() calls are made (#​10624)
  • [jest-circus, jest-jasmine2] [BREAKING] Fail the test instead of just warning when describe returns a value (#​10947)
  • [jest-config] [BREAKING] Default to Node testing environment instead of browser (JSDOM) (#​9874)
  • [jest-config] [BREAKING] Use jest-circus as default test runner (#​10686)
  • [jest-config] Add support for preset written in ESM (#​11200)
  • [jest-config, jest-runtime] Support ESM for files other than .js and .mjs (#​10823)
  • [jest-config, jest-runtime] [BREAKING] Use "modern" implementation as default for fake timers (#​10874 & #​11197)
  • [jest-config Allow passing forceNodeFilesystemAPI through to jest-haste-map (#​11264)
  • [jest-config, jest-haste-map, jest-resolve, jest-runner, jest-runtime, jest-test-sequencer, jest-transform, jest-types] [BREAKING] Add custom HasteMap class implementation config option (#​11107)
  • [jest-core] make TestWatcher extend emittery (#​10324)
  • [jest-core] Run failed tests interactively the same way we do with snapshots (#​10858)
  • [jest-core] more TestSequencer methods can be async (#​10980)
  • [jest-core] Add support for testSequencer written in ESM (#​11207)
  • [jest-core] Add support for globalSetup and globalTeardown written in ESM (#​11267)
  • [jest-core] Add support for watchPlugins written in ESM (#​11315)
  • [jest-core] Add support for runner written in ESM (#​11232)
  • [jest-core] Add support for reporters written in ESM (#​11427)
  • [jest-each] Add support for interpolation with object properties (#​11388)
  • [jest-environment-node] Add AbortController to globals (#​11182)
  • [@jest/fake-timers] Update to @sinonjs/fake-timers to v7 (#​11198)
  • [jest-haste-map] Handle injected scm clocks (#​10966)
  • [jest-haste-map] Add enableSymlinks configuration option to follow symlinks for test files (#​9351)
  • [jest-repl, jest-runner] [BREAKING] Run transforms over environment (#​8751)
  • [jest-repl] Add support for testEnvironment written in ESM (#​11232)
  • [jest-reporters] Add static filepath property to all reporters (#​11015)
  • [jest-runner] [BREAKING] set exit code to 1 if test logs after teardown (#​10728)
  • [jest-runner] [BREAKING] Run transforms over runner (#​8823)
  • [jest-runner] [BREAKING] Run transforms over testRunner (#​8823)
  • [jest-runner] Possibility to use ESM for test environment (11033)
  • [jest-runner] Add support for testRunner written in ESM (#​11232)
  • [jest-runtime] Detect reexports from CJS as named exports in ESM (#​10988)
  • [jest-runtime] Support for async code transformations (#​11191 & #​11220)
  • [jest-snapshot] [BREAKING] Make prettier optional for inline snapshots - fall back to string replacement (#​7792 & #​11192)
  • [jest-snapshot] [BREAKING] Run transforms over snapshotResolver (#​8829)
  • [jest-transform] Pass config options defined in Jest's config to transformer's process and getCacheKey functions (#​10926)
  • [jest-transform] Add support for transformers written in ESM (#​11163)
  • [jest-transform] [BREAKING] Do not export ScriptTransformer class, instead export the async function createScriptTransformer (#​11163)
  • [jest-transform] Async code transformations (#​9889)
  • [jest-transform] Support transpiled transformers (#​11193)
  • [jest-transform] [BREAKING] requireAndTranspileModule always return a Promise, and the third parameter type is changed to RequireAndTranspileModuleOptions which accept applyInteropRequireDefault option (#​11232)
  • [jest-transform] [BREAKING] createTranspilingRequire return function which return a Promise now (#​11232)
  • [jest-util] add requireOrImportModule for importing CJS or ESM (#​11199)
  • [jest-util] add applyInteropRequireDefault option on requireOrImportModule (#​11232)
  • [jest-watcher] Added support for clearing the line when <C-u> is pressed in a watch mode pattern prompt (#​11358)
  • [jest-worker] Add support for custom task queues and adds a PriorityQueue implementation. (#​10921)
  • [jest-worker] Add in-order scheduling policy to jest worker (10902)
  • [pretty-format] Better print for sparse arrays (11326)
  • [pretty-print] Add option printBasicPrototype which determines whether or not the prototype should be printed for raw objects or arrays (#​11441)
Fixes
  • [babel-plugin-jest-hoist] Add __dirname and __filename to whitelisted globals (#​10903)
  • [expect] [BREAKING] Revise expect.not.objectContaining() to be the inverse of expect.objectContaining(), as documented. (#​10708)
  • [expect] [BREAKING] Make toContain more strict with the received type (#​10119 & #​10929)
  • [expect] [BREAKING] matcherResult on JestAssertionError are now strings rather than functions (#​10989)
  • [jest-circus] Fixed the issue of beforeAll & afterAll hooks getting executed even if it is inside a skipped describe block (#​10806)
  • [jest-circus] Fix testLocation on Windows when using test.each (#​10871)
  • [jest-cli] Use testFailureExitCode when bailing from a failed test (#​10958)
  • [jest-cli] Print custom error if error thrown from global hooks is not an error already (#​11003)
  • [jest-cli] Allow running multiple "projects" from programmatic API (#​11307)
  • [jest-cli] Fix missing collectCoverage after init (#​11353)
  • [jest-cli, jest-config, jest-types] Move all default values into jest-config (#​9924)
  • [jest-config] [BREAKING] Change default file extension order by moving json behind ts and tsx (10572)
  • [jest-console] console.dir now respects the second argument correctly (#​10638)
  • [jest-core] Don't report PerformanceObserver as open handle (#​11123)
  • [jest-core] Use WeakRef to hold timers when detecting open handles (#​11277)
  • [jest-core] Correctly detect open handles that were created in test functions using done callbacks (#​11382)
  • [jest-core] Do not collect RANDOMBYTESREQUEST as open handles (#​11278)
  • [jest-core] Wait briefly for open handles to close before flagging them when using --detectOpenHandles (#​11429)
  • [jest-diff] [BREAKING] Use only named exports (#​11371)
  • [jest-each] [BREAKING] Ignore excess words in headings (#​8766)
  • [jest-each] Support array index with template strings (#​10763)
  • [jest-each] Interpolate %% correctly (#​11364)
  • [jest-each] Fix wrong interpolation when the value of array contains multiple % (#​11364)
  • [jest-environment] [BREAKING] Drop support for runScript for test environments (#​11155)
  • [jest-environment-jsdom] Use inner realm’s ArrayBuffer constructor (#​10885)
  • [jest-environment-jsdom] [BREAKING] Remove Node globals setImmediate and clearImmediate (#​11222)
  • [jest-get-type] [BREAKING] Convert to ES Module (#​11359)
  • [jest-globals] [BREAKING] Disallow return values other than a Promise from hooks and tests (#​10512)
  • [jest-globals] [BREAKING] Disallow mixing a done callback and returning a Promise from hooks and tests (#​10512)
  • [jest-haste-map] Vendor NodeWatcher from sane (#​10919)
  • [jest-jasmine2] Fixed the issue of beforeAll & afterAll hooks getting executed even if it is inside a skipped describe block when it has child tests marked as either only or todo (#​10806)
  • [jest-jasmine2] Fixed the issues of child tests marked with only or todo getting executed even if it is inside a skipped parent describe block (#​10806)
  • [jest-jasmine2] Wrap all test functions so they open handles that were created in test functions using done callbacks can be detected (#​11382)
  • [jest-reporter] Handle empty files when reporting code coverage with V8 (#​10819)
  • [jest-resolve] Replace read-pkg-up with escalade package (#​10781)
  • [jest-resolve] Disable jest-pnp-resolver for Yarn 2 (#​10847)
  • [jest-runtime] [BREAKING] Do not inject global variable into module wrapper (#​10644)
  • [jest-runtime] [BREAKING] remove long-deprecated jest.addMatchers, jest.resetModuleRegistry, and jest.runTimersToTime (#​9853)
  • [jest-runtime] Fix stack overflow and promise deadlock when importing mutual dependant ES module (#​10892)
  • [jest-runtime] Prevent global module registry from leaking into isolateModules registry (#​10963)
  • [jest-runtime] Refactor to prevent race condition when linking and evaluating ES Modules (#​11150)
  • [jest-runtime] Throw correct error when attempting to load ESM via require (#​11260)
  • [jest-runtime] Do not cache modules that throw during evaluation (#​11263)
  • [jest-transform] Show enhanced SyntaxError message for all SyntaxErrors (#​10749)
  • [jest-transform] [BREAKING] Refactor API to pass an options bag around rather than multiple boolean options (#​10753)
  • [jest-transform] [BREAKING] Refactor API of transformers to pass an options bag rather than separate config and other options (#​10834)
  • [jest-types] Fix Config.ts projects types (#​11285)
  • [jest-util] Replace micromatch with picomatch to fix issues with negated globs (#​11287)
  • [jest-validate] Use en-US locale to avoid case conversion problems while validating CLI options on machines with some certain locales(e.g. Turkish) set as default locale. (#​11412)
  • [jest-worker] [BREAKING] Use named exports (#​10623)
  • [jest-worker] Do not swallow errors during serialization (#​10984)
  • [jest-worker] Handle ERR_IPC_CHANNEL_CLOSED errors properly (#​11143)
  • [pretty-format] [BREAKING] Convert to ES Modules (#​10515)
  • [pretty-format] Only call hasAttribute if it's a function (#​11000)
  • [pretty-format] Handle jsdom attributes properly (#​11189)
  • [pretty-format] Import pretty-format using named imports (#​11360)
Chore & Maintenance
  • [*] [BREAKING] Only support Node LTS releases and Node 15 (#​10685)
  • [*] [BREAKING] Add exports field to all package.jsons (#​9921)
  • [*] Make it easier for Jest's packages to use the VM escape hatch (#​10824)
  • [*] [BREAKING] Remove deprecated mapCoverage (#​9968)
  • [babel-jest] [BREAKING] Migrate to ESM (#​11193)
  • [docs] Correct example using browser-resolve (#​11140)
  • [docs] Clarify timers configuration property (#​11376)
  • [jest, jest-core] [BREAKING] Replace TestScheduler export with createTestScheduler (#​11427)
  • [jest-config] [BREAKING] Remove enabledTestsMap config, use filter instead (#​10787)
  • [jest-console] [BREAKING] Move root into config and take GlobalConfig as mandatory parameter for getConsoleOutput (#​10126)
  • [jest-console] Export LogEntry (#​11017)
  • [jest-fake-timers] Clarify global behavior of jest.useFakeTimers and jest.useRealTimers (#​10867)
  • [jest-haste-map] [BREAKING] Migrate to ESM (#​10875)
  • [jest-haste-map] [BREAKING] Remove support for deprecated option ignorePattern as function (#​10348)
  • [jest-jasmine2] [BREAKING] Migrate to ESM (#​10906)
  • [jest-jasmine2] [BREAKING] Remove unused options argument from Env constructor (#​10240)
  • [jest-repl, jest-runtime] [BREAKING] Move the jest-runtime CLI into jest-repl (#​10016 & #​10925)
  • [jest-resolve] [BREAKING] Migrate to ESM (#​10688)
  • [jest-resolve-dependencies] [BREAKING] Migrate to ESM (#​10876)
  • [jest-mock] [BREAKING] Migrate to ESM (#​10887)
  • [jest-reporters] [BREAKING] Make node-notifier a peer dependency (#​10977)
  • [jest-resolve, jest-runtime] [BREAKING] Use Maps instead of objects for all cached resources (#​10968)
  • [jest-runner] [BREAKING] Migrate to ESM (#​10900)
  • [jest-runtime] [BREAKING] Remove deprecated and unused getSourceMapInfo from Runtime (#​9969)
  • [jest-transformer] [BREAKING] Remove unused isCoreModule option (#​11166)
  • [jest-util] No longer checking enumerable when adding process.domain (#​10862)
  • [jest-validate] [BREAKING] Remove recursiveBlacklist option in favor of previously introduced recursiveDenylist (#​10650)
  • [website] Replace 'Github' with 'GitHub' (#​11279)
  • [website] Remove a language code from the link to the Node.js website (#​11282)
  • [website] Remove a duplicated word (#​11281)
  • [website] Add french to website (#​11361)
Performance
  • [jest-resolve] Cache reading and parsing of package.jsons (#​11076)
  • [jest-runtime, jest-transform] share cacheFS between runtime and transformer (#​10901)
  • [jest-runtime] Load chalk only once per worker (#​10864)
  • [jest-worker] Fix memory leak of previous task arguments while no new task is scheduled (#​11187)
kulshekhar/ts-jest (ts-jest)

v29.2.5

Compare Source

v29.2.4

Compare Source

v29.2.3

Compare Source

v29.2.2

Compare Source

v29.2.1

Compare Source

v29.2.0

Compare Source

Bug Fixes
  • fix: don't show warning message with Node16/NodeNext (99c4f49), closes #​4266
Features
  • feat(cli): allow migrating cjs presets to transform config (22fb027)
  • feat(presets): add util functions to create ESM presets (06f78ed), close #​4200
  • feat(presets): add util functions to create CJS presets (f9cc3c0), close #​4200
Code refactoring
  • refactor: replace lodash deps with native js implementation (40f1708)
  • refactor: use TsJestTransformerOptions type everywhere possibly (7d001be)
  • refactor(cli): use new preset util functions to initialize test config (c2b56ca)
  • refactor(presets): use create preset util functions for cjs presets (922d6d0)
  • test: switch react-app to use Vite (827c8ad)

v29.1.5

Compare Source

v29.1.4

Compare Source

v29.1.3

Compare Source

v29.1.2

Compare Source

v29.1.1

Compare Source

Security Fixes
  • bump semver to 7.5.3

v29.1.0

Compare Source

Features
29.0.5 (2023-01-13)
Reverts
29.0.4 (2023-01-10)
Bug Fixes
29.0.3 (2022-09-28)
Bug Fixes
Features
  • add useESM option to pathsToModuleNameMapper options (#​3792) (eabe906)
29.0.2 (2022-09-23)
Bug Fixes
29.0.1 (2022-09-13)
Bug Fixes
  • legacy: include existing globals config in cached config (#​3803) (e79be47)
Features
  • add typings for ts-jest options via transform config (#​3805) (664b0f2)

v29.0.5

Compare Source

v29.0.4

Compare Source

v29.0.3

Compare Source

v29.0.2

Compare Source

v29.0.1

Compare Source

v29.0.0

Compare Source

Features
DEPRECATIONS
  • Define ts-jest config under globals is now deprecated. Please define the config via transformer config instead.
BREAKING CHANGES
  • Only Node 14, 16 and 18 are supported
  • Jest 29 is required.

v28.0.8

Compare Source

Bug Fixes

v28.0.7

Compare Source

Bug Fixes

v28.0.6

Compare Source

Bug Fixes

v28.0.5

Compare Source

Bug Fixes

v28.0.4

Compare Source

Bug Fixes

v28.0.3

Compare Source

Bug Fixes

v28.0.2

Compare Source

Bug Fixes

v28.0.1

Compare Source

Bug Fixes

v28.0.0

Compare Source

Bug Fixes
  • legacy invoke Babel processAsync for babel-jest in ESM mode instead of process (#​3430) (0d7356c)
Features
BREAKING CHANGES
  • path-mapping AST transformer is no longer shipped in ts-jest v28. Please use an alternative one like https://github.com/LeDDGroup/typescript-transform-paths instead.
  • Any imports ts-jest/dist/compiler/ts-compiler should change to ts-jest/dist/legacy/compiler/ts-compiler
  • Any imports ts-jest/dist/compiler/ts-jest-compiler should change to ts-jest/dist/legacy/compiler/ts-jest-compiler
  • Any imports ts-jest/dist/config/config-set should change to ts-jest/dist/legacy/config/config-set
  • Minimum support TypeScript version is now 4.3 since Jest 28 requires it.
  • Jest 28 is required.
  • core: Any imports ts-jest/utils should be replaced with ts-jest.
  • core: Starting from Jest 27.4, mocked has been integrated into Jest repo.
  • core: Support for Node.js v10 has been removed as Jest drops support for it.

27.1.5 (2022-05-17)

Bug Fixes

27.1.4 (2022-03-24)

Bug Fixes

27.1.3 (2022-01-14)

Bug Fixes
  • compiler: update memory cache for compiler using received file content (#​3194) (e4d9541)

27.1.2 (2021-12-15)

Bug Fixes
  • stimulate esbuild type to avoid importing esbuild directly (#​3147) (9ace0a9)

27.1.1 (2021-12-07)

Bug Fixes

v27.1.5

Compare Source

Bug Fixes

v27.1.4

Compare Source

Bug Fixes

v27.1.3

Compare Source

Bug Fixes
  • compiler: update memory cache for compiler using received file content (#​3194) (e4d9541)

v27.1.2

Compare Source

Bug Fixes
  • stimulate esbuild type to avoid importing esbuild directly (#​3147) (9ace0a9)

v27.1.1

Compare Source

Bug Fixes

v27.1.0

Compare Source

Features
Code Refactoring

DEPRECATIONS

27.0.7 (2021-10-16)

Bug Fixes

27.0.6 (2021-10-14)

Bug Fixes

27.0.5 (2021-08-14)

Bug Fixes
Code Refactoring

27.0.4 (2021-07-21)

Bug Fixes
  • add @types/jest as optional peerDependencies to solve yarn 2 (#​2756) (5fbf43e)
  • add babel-jest as optional peerDependencies to solve yarn 2 (#​2751) (8bede2e)
  • config: include AST transformer's name and version into cache key (#​2755) (310fb9a), closes #​2753
Features

27.0.3 (2021-06-06)

Bug Fixes
Features

27.0.2 (2021-05-30)

Bug Fixes

27.0.1 (2021-05-26)

Bug Fixes

v27.0.7

Compare Source

Bug Fixes

v27.0.6

Compare Source

Bug Fixes

v27.0.5

Compare Source

Bug Fixes
Code Refactoring

v27.0.4

Compare Source

Bug Fixes
  • add @types/jest as optional peerDependencies to solve yarn 2 (#​2756) (5fbf43e)
  • add babel-jest as optional peerDependencies to solve yarn 2 (#​2751) (8bede2e)
  • config: include AST transformer's name and version into cache key (#​2755) (310fb9a), closes #​2753
Features

v27.0.3

Compare Source

Bug Fixes
Features

v27.0.2

Compare Source

Bug Fixes

v27.0.1

Compare Source

Bug Fixes

v27.0.0

Compare Source

Bug Fixes
Features
Performance Improvements
  • reuse jest file system cache for isolatedModules: false (#​2189) (68f446b)
Code Refactoring

BREAKING CHANGES

import type { TsCompilerInstance } from 'ts-jest/dist/types'

export function factory(compilerInstance: TsCompilerInstance) {
   //...
}
  • One is currently using pathRegex should use exclude with glob patterns.
  • If one currently relies on type check for js files, please set checkJs: true in your tsconfig.
  • Now both isolatedModules: true and isolatedModule: false codes are in one single class TsCompiler which is an instance created in TsJestCompiler based on config option compiler with value typescript or ttypescript.
  • config: packageJson config option is not used in internal ts-jest so this option is now removed.
  • config: One is defining ast transformers in jest.config.js/package.json should change to
// jest.config.js
module.exports = {
   //...
   globals: {
      'ts-jest': {
         astTransformers: {
           before: ['your_before_transformer_path'],
           after: ['your_after_transformer_path'],
           afterDeclarations: ['your_afterDeclarations_transformer_path'],
         }
      }
   }
}

or

// package.json
{
  "jest": {
     "globals": {
        "ts-jest": {
           "astTransformers": {
              "before": ["your_before_transformer_path"],
              "after": ["your_after_transformer_path"],
              "afterDeclarations": ["your_afterDeclarations_transformer_path"]
           }
        }
     }
  }
}
  • One currently refers type in jest.config.js
/** @&#8203;typedef {import('ts-jest')} */
module.exports = {
  //...
}

should change to

/** @&#8203;typedef {import('ts-jest/dist/types')} */
module.exports = {
  //...
}
  • Remove possibilities to import mocked, createJestPreset, pathsToModuleNameMapper from package entry. One should change to
import { mocked, createJestPreset, pathsToModuleNameMapper } from 'ts-jest/utils'
  • config: One currently uses tsConfig should change to tsconfig in your jest.config.js or package.json.

26.5.6 (2021-05-05)

Code Refactoring
  • refactor(config): show warning message for sourceMap: false (#​2557) (cf60990).

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 MR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this MR and you won't be reminded about these updates again.


  • [ ] If you want to rebase/retry this MR, check this box

This MR has been generated by Renovate Bot.

Merge request reports

Loading