Skip to content

Update jest monorepo to v29 (major)

renovate-bot requested to merge renovate/major-jest-monorepo into master

This MR contains the following updates:

Package Type Update Change
@types/jest (source) devDependencies major ^24.0.15 -> ^29.0.0
jest (source) devDependencies major ^24.8 -> ^29.0.0

Release Notes

facebook/jest (jest)

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.1

Compare Source

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

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 algortihm 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.7

Compare Source

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

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.3

Compare Source

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

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.4

Compare Source

Fixes
  • [jest-config, jest-resolve] Pass in require.resolve to resolvers to resolve from correct base (#​11493)

v27.0.3

Compare Source

Fixes
  • [jest-config] require.resolve on default test sequencer and test environment (#​11482)
  • [jest-mock] Fixed fn and spyOn exports (#​11480)

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)

v26.6.3

Compare Source

Fixes
  • [jest-resolve-dependencies] Continue dependency resolution if mock dependency can't be found (#​10779)

v26.6.2

Compare Source

Features
  • [jest-core] Add findRelatedTests and nonFlagArgs in allowed config options for updateConfigAndRun in watch plugins (#​10659)
Fixes
  • [babel-plugin-jest-hoist] Preserve order of hoisted mock nodes within containing block (#​10536)
  • [babel-plugin-jest-hoist] Hoist pure constants to support experimental JSX transform in hoisted mocks (#​10723)
  • [babel-preset-jest] Update babel-preset-current-node-syntax to support top level await (#​10747)
  • [expect] Revert "Fix objectContaining to work recursively into sub-objects (#​10508)" (#​10766)
  • [jest-circus, jest-jasmine2] fix: don't assume stack is always a string (#​10697)
  • [jest-config] Fix bug introduced in watch mode by MR #​10678 (#​10692)
  • [jest-config] Throw correct error for missing preset modules (#​10737)
  • [jest-resolve-dependencies] Resolve mocks as dependencies (#​10713)
  • [jest-runtime] Handle file URLs in dynamic imports (#​10744)
  • [jest-runtime, babel-jest] Pass more ESM options to @jest/transform (#​10752)
  • [jest-runtime] Properly inject extraGlobals into the runtime (#​10758)
  • [jest-transform] Link to ESM docs on syntax errors (#​10748)
Chore & Maintenance
  • [docs] Add docs for using mocks in TypeScript (#​10415)
  • [eslint-config-fb-strict] Move package from this repo to fbjs repo (#​10739)
  • [examples] Update TypeScript example to show use of newer Jest types (#​10399)
  • [jest-cli] chore: standardize files and folder names (#​10698)
  • [jest-config] Switch ts-node Register type to Service due to deprecation (#​11210)

v26.6.1

Compare Source

Features
  • [jest-runtime] Support named exports from CommonJS as named ES Module imports (#​10673)
  • [jest-validate] Add support for recursiveDenylist option as an alternative to recursiveBlacklist (#​10236)
Fixes
  • [expect] Fix objectContaining to work recursively into sub-objects (#​10508)
  • [jest-cli, jest-core, jest-config, jest-types] Fix --onlyFailures flag to work in non-watch mode (#​10678)
  • [jest-config] Fix for the jest.config.ts compiler to not interfere with tsconfig.json files (#​10675)
  • [jest-message-util] Update to work properly with Node 15 (#​10660)
  • [jest-mock] Allow to mock methods in getters (TypeScript 3.9 export) (#​10156)

v26.6.0

Compare Source

Features
  • [jest-cli, jest-config] Add support for the jest.config.ts configuration file (#​10564)
Fixes
  • [jest-config] Simplify transform RegExp (#​10207)
  • [jest-fake-timers] Lazily instantiate mock timers (#​10551)
  • [jest-runtime] require.main is no longer undefined when using jest.resetModules (#​10626)
  • [@jest/types] Add missing values for timers (#​10632)
Chore & Maintenance
  • [docs] Add step for fetching backers.json file in website setup docs (#​10631)
  • [docs] Add page detailing environment variables set by Jest (#​10630)
  • [jest-circus] Refactor callAsyncCircusFn parameters (#​10629)

v26.5.3

Compare Source

Features
  • [jest-runtime] add support for dynamic import() from CommonJS (#​10620)
Fixes
  • [jest-runner, jest-runtime] require.main should not be undefined with createRequire() (#​10610)
  • [jest-runtime] add missing module.path property (#​10615)
  • [jest-runtime] Add mainModule instance variable to runtime (#​10621)
  • [jest-runtime] Evaluate Node core modules on dynamic import() (#​10622)
  • [jest-validate] Show suggestion only when unrecognized cli param is longer than 1 character (#​10604)
  • [jest-validate] Validate testURL as CLI option (#​10595)

v26.5.2

Compare Source

Fixes
  • [*] Revert usage of Escalade and rollback Yargs to v15 as it breaks Node 13 (#​10599)
  • [jest-circus] Setup globals before emitting setup, and include Jest globals in the setup payload (#​10598)
  • [jest-mock] Fix typings for mockResolvedValue, mockResolvedValueOnce, mockRejectedValue and mockRejectedValueOnce (#​10600)

v26.5.0

Compare Source

Features
  • [jest-circus, jest-config, jest-runtime] Add new injectGlobals config and CLI option to disable injecting global variables into the runtime (#​10484)
  • [jest-each] Fixes .each type to always be callable (#​10447)
  • [jest-runner] Add support for moduleLoaders with default exports (#​10541)
  • [@jest/create-cache-key-function] Added a new package for creating cache keys (#​10587)
Fixes
  • [jest-circus, jest-jasmine2] Find correct location for test.each tests (#​10413)
  • [jest-console] Add Console constructor to console object (#​10502)
  • [jest-globals] Fix lifecycle hook function types (#​10480)
  • [jest-runtime] Remove usage of vm.compileFunction due to a performance issue (#​10586)
Chore & Maintenance
  • [jest-resolve] Replace read-pkg-up with escalade package (10558)
  • [jest-environment-jsdom] Update jsdom to 16.4.0 (10578)

v26.4.2

Compare Source

Fixes
  • [expect] Fix toMatchObject to work with inherited class getters (#​10381)
  • [pretty-format] Lower minimum node version to >= 10 (#​10435)

v26.4.1

Compare Source

Fixes
  • [jest-core] Don't report ELDHistogram as open handle (#​10417)
  • [jest-matcher-utils] Fix diffing object contain readonly symbol key object (#​10414)
  • [jest-reporters] Fixes notify reporter on Linux (using notify-send) (#​10400)
  • [jest-snapshot] Correctly handles arrays and property matchers in snapshots (#​10404)

v26.4.0

Compare Source

Features
  • [jest-resolve] Add support for packageFilter on custom resolver (#​10393)
Fixes
  • [pretty-format] Handle tagName not being a string (#​10397)

v26.3.0

Compare Source

Features
  • [jest-circus, jest-jasmine2] Include failureDetails property in test results (#​9496)
  • [jest-each, jest-jasmine, jest-circus] Add support for .concurrent.each (#​9326)
Fixes
  • [jest-config] Add .pnp.js to transformIgnorePatterns defaults (#​10383)
  • [jest-leak-detector] Wait properly for GC runs due to changes in Node 14.7 (#​10366)
  • [jest-worker] Downgrade minimum node version to 10.13 (#​10352)
  • [docs] Update snapshot testing documentation(#​10359)

v26.2.2

Compare Source

Fixes
  • [jest-cli] Use correct file name to override existing jest config on init (#​10337)
  • [jest-haste-map] Properly detect support for native find (#​10346)

v26.2.1

Compare Source

Fixes
  • [jest-worker] Make sure to work with Node TS typings v12 (#​10336)

v26.2.0

Compare Source

Features
  • [jest-core, jest-circus, jest-reporter, jest-runner] Added support for reporting individual test cases using jest-circus (#​10227)
  • [jest-config, jest-reporter, jest-runner, jest-test-sequencer] Add slowTestThreshold configuration option (#​9366)
  • [jest-haste-map] Watchman crawler now includes dotfiles (#​10075)
  • [jest-worker] Added support for workers to send custom messages to parent in jest-worker (#​10293)
  • [jest-worker] Support passing resourceLimits (#​10335)
  • [pretty-format] Added support for serializing custom elements (web components) (#​10237)
Fixes
  • [expect] Match symbols and bigints in any() (#​10223)
  • [jest-changed-files] Use git diff instead of git log for --changedSince (#​10155)
  • [jest-console] Add missing console.timeLog for compatibility with Node (#​10209)
  • [jest-haste-map] Check find binary supports the -iname parameter (#​10308)
  • [jest-snapshot] Strip added indentation for inline error snapshots (#​10217)
Chore & Maintenance

v26.1.0

Compare Source

Features
  • [jest-mock] Export Mock, MockInstance, SpyInstance types (#​10138)
  • [jest-config] Support config files exporting (async) functions (#​10001)
  • [jest-cli, jest-core] Add --selectProjects CLI argument to filter test suites by project name (#​8612)
  • [jest-cli, jest-init] Add coverageProvider to jest --init prompts (#​10044)
Fixes
  • [jest-console] getConsoleOutput to receive global stack trace config and use it to format stack trace (#​10081)
  • [jest-jasmine2] Stop adding : after an error that has no message (#​9990)
  • [jest-diff] Control no diff message color with commonColor in diff options (#​9997)
  • [jest-snapshot] Fix TypeScript compilation (#​10008)
Chore & Maintenance
  • [docs] Correct confusing filename in enableAutomock example (#​10055)
  • [jest-core] 🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉 (#​10000)
  • [jest-core, jest-reporters, jest-test-result, jest-types] Cleanup displayName type (#​10049)
  • [jest-runtime] Jest-internal sandbox escape hatch (#​9907)
  • [jest-fake-timers] Update now param type to support Date in addition to number. (#​10169)
  • [docs] Add param to setSystemTime docs and remove preceding period from it and getRealSystemTime (#​10169)
  • [jest-snapshot, jest-util] Replace make-dir with fs.mkdir (#​10136)
  • [docs] Added parcel-bundler documentation inside readme.md file
Performance
  • [jest-core, jest-transform, jest-haste-map] Improve Jest startup time and test runtime, particularly when running with coverage, by caching micromatch and avoiding recreating RegExp instances (#​10131)

v26.0.1

Compare Source

Fixes
  • [jest-circus] Backward compatibility for deprecated DescribeBlock.tests to not break e.g. Detox reporter

v26.0.0

Compare Source

Features
  • [jest-environment-jsdom] [BREAKING] Upgrade jsdom to v16 (#​9606)
  • [@jest/fake-timers] Add possibility to use a modern implementation of fake timers, backed by @sinonjs/fake-timers (#​7776)
  • [jest-runtime] Add createMockFromModule as an alias for genMockFromModule (#​9962)
Fixes
  • [babel-jest] Handle null being passed to createTransformer (#​9955)
  • [jest-circus, jest-console, jest-jasmine2, jest-reporters, jest-util, pretty-format] Fix time durating formatting and consolidate time formatting code (#​9765)
  • [jest-circus] [BREAKING] Fail tests if a test takes a done callback and have return values (#​9129)
  • [jest-circus] [BREAKING] Throw a proper error if a test / hook is defined asynchronously (#​8096)
  • [jest-circus] Throw more descriptive error if hook is defined inside test (#​9957)
  • [jest-circus] [BREAKING] Align execution order of tests to match jasmine's top to bottom order (#​9965)
  • [jest-config, jest-resolve] [BREAKING] Remove support for browser field (#​9943)
  • [jest-haste-map] Stop reporting files as changed when they are only accessed (#​7347)
  • [jest-resolve] Show relative path from root dir for module not found errors (#​9963)
  • [jest-runtime] Fix absolute path moduleNameMapper + jest.mock bug (#​8727)
Chore & Maintenance
  • [*] [BREAKING] TypeScript definitions requires a minimum of TypeScript v3.8 (#​9823)
  • [*] [BREAKING] Drop support for Node 8 (#​9423)
  • [*] Upgrade to chalk@4 (#​9752)
  • [*] Remove usage of realpath-native (#​9952)
  • [docs] Fix example reference implementation to use Jest with Phabricator (#​8662)
  • [docs] Added default compiler to tranform (#​8583)
  • [docs] Updated Testing Frameworks guide with React; make it generic (#​9106)
  • [expect, jest-mock, pretty-format] [BREAKING] Remove build-es5 from package (#​9945)
  • [@jest/fake-timers, @&#8203;jest/environment] [BREAKING] Rename LolexFakeTimers to ModernFakeTimers (#​9960)
  • [jest-haste-map] [BREAKING] removed providesModuleNodeModules (#​8535)
  • [jest-runtime] [BREAKING] Remove long-deprecated require.requireActual and require.requireMock methods (#​9854)

v25.5.4

Compare Source

Fixes
  • [jest-jasmine2] Don't run beforeAll / afterAll in skipped describe blocks (#​9931)
Chore & Maintenance
  • [jest-runtime] Do not warn when mutating require.cache (#​9946)

v25.5.3

Compare Source

Chore & Maintenance
  • [jest-circus] Fix memory leak when running in band (#​9934)

v25.5.2

Compare Source

Fixes
  • [jest-globals] Export globals as values, not types (#​9925)

v25.5.1

Compare Source

Fixes
  • [jest-haste-map] Add missing @types/graceful-fs dependency (#​9913)
  • [jest-runner] Correctly serialize Set passed to worker (#​9915)
  • [jest-runtime] Vary ESM cache by query (#​9914)

v25.5.0

Compare Source

Features
  • [@jest/globals] New package so Jest's globals can be explicitly imported (#​9801)
  • [jest-core] Show coverage of sources related to tests in changed files (#​9769)
  • [jest-runtime] Populate require.cache (#​9841)
Fixes
  • [*] Use graceful-fs directly in every package instead of relying on fs being monkey patched (#​9443)
  • [expect] Prints the Symbol name into the error message with a custom asymmetric matcher (#​9888)
  • [jest-circus, jest-jasmine2] Support older version of jest-runtime (#​9903 & #​9842)
  • [@jest/environment] Make sure not to reference Jest types (#​9875)
  • [jest-message-util] Code frame printing should respect --noStackTrace flag (#​9866)
  • [jest-runtime] Support importing CJS from ESM using import statements (#​9850)
  • [jest-runtime] Support importing parallel dynamic imports (#​9858)
  • [jest-transform] Improve source map handling when instrumenting transformed code (#​9811)
Chore & Maintenance
  • [docs] Add an example for mocking non-default export class
Performance
  • [jest-resolve] Update resolve to a version using native realpath, which is faster than the default JS implementation (#​9872)
  • [jest-resolve] Pass custom cached realpath function to resolve (#​9873)
  • [jest-runtime] Add teardown method to clear any caches when tests complete (#​9906)
  • [jest-runtime] Do not pass files required internally through transformation when loading them (#​9900)
  • [jest-runtime] Use Maps instead of object literals as cache holders (#​9901)

v25.4.0

Compare Source

  • [expect] Support async functions in toThrow (#​9817)
  • [jest-console] Add code frame to console.error and console.warn (#​9741)
  • [jest-runtime, jest-jasmine2, jest-circus] Experimental, limited ECMAScript Modules support (#​9772 & #​9842)
Fixes
  • [expect] Restore support for passing functions to toHaveLength matcher (#​9796)
  • [jest-changed-files] --only-changed should include staged files (#​9799)
  • [jest-circus] Throw on nested test definitions (#​9828)
  • [jest-each] each will throw an error when called with too many arguments (#​9818)
  • [jest-runner] Don't print warning to stdout when using --json (#​9843)
Chore & Maintenance
  • [*] Do not generate TypeScript declaration source maps (#​9822)
  • [*] Transpile code for Node 8.3, not 8.0 (#​9827)

v25.3.0

Compare Source

Features
  • [babel-jest] Support passing supportsDynamicImport and supportsStaticESM (#​9766)
  • [babel-preset-jest] Enable all syntax plugins not enabled by default that works on current version of Node (#​9774)
  • [jest-circus] Enable writing async test event handlers (#​9397)
  • [jest-runtime, @&#8203;jest/transformer] Support passing supportsDynamicImport and supportsStaticESM (#​9597)
Chore & Maintenance
  • [*] Replace anys with unknowns (#​9626)
  • [@jest/transform] Expose type CacheKeyOptions for getCacheKey (#​9762)
  • [@jest/types] Correct type testRegex for ProjectConfig (#​9780)

v25.2.7

Compare Source

Fixes
  • [jest-matcher-utils] Replace accessors with values to avoid calling setters in object descriptors when computing diffs for error reporting (#​9757)
  • [@jest/watcher] Correct return type of shouldRunTestSuite for JestHookEmitter (#​9753)

v25.2.6

Compare Source

Chore & Maintenance
  • [*] 25.2.5 was published without changes from 25.2.4 - 25.2.6 includes all changes from that version.

v25.2.4

Compare Source

Features
  • [jest-message-util] Check for common errors when using the wrong test environment (#​8245)
Fixes
  • [jest-circus] Fix type elision of jest-runtime imports (#​9717)
  • [@jest/transform] Fix coverage reporter for uncovered files without transformers, reverting #​9460 (#​9724)

v25.2.3

Compare Source

Fixes
  • [*] Verify all packages are properly downleveled for older versions of TypeScript (#​9715)

v25.2.2

Compare Source

Fixes
  • [jest-environment-node] Remove getVmContext from Node env on older versions of Node (#​9708)
  • [jest-runtime] Return constructable class from require('module') (#​9711)

v25.2.1

Compare Source

Fixes
  • [*] Downlevel TypeScript definitions files for compatibility with TS<3.8 (#​9705)

v25.2.0

Compare Source

Features
  • [jest-config] Support ESM config files with .js extension (#​9573).
  • [jest-runtime] Override module.createRequire to return a Jest-compatible require function (#​9469)
  • [jest-haste-map] [BREAKING] Remove mapper option (#​9581)
  • [*] Support array of paths for moduleNameMapper aliases (#​9465)
  • [jest-reporters] Adds ability to pass options to the istanbul-reporter through coverageReporters (#​9572)
  • [jest-runtime] Require stack when a module cannot be resolved (#​9681)
  • [jest-transform] writeCacheFile no longer calls fsync (#​9695)
Fixes
  • [expect] Handle readonly properties correctly (#​9575)
  • [jest-cli] Set coverageProvider correctly when provided in config (#​9562)
  • [jest-cli] Allow specifying .cjs and .mjs config files by --config CLI option (#​9578)
  • [jest-cli] Update yargs to fix CLI flag overriding (#​9519)
  • [jest-config] Treat setupFilesAfterEnv like setupFiles when normalizing configs against presets (#​9495)
  • [jest-config] Support .mjs config files on Windows as well (#​9558)
  • [jest-config] Verify rootDir and all roots are directories (#​9569)
  • [jest-config] Ensure pattern of replacePosixSep is a string (#​9546)
  • [jest-haste-map] Fix crash on unix based systems without find (#​9579)
  • [jest-jasmine2] Fix --testNamePattern matching with concurrent tests (#​9090)
  • [jest-matcher-utils] Fix diff highlight of symbol-keyed object. (#​9499)
  • [@jest/reporters] Notifications should be fire&forget rather than having a timeout (#​9567)
  • [jest-resolve] Fix module identity preservation with symlinks and browser field resolution (#​9511)
  • [jest-resolve] Do not confuse directories with files (#​8912)
  • [jest-resolve] moduleNameMapper should take precedence over Node core modules (#​9563)
  • [jest-runtime] Reset isolateModules if it fails (#​9541)
  • [jest-runtime] Yarn PnP errors displayed to the user (#​9681)
  • [jest-snapshot] Downgrade semver to v6 to support node 8 (#​9451)
  • [jest-snapshot] Properly indent new snapshots in the presences of existing ones (#​9523)
  • [jest-transform] Correct sourcemap behavior for transformed and instrumented code (#​9460)
  • [jest-transform] Allow instrumentation of transformed files with weird file extensions (#​9589)
  • [@jest/types] Make ConfigGlobals an interface to allow for declaration merging. (#​9570)
  • [pretty-format] Export OldPlugin type (#​9491)
Chore & Maintenance
  • [docs] Warn about unexpected behavior / bug of node-notifier when using the notify options.
  • [docs] Grammatical corrections to Async docs page. (#​9679)
  • [jest-resolver] Use resolve package to implement custom module resolution (#​9520)
  • [jest-runtime] Move execution of setupFiles to jest-runner (#​9596)
  • [jest-runtime] Update anchor link in helpers (#​9616)
  • [@jest/reporters] Remove unused dependencies and type exports (#​9462)
  • [website] Update pictures of reports when matchers fail (#​9214)
Performance
  • [jest-haste-map] Reduce number of lstat calls in node crawler (#​9514)

v25.1.0

Compare Source

Features
  • [babel-plugin-jest-hoist] Show codeframe on static hoisting issues (#​8865)
  • [babel-plugin-jest-hoist] Add BigInt to ALLOWED_IDENTIFIERS (#​8382)
  • [babel-preset-jest] Add @babel/plugin-syntax-bigint (#​8382)
  • [expect] Add BigInt support to toBeGreaterThan, toBeGreaterThanOrEqual, toBeLessThan and toBeLessThanOrEqual (#​8382)
  • [expect, jest-matcher-utils] Display change counts in annotation lines (#​9035)
  • [expect, jest-snapshot] Support custom inline snapshot matchers (#​9278)
  • [jest-config] Throw the full error message and stack when a Jest preset is missing a dependency (#​8924)
  • [jest-config] [BREAKING] Set default display name color based on runner (#​8689)
  • [jest-config] Merge preset globals with project globals (#​9027)
  • [jest-config] Support .cjs config files (#​9291)
  • [jest-config] [BREAKING] Support .mjs config files (#​9431)
  • [jest-core] Support reporters as default exports (#​9161)
  • [jest-core] Support --findRelatedTests paths case insensitivity on Windows (#​8961)
  • [jest-diff] Add options for colors and symbols (#​8841)
  • [jest-diff] [BREAKING] Export as ECMAScript module (#​8873)
  • [jest-diff] Add includeChangeCounts and rename Indicator options (#​8881)
  • [jest-diff] Add changeColor and patchColor options (#​8911)
  • [jest-diff] Add trailingSpaceFormatter option and replace cyan with commonColor (#​8927)
  • [jest-diff] Add firstOrLastEmptyLineReplacement option and export 3 diffLines functions (#​8955)
  • [jest-environment] Add optional getVmContext next to runScript (#​9252 & #​9428)
  • [jest-environment-jsdom] Add fakeTimersLolex (#​8925)
  • [jest-environment-node] Add fakeTimersLolex (#​8925)
  • [jest-environment-node] Add queueMicrotask (#​9140)
  • [jest-environment-node] Implement getVmContext (#​9252 & #​9428)
  • [@jest/fake-timers] Add Lolex as implementation of fake timers (#​8897)
  • [jest-get-type] Add BigInt support. (#​8382)
  • [jest-matcher-utils] Add BigInt support to ensureNumbers ensureActualIsNumber, ensureExpectedIsNumber (#​8382)
  • [jest-matcher-utils] Ignore highlighting matched asymmetricMatcher in diffs (#​9257)
  • [jest-reporters] Export utils for path formatting (#​9162)
  • [jest-reporters] Provides global coverage thresholds as watermarks for istanbul (#​9416)
  • [jest-runner] Warn if a worker had to be force exited (#​8206)
  • [jest-runtime] [BREAKING] Do not export ScriptTransformer - it can be imported from @jest/transform instead (#​9256)
  • [jest-runtime] Use JestEnvironment.getVmContext and vm.compileFunction if available to avoid the module wrapper (#​9252 & #​9428)
  • [jest-snapshot] Display change counts in annotation lines (#​8982)
  • [jest-snapshot] [BREAKING] Improve report when the matcher has properties (#​9104)
  • [jest-snapshot] Improve colors when snapshots are updatable (#​9132)
  • [jest-snapshot] Ignore indentation for most serialized objects (#​9203)
  • [jest-transform] Create createTranspilingRequire function for easy transpiling modules (#​9194)
  • [jest-transform] [BREAKING] Return transformed code as a string, do not wrap in vm.Script (#​9253)
  • [@jest/test-result] Create method to create empty TestResult (#​8867)
  • [jest-worker] [BREAKING] Return a promise from end(), resolving with the information whether workers exited gracefully (#​8206)
  • [jest-reporters] Transform file paths into hyperlinks (#​8980)
Fixes
  • [expect] Display expectedDiff more carefully in toBeCloseTo (#​8389)
  • [expect] Avoid incorrect difference for subset when toMatchObject fails (#​9005)
  • [expect] Consider all RegExp flags for equality (#​9167)
  • [expect] [BREAKING] Consider primitives different from wrappers instantiated with new (#​9167)
  • [expect] Prevent maintaining RegExp state between multiple tests (#​9289)
  • [expect] Fix subsetEquality false circular reference detection (#​9322)
  • [jest-config] Use half of the available cores when watchAll mode is enabled (#​9117)
  • [jest-config] Fix Jest multi project runner still cannot handle exactly one project (#​8894)
  • [jest-console] Add missing console.group calls to NullConsole (#​9024)
  • [jest-core] Don't include unref'd timers in --detectOpenHandles results (#​8941)
  • [jest-core] Limit number of workers when creating haste maps in projects (#​9259)
  • [jest-diff] Do not inverse format if line consists of one change (#​8903)
  • [jest-diff] Rename some new options and change their default values (#​9077)
  • [jest-environment-node] Fix TextEncoder.encode not referencing same global Uint8Array constructor (#​9261)
  • [jest-fake-timers] getTimerCount will not include cancelled immediates (#​8764)
  • [jest-fake-timers] Support util.promisify on setTimeout (#​9180)
  • [jest-jasmine2, jest-circus] Improve error message format for Node's assert.fail (#​9262)
  • [jest-leak-detector] [BREAKING] Use weak-napi instead of weak package (#​8686)
  • [jest-mock] Fix for mockReturnValue overriding mockImplementationOnce (#​8398)
  • [jest-reporters] Make node-notifier an optional dependency (#​8918)
  • [jest-reporters] Make all arguments to methods on BaseReporter optional (#​9159)
  • [jest-resolve]: Set MODULE_NOT_FOUND as error code when module is not resolved from paths (#​8487)
  • [jest-resolve-dependencies] Handle dynamic dependencies correctly even when using module maps (#​9303)
  • [jest-snapshot] Remove only the added newlines in multiline snapshots (#​8859)
  • [jest-snapshot] Distinguish empty string from external snapshot not written (#​8880)
  • [jest-snapshot] [BREAKING] Distinguish empty string from internal snapshot not written (#​8898)
  • [jest-snapshot] [BREAKING] Remove report method and throw matcher errors (#​9049)
  • [jest-snapshot] Omit irrelevant received properties when property matchers fail (#​9198)
  • [jest-transform] Properly cache transformed files across tests (#​8890)
  • [jest-transform] Don't fail the test suite when a generated source map is invalid (#​9058)
  • [jest-types] [BREAKING] Use less null | undefined in config types (#​9200)
  • [jest-util] Allow querying process.domain (#​9136)
  • [pretty-format] Correctly detect memoized elements (#​9196)
  • [pretty-format] Fix pretty-format to respect displayName on forwardRef (#​9422)
Chore & Maintenance
  • [*] [BREAKING] Drop support for Node 6 (#​8455)
  • [*] Add Node 12 to CI (#​8411)
  • [*] [BREAKING] Upgrade to Micromatch v4 (#​8852)
  • [babel-plugin-jest-hoist] [BREAKING] Use ESM exports (#​8874)
  • [docs] Add alias and optional boolean value to coverage CLI Reference (#​8996)
  • [docs] Fix broken link pointing to legacy JS file in "Snapshot Testing".
  • [docs] Add setupFilesAfterEnv and jest.setTimeout example (#​8971)
  • [expect] Test that toStrictEqual is equivalent to Node's assert.deepStrictEqual (#​9167)
  • [jest] [BREAKING] Use ESM exports (#​8874)
  • [jest-cli] [BREAKING] Use ESM exports (#​8874)
  • [jest-cli] [BREAKING] Remove re-exports from @jest/core (#​8874)
  • [jest-diff] Remove the need to export splitLines0 function (#​9151)
  • [jest-environment-jsdom] [BREAKING] Upgrade JSDOM from v11 to v15 (#​8851)
  • [jest-haste-map] Upgrade to fsevents@2 (#​9215)
  • [jest-reporters] [BREAKING] Upgrade Istanbul dependencies, which are used for code coverage (#​9192)
  • [jest-util] [BREAKING] Remove deprecated exports (#​8863)
  • [jest-validate] [BREAKING] Use ESM exports (#​8874)
  • [jest-types] Mark InitialOptions as Partial (#​8848)
  • [jest-config] Refactor normalize to be more type safe (#​8848)

v25.0.0

Compare Source


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.

Edited by renovate-bot

Merge request reports