Skip to content

build(deps): bump the actions-deps-jest group across 1 directory with 4 updates - #8533

Closed
dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/npm_and_yarn/actions-deps-jest-91c0fe1aed
Closed

dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/npm_and_yarn/actions-deps-jest-91c0fe1aed

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

Bumps the actions-deps-jest group with 4 updates in the / directory: babel-jest, jest, @jest/transform and @jest/types.

Updates babel-jest from 30.4.1 to 30.5.2

Release notes

Sourced from babel-jest's releases.

v30.5.2

Features

  • [@jest/transform] Strip TypeScript types with Node when no transformer claims a .ts, .mts or .cts file (#16421)

Fixes

  • [jest-core, jest-haste-map, jest-transform] Keep require('../package.json') external when bundling, so jest --version and the transform and haste-map cache keys report the released version instead of the previous one (#16422)
  • [jest-each] Escape a table row's keys before building the $variable interpolation RegExp, so a column name such as count(*) no longer fails the whole table with Invalid regular expression, and a . or | in a column name is matched literally (#16345)
  • [@jest/source-map] Resolve absolute Windows paths in a source map's sources and sourceRoot again, instead of appending them to the transformed file's directory (#16439)

New Contributors

Full Changelog: jestjs/jest@v30.5.1...v30.5.2

v30.5.1

Fixes

  • [jest-config] Don't warn about global-only options in the config that supplies the global config - the root config a project resolves to, or the first entry of --projects when no root config is passed (#16411)
  • [jest-config, jest-types] Stop accepting reporters, coverageReporters, workerIdleMemoryLimit, cwd and runnerOptions in a project config - they were silently ignored, and now warn like the other global-only options (#16411)
  • [jest-config, jest-validate] Warn about maxWorkers and coverageThreshold in a project config instead of dropping them without a word (#16411)
  • [jest-resolve] Match moduleNameMapper patterns against the specifier as written again (reverting #16390) (#16417)
  • [jest-runtime] Resolve package imports specifiers like #dep under ESM again (#16413)

Chore & Maintenance

  • [jest-util] Name the testEnvironmentOptions.globalsCleanup option and link the docs from the JEST-01 deprecation warning, and document the option's modes (#16404)

New Contributors

Full Changelog: jestjs/jest@v30.5.0...v30.5.1

v30.5.0

On a personal note: King Harald V of Norway passed away this morning. He ascended the throne 35 years ago, two months before I was born. This release is dedicated to his memory. Hvil i fred 🇳🇴


This is a big release. It touches jest-runtime, jest-resolve and jest-haste-map in many places, and with this many changes there might be regressions 😬. If your suite behaves differently after upgrading, please open an issue.

Highlights

whenCalledWith

Mock functions can now configure return values per argument list, contributed by @​timkindberg (#16053):

const fn = jest.fn();
fn.whenCalledWith('apple').mockReturnValue('red');
</tr></table> 

... (truncated)

Changelog

Sourced from babel-jest's changelog.

30.5.2

Features

  • [@jest/transform] Strip TypeScript types with Node when no transformer claims a .ts, .mts or .cts file (#16421)

Fixes

  • [jest-core, jest-haste-map, jest-transform] Keep require('../package.json') external when bundling, so jest --version and the transform and haste-map cache keys report the released version instead of the previous one (#16422)
  • [jest-each] Escape a table row's keys before building the $variable interpolation RegExp, so a column name such as count(*) no longer fails the whole table with Invalid regular expression, and a . or | in a column name is matched literally (#16345)
  • [@jest/source-map] Resolve absolute Windows paths in a source map's sources and sourceRoot again, instead of appending them to the transformed file's directory (#16439)

30.5.1

Fixes

  • [jest-config] Don't warn about global-only options in the config that supplies the global config - the root config a project resolves to, or the first entry of --projects when no root config is passed (#16411)
  • [jest-config, jest-types] Stop accepting reporters, coverageReporters, workerIdleMemoryLimit, cwd and runnerOptions in a project config - they were silently ignored, and now warn like the other global-only options (#16411)
  • [jest-config, jest-validate] Warn about maxWorkers and coverageThreshold in a project config instead of dropping them without a word (#16411)
  • [jest-resolve] Match moduleNameMapper patterns against the specifier as written again (reverting #16390) (#16417)
  • [jest-runtime] Resolve package imports specifiers like #dep under ESM again (#16413)

Chore & Maintenance

  • [jest-util] Name the testEnvironmentOptions.globalsCleanup option and link the docs from the JEST-01 deprecation warning, and document the option's modes (#16404)

30.5.0

Features

  • [@jest/expect-utils, jest-mock] Add mockFn.whenCalledWith(...args) for configuring return values per argument list, with first-class asymmetric-matcher support (#16053)
  • [@jest/expect-utils] Export AsymmetricMatcher and FunctionParameters types (previously private to expect) (#16053)
  • [jest-circus, jest-core, jest-jasmine2, jest-test-result, jest-types] --collectTests now expands test.each/describe.each cases and reports per-status counts (skipped/todo via the new wouldRun flag for selected tests) plus a summary line that match a real run, including under --testNamePattern and .only/fdescribe focus on both the circus and jasmine2 runners (#16259)
  • [jest-circus, jest-environment, jest-runtime, jest-types] Add describe-level retries via jest.retryTimes(..., {entireDescribe: true}) (#16322)
  • [jest-circus, jest-message-util, jest-reporters, jest-types] Add retryMessages to AssertionResult and export formatErrorStack, so the retry log renders nested cause and AggregateError sections with code frames instead of serialized [cause]:/[errors]: markers (#16316)
  • [jest-circus, jest-types] Add unhandledErrorsDetailed to Circus.RunResult, so an unhandled rejection reports its cause chain and AggregateError entries with code frames instead of a pre-serialized stack (#16316)
  • [jest-haste-map] Replace NodeWatcher and FSEventsWatcher with @parcel/watcher for the non-watchman watch path (#16188)
  • [jest-resolve] Bump unrs-resolver to 1.12.1, remove jest-pnp-resolver and unnecessary checks (#15721)
  • [jest-resolve] Honor Node's --preserve-symlinks / NODE_PRESERVE_SYMLINKS in the default resolver by passing symlinks: false to unrs-resolver (#16260)
  • [jest-runtime] Apply automocking and manual __mocks__ files to synchronously evaluable ESM graphs on Node 24.9+ - static imports, dynamic import() and require() of an ESM file now generate an automock from the real module's namespace instead of failing with "Attempting to import a mock without a factory". Graphs that need async evaluation (top-level await) or an async-only resolver or transformer still throw (#16391)
  • [jest-runtime] Route process.getBuiltinModule through the sandbox, so it returns the sandbox process and the hooked node:module instead of the host's (#16391)
  • [jest-runtime] Throw an actionable error from module.register() and module.registerHooks() inside a test - the hooks attached to the loader running Jest itself, never saw the sandboxed requires they were meant for, and stayed registered for every later test file in the worker (#16391)
  • [jest-runtime] Surface resolution and import-attribute errors in an ESM graph before executing any of its CJS dependencies on Node 24.9+, matching Node's run-nothing-on-a-broken-graph behavior; the legacy loader on older versions keeps its linking-time execution order (#16391)
  • [jest-runtime] Throw ERR_SOURCE_PHASE_NOT_DEFINED with an actionable message for import source and import.source(), instead of failing at instantiation with V8's bare "Source phase import object is not defined" (#16391)
  • [jest-runtime] Emit the JSON-without-import-attribute deprecation warning once per test file instead of once per worker, so it is no longer silently swallowed for every file after the first (#16391)
  • [jest-runtime] Set import.meta.main to true in the test file and false in every module it loads, matching Node 24+ (#16367)
  • [jest-runtime] Resolve the module-sync export condition, so a package that exposes its ESM entry point for require() loads the same file Node would (#16336)
  • [jest-snapshot] Add external snapshot paths to custom reporter failure details (#16374)

Fixes

... (truncated)

Commits

Updates jest from 30.4.2 to 30.5.2

Release notes

Sourced from jest's releases.

v30.5.2

Features

  • [@jest/transform] Strip TypeScript types with Node when no transformer claims a .ts, .mts or .cts file (#16421)

Fixes

  • [jest-core, jest-haste-map, jest-transform] Keep require('../package.json') external when bundling, so jest --version and the transform and haste-map cache keys report the released version instead of the previous one (#16422)
  • [jest-each] Escape a table row's keys before building the $variable interpolation RegExp, so a column name such as count(*) no longer fails the whole table with Invalid regular expression, and a . or | in a column name is matched literally (#16345)
  • [@jest/source-map] Resolve absolute Windows paths in a source map's sources and sourceRoot again, instead of appending them to the transformed file's directory (#16439)

New Contributors

Full Changelog: jestjs/jest@v30.5.1...v30.5.2

v30.5.1

Fixes

  • [jest-config] Don't warn about global-only options in the config that supplies the global config - the root config a project resolves to, or the first entry of --projects when no root config is passed (#16411)
  • [jest-config, jest-types] Stop accepting reporters, coverageReporters, workerIdleMemoryLimit, cwd and runnerOptions in a project config - they were silently ignored, and now warn like the other global-only options (#16411)
  • [jest-config, jest-validate] Warn about maxWorkers and coverageThreshold in a project config instead of dropping them without a word (#16411)
  • [jest-resolve] Match moduleNameMapper patterns against the specifier as written again (reverting #16390) (#16417)
  • [jest-runtime] Resolve package imports specifiers like #dep under ESM again (#16413)

Chore & Maintenance

  • [jest-util] Name the testEnvironmentOptions.globalsCleanup option and link the docs from the JEST-01 deprecation warning, and document the option's modes (#16404)

New Contributors

Full Changelog: jestjs/jest@v30.5.0...v30.5.1

v30.5.0

On a personal note: King Harald V of Norway passed away this morning. He ascended the throne 35 years ago, two months before I was born. This release is dedicated to his memory. Hvil i fred 🇳🇴


This is a big release. It touches jest-runtime, jest-resolve and jest-haste-map in many places, and with this many changes there might be regressions 😬. If your suite behaves differently after upgrading, please open an issue.

Highlights

whenCalledWith

Mock functions can now configure return values per argument list, contributed by @​timkindberg (#16053):

const fn = jest.fn();
fn.whenCalledWith('apple').mockReturnValue('red');
</tr></table> 

... (truncated)

Changelog

Sourced from jest's changelog.

30.5.2

Features

  • [@jest/transform] Strip TypeScript types with Node when no transformer claims a .ts, .mts or .cts file (#16421)

Fixes

  • [jest-core, jest-haste-map, jest-transform] Keep require('../package.json') external when bundling, so jest --version and the transform and haste-map cache keys report the released version instead of the previous one (#16422)
  • [jest-each] Escape a table row's keys before building the $variable interpolation RegExp, so a column name such as count(*) no longer fails the whole table with Invalid regular expression, and a . or | in a column name is matched literally (#16345)
  • [@jest/source-map] Resolve absolute Windows paths in a source map's sources and sourceRoot again, instead of appending them to the transformed file's directory (#16439)

30.5.1

Fixes

  • [jest-config] Don't warn about global-only options in the config that supplies the global config - the root config a project resolves to, or the first entry of --projects when no root config is passed (#16411)
  • [jest-config, jest-types] Stop accepting reporters, coverageReporters, workerIdleMemoryLimit, cwd and runnerOptions in a project config - they were silently ignored, and now warn like the other global-only options (#16411)
  • [jest-config, jest-validate] Warn about maxWorkers and coverageThreshold in a project config instead of dropping them without a word (#16411)
  • [jest-resolve] Match moduleNameMapper patterns against the specifier as written again (reverting #16390) (#16417)
  • [jest-runtime] Resolve package imports specifiers like #dep under ESM again (#16413)

Chore & Maintenance

  • [jest-util] Name the testEnvironmentOptions.globalsCleanup option and link the docs from the JEST-01 deprecation warning, and document the option's modes (#16404)

30.5.0

Features

  • [@jest/expect-utils, jest-mock] Add mockFn.whenCalledWith(...args) for configuring return values per argument list, with first-class asymmetric-matcher support (#16053)
  • [@jest/expect-utils] Export AsymmetricMatcher and FunctionParameters types (previously private to expect) (#16053)
  • [jest-circus, jest-core, jest-jasmine2, jest-test-result, jest-types] --collectTests now expands test.each/describe.each cases and reports per-status counts (skipped/todo via the new wouldRun flag for selected tests) plus a summary line that match a real run, including under --testNamePattern and .only/fdescribe focus on both the circus and jasmine2 runners (#16259)
  • [jest-circus, jest-environment, jest-runtime, jest-types] Add describe-level retries via jest.retryTimes(..., {entireDescribe: true}) (#16322)
  • [jest-circus, jest-message-util, jest-reporters, jest-types] Add retryMessages to AssertionResult and export formatErrorStack, so the retry log renders nested cause and AggregateError sections with code frames instead of serialized [cause]:/[errors]: markers (#16316)
  • [jest-circus, jest-types] Add unhandledErrorsDetailed to Circus.RunResult, so an unhandled rejection reports its cause chain and AggregateError entries with code frames instead of a pre-serialized stack (#16316)
  • [jest-haste-map] Replace NodeWatcher and FSEventsWatcher with @parcel/watcher for the non-watchman watch path (#16188)
  • [jest-resolve] Bump unrs-resolver to 1.12.1, remove jest-pnp-resolver and unnecessary checks (#15721)
  • [jest-resolve] Honor Node's --preserve-symlinks / NODE_PRESERVE_SYMLINKS in the default resolver by passing symlinks: false to unrs-resolver (#16260)
  • [jest-runtime] Apply automocking and manual __mocks__ files to synchronously evaluable ESM graphs on Node 24.9+ - static imports, dynamic import() and require() of an ESM file now generate an automock from the real module's namespace instead of failing with "Attempting to import a mock without a factory". Graphs that need async evaluation (top-level await) or an async-only resolver or transformer still throw (#16391)
  • [jest-runtime] Route process.getBuiltinModule through the sandbox, so it returns the sandbox process and the hooked node:module instead of the host's (#16391)
  • [jest-runtime] Throw an actionable error from module.register() and module.registerHooks() inside a test - the hooks attached to the loader running Jest itself, never saw the sandboxed requires they were meant for, and stayed registered for every later test file in the worker (#16391)
  • [jest-runtime] Surface resolution and import-attribute errors in an ESM graph before executing any of its CJS dependencies on Node 24.9+, matching Node's run-nothing-on-a-broken-graph behavior; the legacy loader on older versions keeps its linking-time execution order (#16391)
  • [jest-runtime] Throw ERR_SOURCE_PHASE_NOT_DEFINED with an actionable message for import source and import.source(), instead of failing at instantiation with V8's bare "Source phase import object is not defined" (#16391)
  • [jest-runtime] Emit the JSON-without-import-attribute deprecation warning once per test file instead of once per worker, so it is no longer silently swallowed for every file after the first (#16391)
  • [jest-runtime] Set import.meta.main to true in the test file and false in every module it loads, matching Node 24+ (#16367)
  • [jest-runtime] Resolve the module-sync export condition, so a package that exposes its ESM entry point for require() loads the same file Node would (#16336)
  • [jest-snapshot] Add external snapshot paths to custom reporter failure details (#16374)

Fixes

... (truncated)

Commits

Updates @jest/transform from 30.4.1 to 30.5.2

Release notes

Sourced from @​jest/transform's releases.

v30.5.2

Features

  • [@jest/transform] Strip TypeScript types with Node when no transformer claims a .ts, .mts or .cts file (#16421)

Fixes

  • [jest-core, jest-haste-map, jest-transform] Keep require('../package.json') external when bundling, so jest --version and the transform and haste-map cache keys report the released version instead of the previous one (#16422)
  • [jest-each] Escape a table row's keys before building the $variable interpolation RegExp, so a column name such as count(*) no longer fails the whole table with Invalid regular expression, and a . or | in a column name is matched literally (#16345)
  • [@jest/source-map] Resolve absolute Windows paths in a source map's sources and sourceRoot again, instead of appending them to the transformed file's directory (#16439)

New Contributors

Full Changelog: jestjs/jest@v30.5.1...v30.5.2

v30.5.1

Fixes

  • [jest-config] Don't warn about global-only options in the config that supplies the global config - the root config a project resolves to, or the first entry of --projects when no root config is passed (#16411)
  • [jest-config, jest-types] Stop accepting reporters, coverageReporters, workerIdleMemoryLimit, cwd and runnerOptions in a project config - they were silently ignored, and now warn like the other global-only options (#16411)
  • [jest-config, jest-validate] Warn about maxWorkers and coverageThreshold in a project config instead of dropping them without a word (#16411)
  • [jest-resolve] Match moduleNameMapper patterns against the specifier as written again (reverting #16390) (#16417)
  • [jest-runtime] Resolve package imports specifiers like #dep under ESM again (#16413)

Chore & Maintenance

  • [jest-util] Name the testEnvironmentOptions.globalsCleanup option and link the docs from the JEST-01 deprecation warning, and document the option's modes (#16404)

New Contributors

Full Changelog: jestjs/jest@v30.5.0...v30.5.1

v30.5.0

On a personal note: King Harald V of Norway passed away this morning. He ascended the throne 35 years ago, two months before I was born. This release is dedicated to his memory. Hvil i fred 🇳🇴


This is a big release. It touches jest-runtime, jest-resolve and jest-haste-map in many places, and with this many changes there might be regressions 😬. If your suite behaves differently after upgrading, please open an issue.

Highlights

whenCalledWith

Mock functions can now configure return values per argument list, contributed by @​timkindberg (#16053):

const fn = jest.fn();
fn.whenCalledWith('apple').mockReturnValue('red');
</tr></table> 

... (truncated)

Changelog

Sourced from @​jest/transform's changelog.

30.5.2

Features

  • [@jest/transform] Strip TypeScript types with Node when no transformer claims a .ts, .mts or .cts file (#16421)

Fixes

  • [jest-core, jest-haste-map, jest-transform] Keep require('../package.json') external when bundling, so jest --version and the transform and haste-map cache keys report the released version instead of the previous one (#16422)
  • [jest-each] Escape a table row's keys before building the $variable interpolation RegExp, so a column name such as count(*) no longer fails the whole table with Invalid regular expression, and a . or | in a column name is matched literally (#16345)
  • [@jest/source-map] Resolve absolute Windows paths in a source map's sources and sourceRoot again, instead of appending them to the transformed file's directory (#16439)

30.5.1

Fixes

  • [jest-config] Don't warn about global-only options in the config that supplies the global config - the root config a project resolves to, or the first entry of --projects when no root config is passed (#16411)
  • [jest-config, jest-types] Stop accepting reporters, coverageReporters, workerIdleMemoryLimit, cwd and runnerOptions in a project config - they were silently ignored, and now warn like the other global-only options (#16411)
  • [jest-config, jest-validate] Warn about maxWorkers and coverageThreshold in a project config instead of dropping them without a word (#16411)
  • [jest-resolve] Match moduleNameMapper patterns against the specifier as written again (reverting #16390) (#16417)
  • [jest-runtime] Resolve package imports specifiers like #dep under ESM again (#16413)

Chore & Maintenance

  • [jest-util] Name the testEnvironmentOptions.globalsCleanup option and link the docs from the JEST-01 deprecation warning, and document the option's modes (#16404)

30.5.0

Features

  • [@jest/expect-utils, jest-mock] Add mockFn.whenCalledWith(...args) for configuring return values per argument list, with first-class asymmetric-matcher support (#16053)
  • [@jest/expect-utils] Export AsymmetricMatcher and FunctionParameters types (previously private to expect) (#16053)
  • [jest-circus, jest-core, jest-jasmine2, jest-test-result, jest-types] --collectTests now expands test.each/describe.each cases and reports per-status counts (skipped/todo via the new wouldRun flag for selected tests) plus a summary line that match a real run, including under --testNamePattern and .only/fdescribe focus on both the circus and jasmine2 runners (#16259)
  • [jest-circus, jest-environment, jest-runtime, jest-types] Add describe-level retries via jest.retryTimes(..., {entireDescribe: true}) (#16322)
  • [jest-circus, jest-message-util, jest-reporters, jest-types] Add retryMessages to AssertionResult and export formatErrorStack, so the retry log renders nested cause and AggregateError sections with code frames instead of serialized [cause]:/[errors]: markers (#16316)
  • [jest-circus, jest-types] Add unhandledErrorsDetailed to Circus.RunResult, so an unhandled rejection reports its cause chain and AggregateError entries with code frames instead of a pre-serialized stack (#16316)
  • [jest-haste-map] Replace NodeWatcher and FSEventsWatcher with @parcel/watcher for the non-watchman watch path (#16188)
  • [jest-resolve] Bump unrs-resolver to 1.12.1, remove jest-pnp-resolver and unnecessary checks (#15721)
  • [jest-resolve] Honor Node's --preserve-symlinks / NODE_PRESERVE_SYMLINKS in the default resolver by passing symlinks: false to unrs-resolver (#16260)
  • [jest-runtime] Apply automocking and manual __mocks__ files to synchronously evaluable ESM graphs on Node 24.9+ - static imports, dynamic import() and require() of an ESM file now generate an automock from the real module's namespace instead of failing with "Attempting to import a mock without a factory". Graphs that need async evaluation (top-level await) or an async-only resolver or transformer still throw (#16391)
  • [jest-runtime] Route process.getBuiltinModule through the sandbox, so it returns the sandbox process and the hooked node:module instead of the host's (#16391)
  • [jest-runtime] Throw an actionable error from module.register() and module.registerHooks() inside a test - the hooks attached to the loader running Jest itself, never saw the sandboxed requires they were meant for, and stayed registered for every later test file in the worker (#16391)
  • [jest-runtime] Surface resolution and import-attribute errors in an ESM graph before executing any of its CJS dependencies on Node 24.9+, matching Node's run-nothing-on-a-broken-graph behavior; the legacy loader on older versions keeps its linking-time execution order (#16391)
  • [jest-runtime] Throw ERR_SOURCE_PHASE_NOT_DEFINED with an actionable message for import source and import.source(), instead of failing at instantiation with V8's bare "Source phase import object is not defined" (#16391)
  • [jest-runtime] Emit the JSON-without-import-attribute deprecation warning once per test file instead of once per worker, so it is no longer silently swallowed for every file after the first (#16391)
  • [jest-runtime] Set import.meta.main to true in the test file and false in every module it loads, matching Node 24+ (#16367)
  • [jest-runtime] Resolve the module-sync export condition, so a package that exposes its ESM entry point for require() loads the same file Node would (#16336)
  • [jest-snapshot] Add external snapshot paths to custom reporter failure details (#16374)

Fixes

... (truncated)

Commits
  • 202dd8a v30.5.2
  • 121c2ae feat: strip TypeScript types when no transformer claims the file (#16421)
  • 9ab14fe v30.5.1
  • ea7258e fix(jest-config): only warn about global-only options where they're actually ...
  • 912baa3 v30.5.0
  • b0aa181 fix(@​jest/transform): key transform caches on the caller support flags (#16331)
  • b614603 feat(@​jest/source-map): replace source-map-support with a Jest-owned implem...
  • 8e6d128 Update istanbul dependencies (#16049)
  • 01e18c6 chore: update some more deps (#16299)
  • 1ac7378 fix(jest-runtime, @​jest/transform): improve ESM error handling on Node < 24.9...
  • Additional commits viewable in compare view

Updates @jest/types from 30.4.1 to 30.5.1

Release notes

Sourced from @​jest/types's releases.

v30.5.1

Fixes

  • [jest-config] Don't warn about global-only options in the config that supplies the global config - the root config a project resolves to, or the first entry of --projects when no root config is passed (#16411)
  • [jest-config, jest-types] Stop accepting reporters, coverageReporters, workerIdleMemoryLimit, cwd and runnerOptions in a project config - they were silently ignored, and now warn like the other global-only options (#16411)
  • [jest-config, jest-validate] Warn about maxWorkers and coverageThreshold in a project config instead of dropping them without a word (#16411)
  • [jest-resolve] Match moduleNameMapper patterns against the specifier as written again (reverting #16390) (#16417)
  • [jest-runtime] Resolve package imports specifiers like #dep under ESM again (#16413)

Chore & Maintenance

  • [jest-util] Name the testEnvironmentOptions.globalsCleanup option and link the docs from the JEST-01 deprecation warning, and document the option's modes (#16404)

New Contributors

Full Changelog: jestjs/jest@v30.5.0...v30.5.1

v30.5.0

On a personal note: King Harald V of Norway passed away this morning. He ascended the throne 35 years ago, two months before I was born. This release is dedicated to his memory. Hvil i fred 🇳🇴


This is a big release. It touches jest-runtime, jest-resolve and jest-haste-map in many places, and with this many changes there might be regressions 😬. If your suite behaves differently after upgrading, please open an issue.

Highlights

whenCalledWith

Mock functions can now configure return values per argument list, contributed by @​timkindberg (#16053):

const fn = jest.fn();
fn.whenCalledWith('apple').mockReturnValue('red');
fn.whenCalledWith('banana').mockReturnValue('yellow');
fn.whenCalledWith(expect.any(Number)).mockReturnValue('numeric');
fn('apple'); // 'red'
fn('banana'); // 'yellow'
fn(42); // 'numeric'
fn('grape'); // undefined

The returned object is a real Mock, so mockReturnValueOnce, mockResolvedValue, mockImplementation etc. all chain here too. Argument slots accept literals or any asymmetric matcher, with the same equality semantics as toHaveBeenCalledWith(). Calls that match nothing fall through to the base mock. See the Mock Functions docs for matching and precedence details.

Describe-level retries

jest.retryTimes() can now retry a whole describe block instead of a single test, contributed by @​soltonigiri (#16322). Each attempt reruns the block's beforeAll/afterAll hooks, child tests and nested describes, which helps when tests in a block depend on shared state:

</tr></table> 

... (truncated)

Changelog

Sourced from @​jest/types's changelog.

30.5.1

Fixes

  • [jest-config] Don't warn about global-only options in the config that supplies the global config - the root config a project resolves to, or the first entry of --projects when no root config is passed (#16411)
  • [jest-config, jest-types] Stop accepting reporters, coverageReporters, workerIdleMemoryLimit, cwd and runnerOptions in a project config - they were silently ignored, and now warn like the other global-only options (#16411)
  • [jest-config, jest-validate] Warn about maxWorkers and coverageThreshold in a project config instead of dropping them without a word (#16411)
  • [jest-resolve] Match moduleNameMapper patterns against the specifier as written again (reverting #16390) (#16417)
  • [jest-runtime] Resolve package imports specifiers like #dep under ESM again (#16413)

Chore & Maintenance

  • [jest-util] Name the testEnvironmentOptions.globalsCleanup option and link the docs from the JEST-01 deprecation warning, and document the option's modes (#16404)

30.5.0

Features

  • [@jest/expect-utils, jest-mock] Add mockFn.whenCalledWith(...args) for configuring return values per argument list, with first-class asymmetric-matcher support (#16053)
  • [@jest/expect-utils] Export AsymmetricMatcher and FunctionParameters types (previously private to expect) (#16053)
  • [jest-circus, jest-core, jest-jasmine2, jest-test-result, jest-types] --collectTests now expands test.each/describe.each cases and reports per-status counts (skipped/todo via the new wouldRun flag for selected tests) plus a summary line that match a real run, including under --testNamePattern and .only/fdescribe focus on both the circus and jasmine2 runners (#16259)
  • [jest-circus, jest-environment, jest-runtime, jest-types] Add describe-level retries via jest.retryTimes(..., {entireDescribe: true}) (#16322)
  • [jest-circus, jest-message-util, jest-reporters, jest-types] Add retryMessages to AssertionResult and export formatErrorStack, so the retry log renders nested cause and AggregateError sections with code frames instead of serialized [cause]:/[errors]: markers (#16316)
  • [jest-circus, jest-types] Add unhandledErrorsDetailed to Circus.RunResult, so an unhandled rejection reports its cause chain and AggregateError entries with code frames instead of a pre-serialized stack (#16316)
  • [jest-haste-map] Replace NodeWatcher and FSEventsWatcher with @parcel/watcher for the non-watchman watch path (#16188)
  • [jest-resolve] Bump unrs-resolver to 1.12.1, remove jest-pnp-resolver and unnecessary checks (#15721)
  • [jest-resolve] Honor Node's --preserve-symlinks / NODE_PRESERVE_SYMLINKS in the default resolver by passing symlinks: false to unrs-resolver (#16260)
  • [jest-runtime] Apply automocking and manual __mocks__ files to synchronously evaluable ESM graphs on Node 24.9+ - static imports, dynamic import() and require() of an ESM file now generate an automock from the real module's namespace instead of failing with "Attempting to import a mock without a factory". Graphs that need async evaluation (top-level await) or an async-only resolver or transformer still throw (#16391)
  • [jest-runtime] Route process.getBuiltinModule through the sandbox, so it returns the sandbox process and the hooked node:module instead of the host's (#16391)
  • [jest-runtime] Throw an actionable error from module.register() and module.registerHooks() inside a test - the hooks attached to the loader running Jest itself, never saw the sandboxed requires they were meant for, and stayed registered for every later test file in the worker (#16391)
  • [jest-runtime] Surface resolution and import-attribute errors in an ESM graph before executing any of its CJS dependencies on Node 24.9+, matching Node's run-nothing-on-a-broken-graph behavior; the legacy loader on older versions keeps its linking-time execution order (#16391)
  • [jest-runtime] Throw ERR_SOURCE_PHASE_NOT_DEFINED with an actionable message for import source and import.source(), instead of failing at instantiation with V8's bare "Source phase import object is not defined" (#16391)
  • [jest-runtime] Emit the JSON-without-import-attribute deprecation warning once per test file instead of once per worker, so it is no longer silently swallowed for every file after the first (#16391)
  • [jest-runtime] Set import.meta.main to true in the test file and false in every module it loads, matching Node 24+ (#16367)
  • [jest-runtime] Resolve the module-sync export condition, so a package that exposes its ESM entry point for require() loads the same file Node would (#16336)
  • [jest-snapshot] Add external snapshot paths to custom reporter failure details (#16374)

Fixes

  • [jest-console, jest-reporters] CustomConsole now buffers console output so TestResult.console is populated for reporters when verbose is enabled, while GitHubActionsReporter avoids replaying buffered output in verbose mode (#16155)
  • [expect, jest-message-util, jest-pattern, jest-regex-util, jest-util] Revert node: protocol imports to restore webpack/browser-bundle compatibility (#16167)
  • [expect] Widen toMatchObject and objectContaining parameter type from Record<string, unknown> to object so class instances are accepted (#16196)
  • [jest-circus] Call a generator test body with the shared test context, so this matches what a regular test function receives (#16347)
  • [jest-circus] Capture the error listeners of the parent process instead of the in-sandbox process, so listeners registered before the test file survive teardown and sandbox listeners no longer leak onto the parent (#16347)
  • [jest-circus] Clear currentlyRunningTest after skipped and todo tests (#16342)
  • [jest-circus] Prevent late done() callbacks from affecting later test or hook invocations (#16343)
  • [jest-circus, jest-jasmine2] Honor --expand when formatting node:assert failures, instead of always collapsing the diff (#16347)
  • [jest-circus, jest-jasmine2, jest-message-util] Serialize the inner errors of an AggregateError into failureMessages, retryReasons and unhandledErrors, so --json output and reporter annotations include them (#16316)
  • [jest-circus, jest-snapshot] Keep snapshot state and counts correct when a test retries (#16344)
  • [@jest/create-cache-key-function] Include the caller support flags in the generated key, so a transformer that emits ESM or CJS based on them no longer shares one cache entry between the two (#16331)

... (truncated)

Commits

@dependabot dependabot Bot added dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code labels Oct 19, 2026
@changeset-bot

changeset-bot Bot commented Oct 19, 2026 •

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 1b0be55

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@coderabbitai

coderabbitai Bot commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

Important

Review skipped

Bot user detected.

To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: e15fe29c-779f-4231-a13d-9aed644f179b

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@github-actions

Copy link
Copy Markdown
Contributor

🚀 Snapshot Release (alpha)

The latest changes of this PR are available as alpha on npm (based on the declared changesets):

Package Version Info
@graphql-tools/documents 2.0.0-alpha-20261019143118-7be5ebb61649aab8d773143666a8b71acf0aab42 npm ↗︎ unpkg ↗︎
@graphql-tools/executor 3.0.0-alpha-20261019143118-7be5ebb61649aab8d773143666a8b71acf0aab42 npm ↗︎ unpkg ↗︎
@graphql-tools/executor-apollo-link 3.0.0-alpha-20261019143118-7be5ebb61649aab8d773143666a8b71acf0aab42 npm ↗︎ unpkg ↗︎
@graphql-tools/executor-envelop 5.0.0-alpha-20261019143118-7be5ebb61649aab8d773143666a8b71acf0aab42 npm ↗︎ unpkg ↗︎
@graphql-tools/executor-legacy-ws 2.0.0-alpha-20261019143118-7be5ebb61649aab8d773143666a8b71acf0aab42 npm ↗︎ unpkg ↗︎
@graphql-tools/executor-urql-exchange 2.0.0-alpha-20261019143118-7be5ebb61649aab8d773143666a8b71acf0aab42 npm ↗︎ unpkg ↗︎
@graphql-tools/executor-yoga 4.0.0-alpha-20261019143118-7be5ebb61649aab8d773143666a8b71acf0aab42 npm ↗︎ unpkg ↗︎
@graphql-tools/graphql-tag-pluck 9.0.0-alpha-20261019143118-7be5ebb61649aab8d773143666a8b71acf0aab42 npm ↗︎ unpkg ↗︎
graphql-tools 10.0.0-alpha-20261019143118-7be5ebb61649aab8d773143666a8b71acf0aab42 npm ↗︎ unpkg ↗︎
@graphql-tools/import 8.0.0-alpha-20261019143118-7be5ebb61649aab8d773143666a8b71acf0aab42 npm ↗︎ unpkg ↗︎
@graphql-tools/jest-transform 3.0.0-alpha-20261019143118-7be5ebb61649aab8d773143666a8b71acf0aab42 npm ↗︎ unpkg ↗︎
@graphql-tools/links 11.0.0-alpha-20261019143118-7be5ebb61649aab8d773143666a8b71acf0aab42 npm ↗︎ unpkg ↗︎
@graphql-tools/load 9.0.0-alpha-20261019143118-7be5ebb61649aab8d773143666a8b71acf0aab42 npm ↗︎ unpkg ↗︎
@graphql-tools/load-files 8.0.0-alpha-20261019143118-7be5ebb61649aab8d773143666a8b71acf0aab42 npm ↗︎ unpkg ↗︎
@graphql-tools/apollo-engine-loader 9.0.0-alpha-20261019143118-7be5ebb61649aab8d773143666a8b71acf0aab42 npm ↗︎ unpkg ↗︎
@graphql-tools/code-file-loader 9.0.0-alpha-20261019143118-7be5ebb61649aab8d773143666a8b71acf0aab42 npm ↗︎ unpkg ↗︎
@graphql-tools/external-fragment-loader 1.0.0-alpha-20261019143118-7be5ebb61649aab8d773143666a8b71acf0aab42 npm ↗︎ unpkg ↗︎
@graphql-tools/git-loader 9.0.0-alpha-20261019143118-7be5ebb61649aab8d773143666a8b71acf0aab42 npm ↗︎ unpkg ↗︎
@graphql-tools/github-loader 10.0.0-alpha-20261019143118-7be5ebb61649aab8d773143666a8b71acf0aab42 npm ↗︎ unpkg ↗︎
@graphql-tools/graphql-file-loader 9.0.0-alpha-20261019143118-7be5ebb61649aab8d773143666a8b71acf0aab42 npm ↗︎ unpkg ↗︎
@graphql-tools/json-file-loader 9.0.0-alpha-20261019143118-7be5ebb61649aab8d773143666a8b71acf0aab42 npm ↗︎ unpkg ↗︎
@graphql-tools/module-loader 9.0.0-alpha-20261019143118-7be5ebb61649aab8d773143666a8b71acf0aab42 npm ↗︎ unpkg ↗︎
@graphql-tools/url-loader 10.0.0-alpha-20261019143118-7be5ebb61649aab8d773143666a8b71acf0aab42 npm ↗︎ unpkg ↗︎
@graphql-tools/merge 10.0.0-alpha-20261019143118-7be5ebb61649aab8d773143666a8b71acf0aab42 npm ↗︎ unpkg ↗︎
@graphql-tools/mock 10.0.0-alpha-20261019143118-7be5ebb61649aab8d773143666a8b71acf0aab42 npm ↗︎ unpkg ↗︎
@graphql-tools/node-require 8.0.0-alpha-20261019143118-7be5ebb61649aab8d773143666a8b71acf0aab42 npm ↗︎ unpkg ↗︎
@graphql-tools/optimize 3.0.0-alpha-20261019143118-7be5ebb61649aab8d773143666a8b71acf0aab42 npm ↗︎ unpkg ↗︎
@graphql-tools/relay-operation-optimizer 8.0.0-alpha-20261019143118-7be5ebb61649aab8d773143666a8b71acf0aab42 npm ↗︎ unpkg ↗︎
@graphql-tools/resolvers-composition 8.0.0-alpha-20261019143118-7be5ebb61649aab8d773143666a8b71acf0aab42 npm ↗︎ unpkg ↗︎
@graphql-tools/schema 11.0.0-alpha-20261019143118-7be5ebb61649aab8d773143666a8b71acf0aab42 npm ↗︎ unpkg ↗︎
@graphql-tools/utils 13.0.0-alpha-20261019143118-7be5ebb61649aab8d773143666a8b71acf0aab42 npm ↗︎ unpkg ↗︎
@graphql-tools/webpack-loader 8.0.0-alpha-20261019143118-7be5ebb61649aab8d773143666a8b71acf0aab42 npm ↗︎ unpkg ↗︎
@graphql-tools/webpack-loader-runtime 8.0.0-alpha-20261019143118-7be5ebb61649aab8d773143666a8b71acf0aab42 npm ↗︎ unpkg ↗︎
@graphql-tools/apollo-engine-loader 9.0.0-alpha-20261019143118-7be5ebb61649aab8d773143666a8b71acf0aab42 npm ↗︎ unpkg ↗︎
@graphql-tools/code-file-loader 9.0.0-alpha-20261019143118-7be5ebb61649aab8d773143666a8b71acf0aab42 npm ↗︎ unpkg ↗︎
@graphql-tools/documents 2.0.0-alpha-20261019143118-7be5ebb61649aab8d773143666a8b71acf0aab42 npm ↗︎ unpkg ↗︎
@graphql-tools/executor 3.0.0-alpha-20261019143118-7be5ebb61649aab8d773143666a8b71acf0aab42 npm ↗︎ unpkg ↗︎
@graphql-tools/executor-apollo-link 3.0.0-alpha-20261019143118-7be5ebb61649aab8d773143666a8b71acf0aab42 npm ↗︎ unpkg ↗︎
@graphql-tools/executor-envelop 5.0.0-alpha-20261019143118-7be5ebb61649aab8d773143666a8b71acf0aab42 npm ↗︎ unpkg ↗︎
@graphql-tools/executor-legacy-ws 2.0.0-alpha-20261019143118-7be5ebb61649aab8d773143666a8b71acf0aab42 npm ↗︎ unpkg ↗︎
@graphql-tools/executor-urql-exchange 2.0.0-alpha-20261019143118-7be5ebb61649aab8d773143666a8b71acf0aab42 npm ↗︎ unpkg ↗︎
@graphql-tools/executor-yoga 4.0.0-alpha-20261019143118-7be5ebb61649aab8d773143666a8b71acf0aab42 npm ↗︎ unpkg ↗︎
@graphql-tools/external-fragment-loader 1.0.0-alpha-20261019143118-7be5ebb61649aab8d773143666a8b71acf0aab42 npm ↗︎ unpkg ↗︎
@graphql-tools/git-loader 9.0.0-alpha-20261019143118-7be5ebb61649aab8d773143666a8b71acf0aab42 npm ↗︎ unpkg ↗︎
@graphql-tools/github-loader 10.0.0-alpha-20261019143118-7be5ebb61649aab8d773143666a8b71acf0aab42 npm ↗︎ unpkg ↗︎
@graphql-tools/graphql-file-loader 9.0.0-alpha-20261019143118-7be5ebb61649aab8d773143666a8b71acf0aab42 npm ↗︎ unpkg ↗︎
@graphql-tools/graphql-tag-pluck 9.0.0-alpha-20261019143118-7be5ebb61649aab8d773143666a8b71acf0aab42 npm ↗︎ unpkg ↗︎
@graphql-tools/import 8.0.0-alpha-20261019143118-7be5ebb61649aab8d773143666a8b71acf0aab42 npm ↗︎ unpkg ↗︎
@graphql-tools/jest-transform 3.0.0-alpha-20261019143118-7be5ebb61649aab8d773143666a8b71acf0aab42 npm ↗︎ unpkg ↗︎
@graphql-tools/json-file-loader 9.0.0-alpha-20261019143118-7be5ebb61649aab8d773143666a8b71acf0aab42 npm ↗︎ unpkg ↗︎
@graphql-tools/links 11.0.0-alpha-20261019143118-7be5ebb61649aab8d773143666a8b71acf0aab42 npm ↗︎ unpkg ↗︎
@graphql-tools/load 9.0.0-alpha-20261019143118-7be5ebb61649aab8d773143666a8b71acf0aab42 npm ↗︎ unpkg ↗︎
@graphql-tools/load-files 8.0.0-alpha-20261019143118-7be5ebb61649aab8d773143666a8b71acf0aab42 npm ↗︎ unpkg ↗︎
@graphql-tools/merge 10.0.0-alpha-20261019143118-7be5ebb61649aab8d773143666a8b71acf0aab42 npm ↗︎ unpkg ↗︎
@graphql-tools/mock 10.0.0-alpha-20261019143118-7be5ebb61649aab8d773143666a8b71acf0aab42 npm ↗︎ unpkg ↗︎
@graphql-tools/module-loader 9.0.0-alpha-20261019143118-7be5ebb61649aab8d773143666a8b71acf0aab42 npm ↗︎ unpkg ↗︎
@graphql-tools/node-require 8.0.0-alpha-20261019143118-7be5ebb61649aab8d773143666a8b71acf0aab42 npm ↗︎ unpkg ↗︎
@graphql-tools/optimize 3.0.0-alpha-20261019143118-7be5ebb61649aab8d773143666a8b71acf0aab42 npm ↗︎ unpkg ↗︎
@graphql-tools/relay-operation-optimizer 8.0.0-alpha-20261019143118-7be5ebb61649aab8d773143666a8b71acf0aab42 npm ↗︎ unpkg ↗︎
@graphql-tools/resolvers-composition 8.0.0-alpha-20261019143118-7be5ebb61649aab8d773143666a8b71acf0aab42 npm ↗︎ unpkg ↗︎
@graphql-tools/schema 11.0.0-alpha-20261019143118-7be5ebb61649aab8d773143666a8b71acf0aab42 npm ↗︎ unpkg ↗︎
@graphql-tools/url-loader 10.0.0-alpha-20261019143118-7be5ebb61649aab8d773143666a8b71acf0aab42 npm ↗︎ unpkg ↗︎
@graphql-tools/utils 13.0.0-alpha-20261019143118-7be5ebb61649aab8d773143666a8b71acf0aab42 npm ↗︎ unpkg ↗︎
@graphql-tools/webpack-loader 8.0.0-alpha-20261019143118-7be5ebb61649aab8d773143666a8b71acf0aab42 npm ↗︎ unpkg ↗︎
@graphql-tools/webpack-loader-runtime 8.0.0-alpha-20261019143118-7be5ebb61649aab8d773143666a8b71acf0aab42 npm ↗︎ unpkg ↗︎
graphql-tools 10.0.0-alpha-20261019143118-7be5ebb61649aab8d773143666a8b71acf0aab42 npm ↗︎ unpkg ↗︎

@github-actions

Copy link
Copy Markdown
Contributor

💻 Website Preview

The latest changes are available as preview in: https://pr-8533.graphql-tools-8ja.pages.dev

@dependabot
dependabot Bot force-pushed the dependabot/npm_and_yarn/actions-deps-jest-91c0fe1aed branch 2 times, most recently from b8fc639 to e16abd4 Compare October 19, 2026 17:08
@dependabot
dependabot Bot force-pushed the dependabot/npm_and_yarn/actions-deps-jest-91c0fe1aed branch from e16abd4 to cea12f0 Compare October 19, 2026 17:33
@dependabot
dependabot Bot force-pushed the dependabot/npm_and_yarn/actions-deps-jest-91c0fe1aed branch from cea12f0 to b5f80ed Compare October 19, 2026 18:10
… 4 updates

Bumps the actions-deps-jest group with 4 updates in the / directory: [babel-jest](https://github.com/jestjs/jest/tree/HEAD/packages/babel-jest), [jest](https://github.com/jestjs/jest/tree/HEAD/packages/jest), [@jest/transform](https://github.com/jestjs/jest/tree/HEAD/packages/jest-transform) and [@jest/types](https://github.com/jestjs/jest/tree/HEAD/packages/jest-types).


Updates `babel-jest` from 30.4.1 to 30.5.2
- [Release notes](https://github.com/jestjs/jest/releases)
- [Changelog](https://github.com/jestjs/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jestjs/jest/commits/v30.5.2/packages/babel-jest)

Updates `jest` from 30.4.2 to 30.5.2
- [Release notes](https://github.com/jestjs/jest/releases)
- [Changelog](https://github.com/jestjs/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jestjs/jest/commits/v30.5.2/packages/jest)

Updates `@jest/transform` from 30.4.1 to 30.5.2
- [Release notes](https://github.com/jestjs/jest/releases)
- [Changelog](https://github.com/jestjs/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jestjs/jest/commits/v30.5.2/packages/jest-transform)

Updates `@jest/types` from 30.4.1 to 30.5.1
- [Release notes](https://github.com/jestjs/jest/releases)
- [Changelog](https://github.com/jestjs/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jestjs/jest/commits/v30.5.1/packages/jest-types)

---
updated-dependencies:
- dependency-name: "@jest/transform"
  dependency-version: 30.5.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: actions-deps-jest
- dependency-name: "@jest/types"
  dependency-version: 30.5.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: actions-deps-jest
- dependency-name: babel-jest
  dependency-version: 30.5.2
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: actions-deps-jest
- dependency-name: jest
  dependency-version: 30.5.2
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: actions-deps-jest
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot
dependabot Bot force-pushed the dependabot/npm_and_yarn/actions-deps-jest-91c0fe1aed branch from b5f80ed to 1b0be55 Compare October 20, 2026 10:47
@ardatan ardatan closed this Oct 20, 2026
@dependabot @github

dependabot Bot commented on behalf of github Oct 20, 2026

Copy link
Copy Markdown
Contributor Author

This pull request was built based on a group rule. Closing it will not ignore any of these versions in future pull requests.

To ignore these dependencies, configure ignore rules in dependabot.yml

@dependabot
dependabot Bot deleted the dependabot/npm_and_yarn/actions-deps-jest-91c0fe1aed branch October 20, 2026 12:39

This branch was successfully deployed

1 active deployment
preview — 1b0be553 Deployed Oct 20, 2026 by github-actions[bot]
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 javascript Pull requests that update javascript code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant