Skip to content

chore(deps): update jest monorepo to v30 (major)#329

Open
smartway-bot[bot] wants to merge 1 commit into
mainfrom
renovate/major-jest-monorepo
Open

chore(deps): update jest monorepo to v30 (major)#329
smartway-bot[bot] wants to merge 1 commit into
mainfrom
renovate/major-jest-monorepo

Conversation

@smartway-bot
Copy link
Copy Markdown
Contributor

@smartway-bot smartway-bot Bot commented Jun 23, 2025

Note: This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
@types/jest (source) ^29.5.12 -> ^30.0.0 age adoption passing confidence
jest (source) ^29.7.0 -> ^30.0.0 age adoption passing confidence

Release Notes

jestjs/jest (jest)

v30.4.2

Compare Source

Fixes

  • [jest-runtime] Fix named imports from CJS modules whose module.exports is a function with own-property exports (#​16150)

Full Changelog: jestjs/jest@v30.4.1...v30.4.2

v30.4.1

Compare Source

Features

  • [jest-config, jest-core, jest-runner, jest-schemas, jest-types] Allow custom runner configuration options via tuple format ['runner-path', {options}] (#​16141)

Fixes

  • [jest-runtime] Align CJS-from-ESM default export with Node: module.exports is always the ESM default, __esModule unwrapping is no longer applied (#​16143)

Full Changelog: jestjs/jest@v30.4.0...v30.4.1

v30.4.0

Compare Source

Big release! 😀

Main feature is a rewrite of our custom runtime in preparation for stabilisation of native support of ESM. As part of that work require(esm) module is now supported on Node 24.9+ (still requires --experimental-vm-modules like before).

In addition we now support fake timers for the recently released Temporal API in Node v26.

React 19 is also supported properly in pretty-format, meaning snapshots of React components now work like they should.

Due to all the changes, there might be regressions that snuck in. Please report them!

Full list of changes below

Features

  • [babel-jest] Support collecting coverage from .mts, .cts (and other) files (#​15994)
  • [jest-circus, jest-cli, jest-config, jest-core, jest-jasmine2, jest-types] Add --collect-tests flag to discover and list tests without executing them (#​16006)
  • [jest-config, jest-runner, jest-worker] Add workerGracefulExitTimeout config option to control how long workers are given to exit before being force-killed (#​15984)
  • [jest-config] Add support for jest.config.mts as a valid configuration file (#​16005)
  • [jest-config, jest-core, jest-reporters, jest-runner] verbose and silent can now be set per-project; the project-level value overrides the global value for that project's tests (#​16133)
  • [@jest/fake-timers] Accept Temporal.Duration in jest.advanceTimersByTime() and jest.advanceTimersByTimeAsync() (#​16128)
  • [@jest/fake-timers] Accept Temporal.Instant and Temporal.ZonedDateTime in jest.setSystemTime() and useFakeTimers({now}) (#​16128)
  • [@jest/fake-timers] Support faking Temporal.Now.* (#​16131)
  • [jest-mock] Add clearMocksOnScope(scope) on ModuleMocker for clearing every mock function exposed on a scope object (#​16088)
  • [jest-resolve] Add canResolveSync() on Resolver so callers can detect when a user-configured resolver only exports an async hook (#​16064)
  • [jest-runtime] Use synchronous evaluate() for ES modules without top-level await on Node versions that support it (v24.9+), and prefer the synchronous transform path when a sync transformer is configured (#​16062)
  • [jest-runtime] Support require() of ES modules on Node v24.9+ (#​16074)
  • [jest-runtime] Validate TC39 import attributes (with { type: 'json' }) on ESM imports (#​16127)
  • [@jest/transform] Add canTransformSync(filename) on ScriptTransformer so callers can pick the sync vs async transform path (#​16062)
  • [jest-util] Add isError helper (#​16076)
  • [pretty-format] Support React 19 (#​16123)

Fixes

  • [expect-utils] Fix toStrictEqual failing on structuredClone results due to cross-realm constructor mismatch (#​15959)
  • [@jest/expect-utils] Prevent toMatchObject/subset matching from throwing when encountering exotic iterables (#​15952)
  • [fake-timers] Convert Date to milliseconds before passing to @sinonjs/fake-timers (#​16029)
  • [jest] Export GlobalConfig and ProjectConfig TypeScript types (#​16132)
  • [jest-circus] Prevent crash when asyncError is undefined for non-Error throws (#​16003)
  • [jest-circus, jest-jasmine2] Include Error.cause in JSON failureMessages output (#​15967)
  • [jest-config] Fix preset path resolution on Windows when the preset uses subpath exports (#​15961)
  • [jest-config] Allow collectCoverage and coverageProvider in project config without a validation warning (#​16132)
  • [jest-config] Project config validator now emits "is not supported in an individual project configuration" instead of "probably a typing mistake" for known global-only options (#​16132)
  • [jest-environment-node] Fix --localstorage-file warning on Node 25+ (#​16086)
  • [jest-reporters] Apply global coverage threshold to unmatched pattern files in addition to glob/path thresholds (#​16137)
  • [jest-reporters, jest-runner, jest-runtime, jest-transform] Fix coverage report not showing correct code coverage when using projects config option (#​16140)
  • [jest-runtime] Resolve expect and @jest/expect from the internal module registry so test-file imports share the same JestAssertionError as the global expect (#​16130)
  • [jest-runtime] Improve CJS-from-ESM interop: __esModule/Babel default unwrap, broader named-export coverage, and shared CJS singleton across importers (#​16050)
  • [jest-runtime] Load .js files with ESM syntax but no "type":"module" marker as native ESM (#​16050)
  • [jest-runtime] Extend the .js-with-ESM-syntax fallback to require() on Node v24.9+ - falls back to require(esm) when the CJS parser rejects ESM syntax (#​16078)
  • [jest-runtime] Fix deadlocks and double-evaluation in concurrent ESM and wasm imports (#​16050)
  • [jest-runtime] Fix error when require() is called after the Jest environment has been torn down (#​15951)
  • [jest-runtime] Fix missing error when import() is called after the Jest environment has been torn down (#​16080)
  • [jest-runtime] Fix virtual unstable_mockModule registrations not respected in ESM (#​16081)
  • [jest-runtime] Apply moduleNameMapper when resolving modules with require.resolve() and the paths option (#​16135)

Chore & Maintenance

  • [@jest/fake-timers] Upgrade @sinonjs/fake-timers (#​16139)
  • [jest-runtime] Use synchronous linkRequests / instantiate for ESM linking on Node v24.9+ (#​16063)

New Contributors

Full Changelog: jestjs/jest@v30.3.0...v30.4.0

v30.3.0

Compare Source

Features
  • [jest-config] Add defineConfig and mergeConfig helpers for type-safe Jest config (#​15844)
  • [jest-fake-timers] Add setTimerTickMode to configure how timers advance
  • [*] Reduce token usage when run through LLMs (3f17932)
Fixes
  • [jest-config] Keep CLI coverage output when using --json with --outputFile (#​15918)
  • [jest-mock] Use Symbol from test environment (#​15858)
  • [jest-reporters] Fix issue where console output not displayed for GHA reporter even with silent: false option (#​15864)
  • [jest-runtime] Fix issue where user cannot utilize dynamic import despite specifying --experimental-vm-modules Node option (#​15842)
  • [jest-test-sequencer] Fix issue where failed tests due to compilation errors not getting re-executed even with --onlyFailures CLI option (#​15851)
  • [jest-util] Make sure process.features.require_module is false (#​15867)
Chore & Maintenance
  • [*] Replace remaining micromatch uses with picomatch
  • [deps] Update to sinon/fake-timers v15
  • [docs] Update V30 migration guide to notify users on jest.mock() work with case-sensitive path (#​15849)
  • Updated Twitter icon to match the latest brand guidelines (#​15869)

v30.2.0: 30.2.0

Compare Source

Chore & Maintenance
  • [*] Update example repo for testing React Native projects (#​15832)
  • [*] Update jest-watch-typeahead to v3 (#​15830)

Features

  • [jest-environment-jsdom-abstract] Add support for JSDOM v27 (#​15834)
Fixes
  • [babel-jest] Export the TransformerConfig interface (#​15820)
  • [jest-config] Fix jest.config.ts with TS loader specified in docblock pragma (#​15839)

v30.1.3: 30.1.3

Compare Source

Fixes
  • Fix unstable_mockModule with node: prefixed core modules.

v30.1.2: 30.1.2

Compare Source

Fixes
  • [jest-snapshot-utils] Correct snapshot header regexp to work with newline across OSes (#​15803)

v30.1.1: 30.1.1

Compare Source

Fixes
  • [jest-snapshot-utils] Fix deprecated goo.gl snapshot warning not handling Windows end-of-line sequences (#​15800)

v30.1.0: 30.1.0

Compare Source

Features

  • [jest-leak-detector] Configurable GC aggressiveness regarding to V8 heap snapshot generation (#​15793)
  • [jest-runtime] Reduce redundant ReferenceError messages
  • [jest-core] Include test modules that failed to load when --onlyFailures is active
Fixes
  • `[jest-snapshot-utils] Fix deprecated goo.gl snapshot guide link not getting replaced with fully canonical URL (#​15787)
  • [jest-circus] Fix it.concurrent not working with describe.skip (#​15765)
  • [jest-snapshot] Fix mangled inline snapshot updates when used with Prettier 3 and CRLF line endings
  • [jest-runtime] Importing from @jest/globals in more than one file no longer breaks relative paths (#​15772)

Chore

  • [expect] Update docblock for toContain() to display info on substring check (#​15789)

v30.0.5

Compare Source

v30.0.4

Compare Source

v30.0.3

Compare Source

v30.0.2: 30.0.2

Compare Source

What's Changed

Fixes
  • [jest-matcher-utils] Make 'deepCyclicCopyObject' safer by setting descriptors to a null-prototype object (#​15689)
  • [jest-util] Make garbage collection protection property writable (#​15689)

Full Changelog: https://github.com/jestjs/jest/blob/main/CHANGELOG.md

v30.0.1: Jest 30.0.1

Compare Source

What's Changed

Features
  • [jest-resolver] Implement the defaultAsyncResolver (#​15679)
Fixes
  • [jest-resolver] Resolve builtin modules correctly (#​15683)
  • [jest-environment-node, jest-util] Avoid setting globals cleanup protection symbol when feature is off (#​15684)
Chore & Maintenance
  • [*] Remove and deprecate jest-repl package (#​15673)
  • [jest-resolver] Replace custom isBuiltinModule with node's isBuiltin (#​15685)

New Contributors

Full Changelog: https://github.com/jestjs/jest/blob/main/CHANGELOG.md

v30.0.0: Jest 30

Compare Source

Today we are happy to announce the release of Jest 30. This release features a substantial number of changes, fixes, and improvements. While it is one of the largest major releases of Jest ever, we admit that three years for a major release is too long. In the future, we are aiming to make more frequent major releases to keep Jest great for the next decade.

If you want to skip all the news and just get going, run npm install jest@^30.0.0 and follow the migration guide: Upgrading from Jest 29 to 30.

Read the full blog post

Features
  • [*] Renamed globalsCleanupMode to globalsCleanup and --waitNextEventLoopTurnForUnhandledRejectionEvents to --waitForUnhandledRejections
  • [expect] Add ArrayOf asymmetric matcher for validating array elements. (#​15567)
  • [babel-jest] Add option excludeJestPreset to allow opting out of babel-preset-jest (#​15164)
  • [expect] Revert #​15038 to fix expect(fn).toHaveBeenCalledWith(expect.objectContaining(...)) when there are multiple calls (#​15508)
  • [jest-circus, jest-cli, jest-config] Add waitNextEventLoopTurnForUnhandledRejectionEvents flag to minimise performance impact of correct detection of unhandled promise rejections introduced in #​14315 (#​14681)
  • [jest-circus] Add a waitBeforeRetry option to jest.retryTimes (#​14738)
  • [jest-circus] Add a retryImmediately option to jest.retryTimes (#​14696)
  • [jest-circus, jest-jasmine2] Allow setupFilesAfterEnv to export an async function (#​10962)
  • [jest-circus, jest-test-result] Add startedAt timestamp in TestCaseResultObject within onTestCaseResult (#​15145)
  • [jest-cli] Export buildArgv (#​15310)
  • [jest-config] [BREAKING] Add mts and cts to default moduleFileExtensions config (#​14369)
  • [jest-config] [BREAKING] Update testMatch and testRegex default option for supporting mjs, cjs, mts, and cts (#​14584)
  • [jest-config] Loads config file from provided path in package.json (#​14044)
  • [jest-config] Allow loading jest.config.cts files (#​14070)
  • [jest-config] Show rootDir in error message when a preset fails to load (#​15194)
  • [jest-config] Support loading TS config files using esbuild-register via docblock loader (#​15190)
  • [jest-config] Allow passing TS config loader options via docblock comment (#​15234)
  • [jest-config] If Node is running with type stripping enabled, do not require a TS loader (#​15480)
  • [@jest/core] Group together open handles with the same stack trace (#​13417, & #​14789)
  • [@jest/core] Add perfStats to surface test setup overhead (#​14622)
  • [@jest/core] [BREAKING] Changed --filter to accept an object with shape { filtered: Array<string> } to match documentation (#​13319)
  • [@jest/core] Support --outputFile option for --listTests (#​14980)
  • [@jest/core] Stringify Errors properly with --json flag (#​15329)
  • [@jest/core, @&#8203;jest/test-sequencer] [BREAKING] Exposes globalConfig & contexts to TestSequencer (#​14535, & #​14543)
  • [jest-each] Introduce %$ option to add number of the test to its title (#​14710)
  • [@jest/environment] [BREAKING] Remove deprecated jest.genMockFromModule() (#​15042)
  • [@jest/environment] [BREAKING] Remove unnecessary defensive code (#​15045)
  • [jest-environment-jsdom] [BREAKING] Upgrade JSDOM to v22 (#​13825)
  • [@jest/environment-jsdom-abstract] Introduce new package which abstracts over the jsdom environment, allowing usage of custom versions of JSDOM (#​14717)
  • [jest-environment-node] Update jest environment with dispose symbols Symbol (#​14888 & #​14909)
  • [expect, @&#8203;jest/expect] [BREAKING] Add type inference for function parameters in CalledWith assertions (#​15129)
  • [@jest/expect-utils] Properly compare all types of TypedArrays (#​15178)
  • [@jest/fake-timers] [BREAKING] Upgrade @sinonjs/fake-timers to v13 (#​14544 & #​15470)
  • [@jest/fake-timers] Exposing new modern timers function advanceTimersToFrame() which advances all timers by the needed milliseconds to execute callbacks currently scheduled with requestAnimationFrame (#​14598)
  • [jest-matcher-utils] Add SERIALIZABLE_PROPERTIES to allow custom serialization of objects (#​14893)
  • [jest-mock] Add support for the Explicit Resource Management proposal to use the using keyword with jest.spyOn(object, methodName) (#​14895)
  • [jest-reporters] Add support for DEC mode 2026 (#​15008)
  • [jest-resolver] Support file:// URLs as paths (#​15154)
  • [jest-resolve,jest-runtime,jest-resolve-dependencies] Pass the conditions when resolving stub modules (#​15489)
  • [jest-runtime] Exposing new modern timers function jest.advanceTimersToFrame() from @jest/fake-timers (#​14598)
  • [jest-runtime] Support import.meta.filename and import.meta.dirname (available from Node 20.11) (#​14854)
  • [jest-runtime] Support import.meta.resolve (#​14930)
  • [jest-runtime] [BREAKING] Make it mandatory to pass globalConfig to the Runtime constructor (#​15044)
  • [jest-runtime] Add unstable_unmockModule (#​15080)
  • [jest-runtime] Add onGenerateMock transformer callback for auto generated callbacks (#​15433 & #​15482)
  • [jest-runtime] [BREAKING] Use vm.compileFunction over vm.Script (#​15461)
  • [@jest/schemas] Upgrade @sinclair/typebox to v0.34 (#​15450)
  • [@jest/types] test.each(): Accept a readonly (as const) table properly (#​14565)
  • [@jest/types] Improve argument type inference passed to test and describe callback functions from each tables (#​14920)
  • [jest-snapshot] [BREAKING] Add support for Error causes in snapshots (#​13965)
  • [jest-snapshot] Support Prettier 3 (#​14566)
  • [@jest/util-snapshot] Extract utils used by tooling from jest-snapshot into its own package (#​15095)
  • [pretty-format] [BREAKING] Do not render empty string children ('') in React plugin (#​14470)
Fixes
  • [expect] Show AggregateError to display (#​15346)
  • [*] Replace exit with exit-x (#​15399)
  • [babel-plugin-jest-hoist] Use denylist instead of the deprecated blacklist for Babel 8 support (#​14109)
  • [babel-plugin-jest-hoist] Do not rely on buggy Babel behaviour (#​15415)
  • [expect] Check error instance type for toThrow/toThrowError (#​14576)
  • [expect] Improve diff for failing expect.objectContaining (#​15038)
  • [expect] Use Array.isArray to check if an array is an Array (#​15101)
  • [expect] Fix Error cause assertion errors (#​15339)
  • [jest-changed-files] Print underlying errors when VCS commands fail (#​15052)
  • [jest-changed-files] Abort sl root call if output resembles a steam locomotive (#​15053)
  • [jest-circus] [BREAKING] Prevent false test failures caused by promise rejections handled asynchronously (#​14315)
  • [jest-circus] Replace recursive makeTestResults implementation with iterative one (#​14760)
  • [jest-circus] Omit expect.hasAssertions() errors if a test already has errors (#​14866)
  • [jest-circus, jest-expect, jest-snapshot] Pass test.failing tests when containing failing snapshot matchers (#​14313)
  • [jest-circus] Concurrent tests now emit jest circus events at the correct point and in the expected order. (#​15381)
  • [jest-cli] [BREAKING] Validate CLI flags that require arguments receives them (#​14783)
  • [jest-config] Make sure to respect runInBand option (#​14578)
  • [jest-config] Support testTimeout in project config (#​14697)
  • [jest-config] Support coverageReporters in project config (#​14697)
  • [jest-config] Allow reporters in project config (#​14768)
  • [jest-config] Allow Node16/NodeNext/Bundler moduleResolution in project's tsconfig (#​14739)
  • [@jest/create-cache-key-function] Correct the return type of createCacheKey (#​15159)
  • [jest-each] Allow $keypath templates with null or undefined values (#​14831)
  • [@jest/expect-utils] Fix comparison of DataView (#​14408)
  • [@jest/expect-utils] [BREAKING] exclude non-enumerable in object matching (#​14670)
  • [@jest/expect-utils] Fix comparison of URL (#​14672)
  • [@jest/expect-utils] Check Symbol properties in equality (#​14688)
  • [@jest/expect-utils] Catch circular references within arrays when matching objects (#​14894)
  • [@jest/expect-utils] Fix not addressing to Sets and Maps as objects without keys (#​14873)
  • [jest-haste-map] Fix errors or clobbering with multiple hasteImplModulePaths (#​15522)
  • [jest-leak-detector] Make leak-detector more aggressive when running GC (#​14526)
  • [jest-runtime] Properly handle re-exported native modules in ESM via CJS (#​14589)
  • [jest-runtime] Refactor _importCoreModel so required core module is consistent if modified while loading (#​15077)
  • [jest-schemas, jest-types] [BREAKING] Fix type of testFailureExitCode config option(#​15232)
  • [jest-util] Make sure isInteractive works in a browser (#​14552)
  • [pretty-format] [BREAKING] Print ArrayBuffer and DataView correctly (#​14290)
  • [pretty-format] Fixed a bug where "anonymous custom elements" were not being printed as expected. (#​15138)
  • [jest-cli] When specifying paths on the command line, only match against the relative paths of the test files (#​12519)
    • [BREAKING] Changes testPathPattern configuration option to testPathPatterns, which now takes a list of patterns instead of the regex.
    • [BREAKING] --testPathPattern is now --testPathPatterns
    • [BREAKING] Specifying testPathPatterns when programmatically calling watch must be specified as new TestPathPatterns(patterns), where TestPathPatterns can be imported from @jest/pattern
  • [jest-reporters, jest-runner] Unhandled errors without stack get correctly logged to console (#​14619)
  • [jest-util] Always load mjs files with import (#​15447)
  • [jest-worker] Properly handle a circular reference error when worker tries to send an assertion fails where either the expected or actual value is circular (#​15191)
  • [jest-worker] Properly handle a BigInt when worker tries to send an assertion fails where either the expected or actual value is BigInt (#​15191)
  • [expect] Resolve issue where ObjectContaining matched non-object values. ([#​15463])(#​15463).
    • Adds a conditional/check to ensure the argument passed to expect is an object.
    • Add unit tests for new ObjectContaining behavior.
    • Remove invalid/wrong test case assertions for ObjectContaining.
  • [jest-worker] Addresses incorrect state on exit (#​15610)
Performance
  • [*] [BREAKING] Bundle all of Jest's modules into index.js (#​12348, #​14550 & #​14661)
  • [jest-haste-map] Only spawn one process to check for watchman installation (#​14826)
  • [jest-runner] Better cleanup source-map-support after test to resolve (minor) memory leak (#​15233)
  • [jest-circus, jest-environment-node, jest-repl, jest-runner, jest-util] Cleanup global variables on environment teardown to reduce memory leaks (#​15215 & #​15636 & #​15643)
Chore & Maintenance
  • [jest-environment-jsdom, jest-environment-jsdom-abstract] Increased version of jsdom to ^26.0.0 (#​15325CVE-2024-37890)
  • [*] Increase version of micromatch to ^4.0.7 (#​15082)
  • [*] [BREAKING] Drop support for Node.js versions 14, 16, 19, 21 and 23 (#​14460, #​15118, #​15623, #​15640)
  • [*] [BREAKING] Drop support for typescript@4.3, minimum version is now 5.4 (#​14542, #​15621)
  • [*] Depend on exact versions of monorepo dependencies instead of ^ range (#​14553)
  • [*] [BREAKING] Add ESM wrapper for all of Jest's modules (#​14661)
  • [*] [BREAKING] Upgrade to glob@10 (#​14509)
  • [*] Use TypeError over Error where appropriate (#​14799)
  • [docs] Fix typos in CHANGELOG.md and packages/jest-validate/README.md (#​14640)
  • [docs] Don't use alias matchers in docs (#​14631)
  • [babel-jest, babel-preset-jest] [BREAKING] Increase peer dependency of @babel/core to ^7.11 (#​14109)
  • [babel-jest, @&#8203;jest/transform] Update babel-plugin-istanbul to v6 (#​15156)
  • [babel-plugin-jest-hoist] Move unnecessary dependencies to devDependencies (#​15010)
  • [expect] [BREAKING] Remove .toBeCalled(), .toBeCalledTimes(), .toBeCalledWith(), .lastCalledWith(), .nthCalledWith(), .toReturn(), .toReturnTimes(), .toReturnWith(), .lastReturnedWith(), .nthReturnedWith() and .toThrowError() matcher aliases (#​14632)
  • [jest-cli, jest-config, @&#8203;jest/types] [BREAKING] Remove deprecated --init argument (#​14490)
  • [jest-config, @&#8203;jest/core, jest-util] Upgrade ci-info (#​14655)
  • [jest-mock] [BREAKING] Remove MockFunctionMetadataType, MockFunctionMetadata and SpyInstance types (#​14621)
  • [@jest/reporters] Upgrade istanbul-lib-source-maps (#​14924)
  • [jest-schemas] Upgrade @sinclair/typebox (#​14775)
  • [jest-transform] Upgrade write-file-atomic (#​14274)
  • [jest-util] Upgrade picomatch to v4 (#​14653 & #​14885)
  • [docs] Append to NODE_OPTIONS, not overwrite ([#&#8203;14730](https://redirect.github.com/jestjs/jest/pull/14730))
  • [docs] Updated .toHaveBeenCalled() documentation to correctly reflect its functionality (#​14842)
  • [docs] Link NestJS documentation on testing with Jest (#​14940)
  • [docs] Revised documentation for .toHaveBeenCalled() to accurately depict its functionality. (#​14853)
  • [docs] Removed ExpressJS reference link from documentation due to dead link (#​15270)
  • [docs] Correct broken links in docs (#​15359)

New Contributors


Configuration

📅 Schedule: Branch creation - Between 12:00 AM and 06:59 AM, only on Monday ( * 0-6 * * 1 ) (UTC), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

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


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

Summary by CodeRabbit

  • Chores
    • Upgraded Jest testing framework and type definitions to v30.0.0

Review Change Stack

@smartway-bot smartway-bot Bot added the dependencies Pull requests that update a dependency file label Jun 23, 2025
@smartway-bot
Copy link
Copy Markdown
Contributor Author

smartway-bot Bot commented Jun 23, 2025

⚠️ Artifact update problem

Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.

♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: package-lock.json
npm ERR! code ERESOLVE
npm ERR! ERESOLVE could not resolve
npm ERR! 
npm ERR! While resolving: ts-jest@29.1.1
npm ERR! Found: jest@30.4.2
npm ERR! node_modules/jest
npm ERR!   dev jest@"^30.0.0" from the root project
npm ERR!   peerOptional jest@">=28.0.0" from @testing-library/react-native@12.4.3
npm ERR!   node_modules/@testing-library/react-native
npm ERR!     dev @testing-library/react-native@"^12.4.3" from the root project
npm ERR! 
npm ERR! Could not resolve dependency:
npm ERR! peer jest@"^29.0.0" from ts-jest@29.1.1
npm ERR! node_modules/ts-jest
npm ERR!   dev ts-jest@"^29.1.0" from the root project
npm ERR! 
npm ERR! Conflicting peer dependency: jest@29.7.0
npm ERR! node_modules/jest
npm ERR!   peer jest@"^29.0.0" from ts-jest@29.1.1
npm ERR!   node_modules/ts-jest
npm ERR!     dev ts-jest@"^29.1.0" from the root project
npm ERR! 
npm ERR! Fix the upstream dependency conflict, or retry
npm ERR! this command with --force, or --legacy-peer-deps
npm ERR! to accept an incorrect (and potentially broken) dependency resolution.
npm ERR! 
npm ERR! See /tmp/renovate/cache/others/npm/eresolve-report.txt for a full report.

npm ERR! A complete log of this run can be found in:
npm ERR!     /tmp/renovate/cache/others/npm/_logs/2026-05-23T12_32_15_502Z-debug-0.log

@github-actions
Copy link
Copy Markdown

🛡️ The security scan result : Repo and Config

@smartway-bot smartway-bot Bot force-pushed the renovate/major-jest-monorepo branch from f305573 to 6195838 Compare June 23, 2025 08:03
@smartway-bot smartway-bot Bot changed the title chore(deps): update dependency jest to v30 chore(deps): update jest monorepo to v30 (major) Jun 23, 2025
@smartway-bot smartway-bot Bot force-pushed the renovate/major-jest-monorepo branch from 6195838 to 7b3982e Compare July 29, 2025 03:00
@smartway-bot smartway-bot Bot force-pushed the renovate/major-jest-monorepo branch from 7b3982e to 835c017 Compare September 16, 2025 09:09
@smartway-bot smartway-bot Bot force-pushed the renovate/major-jest-monorepo branch from 835c017 to f22f874 Compare May 23, 2026 12:32
@smartway-bot smartway-bot Bot requested a review from a team as a code owner May 23, 2026 12:32
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 23, 2026

📝 Walkthrough

Walkthrough

Jest and @types/jest dev dependencies are upgraded from major version 29 to 30 in package.json. Both dependencies are bumped to ^30.0.0 to align with the Jest v30 release cycle.

Changes

Jest Dependency Updates

Layer / File(s) Summary
Jest ecosystem dependencies
package.json
@types/jest upgraded from ^29.5.12 to ^30.0.0, and jest upgraded from ^29.7.0 to ^30.0.0.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~2 minutes

Suggested reviewers

  • jonperron

Poem

🐰 A hop and a bound, Jest's updated anew,
From v29 to v30, we're keeping it true,
Dependencies aligned with precision so fine,
The test suite refreshed, now it's ready to shine! ✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and specifically describes the main change: updating Jest monorepo packages to version 30, including the designation of it being a major version bump.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch renovate/major-jest-monorepo

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@package.json`:
- Line 62: package.json currently pins "jest" to ^30.0.0 but still lists
incompatible tooling—update "typescript" to >=5.4 (e.g. ^5.4.0) and bump
"ts-jest" to a Jest-30-compatible release, and if you declare an engines field
ensure Node >=18 is specified; after updating the dependency entries
("typescript", "ts-jest", and optionally "engines") delete and regenerate
package-lock.json by running npm ci / npm install to produce a lockfile
consistent with Jest 30, then run npm test to verify jest is found and tests
pass.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: cbfdc1e4-bea3-434d-8c2d-a167961ed8db

📥 Commits

Reviewing files that changed from the base of the PR and between 6e38ec8 and f22f874.

📒 Files selected for processing (1)
  • package.json

Comment thread package.json
"eslint-plugin-react": "^7.34.1",
"eslint-plugin-react-hooks": "^4.6.0",
"jest": "^29.7.0",
"jest": "^30.0.0",
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🌐 Web query:

What are the minimum Node.js and TypeScript version requirements for Jest version 30?

💡 Result:

Minimum Node.js version requirement for Jest 30: Node.js 18.x (support for Node 14, 16, 19, and 21 was dropped). [1][2] Minimum TypeScript version requirement for Jest 30: TypeScript 5.4. [1][2] These requirements are stated in Jest’s official “Upgrading to Jest 30” documentation and the Jest 30 release blog post. [1][2]

Citations:


🏁 Script executed:

#!/bin/bash
# Description: Run the test suite to verify Jest v30 compatibility

# Run tests in the current configuration
npm test 2>&1 | head -50

Repository: ZeroGachis/smartway-react-native-ui

Length of output: 161


🏁 Script executed:

#!/bin/bash
set -euo pipefail

# Inspect package.json around the declared Jest dependency
ls -la
test -f package.json && sed -n '1,120p' package.json

# Locate Jest config entrypoints if present
for f in jest.config.ts jest.config.js jest.config.cjs; do
  if [ -f "$f" ]; then echo "---- $f ----"; sed -n '1,200p' "$f"; fi
done

# Show package.json scripts to see how `npm test` invokes Jest
node -e "const p=require('./package.json'); console.log(p.scripts)"

Repository: ZeroGachis/smartway-react-native-ui

Length of output: 4754


🏁 Script executed:

npm ci && npm test

Repository: ZeroGachis/smartway-react-native-ui

Length of output: 31592


Fix Jest 30 upgrade prerequisites (Node/TypeScript) and make dependencies/install reproducible

Jest 30 requires Node.js 18.x and TypeScript >= 5.4, but this repo uses TypeScript ^5.2.2 and ts-jest ^29.1.0 (Jest 29 era). Also, tests can’t be run cleanly because npm ci fails due to package-lock.json being out of sync with the Jest 30 dependency (lockfile still contains Jest 29.x), and npm test fails with “jest: not found”. Update TypeScript (>=5.4), bump ts-jest to a Jest-30-compatible version, and regenerate package-lock.json (then run npm test).

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@package.json` at line 62, package.json currently pins "jest" to ^30.0.0 but
still lists incompatible tooling—update "typescript" to >=5.4 (e.g. ^5.4.0) and
bump "ts-jest" to a Jest-30-compatible release, and if you declare an engines
field ensure Node >=18 is specified; after updating the dependency entries
("typescript", "ts-jest", and optionally "engines") delete and regenerate
package-lock.json by running npm ci / npm install to produce a lockfile
consistent with Jest 30, then run npm test to verify jest is found and tests
pass.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants