Skip to content

chore(deps): update dependency @rstest/core to ^0.12.0 - #13923

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/rstest-core-0.x
Open

renovate[bot] wants to merge 1 commit into
mainfrom
renovate/rstest-core-0.x

Conversation

@renovate

@renovate renovate Bot commented Sep 21, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Confidence
@rstest/core (source) ^0.11.10^0.12.0 age confidence

Release Notes

web-infra-dev/rstest (@​rstest/core)

v0.12.0

Compare Source

Read the Rstest 0.12 announcement for the full story.

Breaking Changes

If you only use the rstest CLI with a config file, no code changes are needed.

JavaScript API

The experimental JavaScript API is redesigned in 0.12, in one step before 1.0. See Rstest instance for the new API.

  • runRstest is removed. Create an instance with createRstest instead.
  • runCLI moves from @rstest/core to @rstest/core/api.
  • TestRunResult has the same shape as the reporter's onTestRunEnd payload, and status: 'pass' | 'fail' | 'error' replaces ok.
Custom reporters

See Reporter API for details.

  • onTestRunEnd now receives summary, and unhandledErrors is a required SerializedError[] instead of an optional Error[].
  • filterRerunTestPaths is renamed to rerunTestPaths.
  • onExit is now also called after a run, list, or merge finishes normally, not only on an abnormal exit.
Peer dependency range

The adapters, @rstest/browser-react, @rstest/coverage-istanbul, @rstest/coverage-v8, and @rstest/playwright now require @rstest/core@^0.12.0. Upgrade all @rstest/* packages together.

Test environment prebundle

testEnvironment.prebundle now defaults to 'auto'. If a test environment behaves differently after the upgrade, set it to false. See Environment prebundle.

Highlights

Rstest 0.12 adds E2E and Module Federation testing support, makes large test suites faster with VM pools and test environment prebundle, and introduces a new JavaScript API.

E2E testing support

@​rstest/playwright integrates Playwright into Rstest, so unit tests, component tests, and E2E tests share one config, one set of commands, and the same reporters. Use definePlaywrightConfig to get the same defaults as Playwright and customize them when needed. See E2E testing.

import { expect, test } from '@rstest/playwright';

test('page title', async ({ page }) => {
  await page.goto('https://example.com');
  await expect(page).toHaveTitle(/Example/);
});
Module Federation testing support

With the @​module-federation/rstest plugin, tests import remote modules the same way a consumer application does. Rstest loads the real exposed modules and resolves shared dependencies, so integration problems between consumer and producer show up in unit tests. It works in Node, jsdom, happy-dom, and browser mode. See Module Federation.

New vmThreads and vmForks pools

The new vmThreads and vmForks pools reuse workers across test files and create a fresh vm.Context for each file. Each file still gets its own JavaScript realm and module graph, while worker startup, dependency resolution, and V8 compilation are shared. This helps most in suites with many jsdom / happy-dom test files.

On a jsdom benchmark project of 2,400 files and 20,000 tests (15 workers, every process starting from an empty cache):

Pool Wall time
forks 315.17s
vmThreads ⚡ 33.22s

To limit the memory of a single worker, set pool.memoryLimit. Rstest replaces a worker once it exceeds the threshold. See Choose a pool type before switching.

Faster jsdom / happy-dom loading

Test environment prebundle is now enabled by default. Previously, every worker resolved and executed each module file of jsdom or happy-dom one by one. Rstest now builds the environment into one ESM bundle that all workers share.

On a benchmark of 100 files and 1,000 tests:

Environment Native Prebundle Improvement
jsdom 30.0.1 16.99s ⚡ 10.57s 37.8%
happy-dom 20.11.1 6.35s ⚡ 2.98s 53.0%
A new JavaScript API

createRstest makes it easier to integrate Rstest into tools, IDEs, and other Node.js programs. It shares the same core execution capabilities as the rstest command, so you can run tests, watch, list tests, and merge blob reports from code. See Rstest instance.

import { createRstest } from '@rstest/core/api';

const rstest = await createRstest({
  cwd: './packages/app',
  config: { include: ['src/**/*.test.ts'] },
});

const result = await rstest.run();
console.log(result.status, result.summary);

What's Changed

Breaking Changes 🍭
New Features 🎉
Performance 🚀
Bug Fixes 🐞
Refactor 🔨
Document 📖
Other Changes

New Contributors

Full Changelog: web-infra-dev/rstest@v0.11.12...v0.12.0

v0.11.12

Compare Source

What's Changed
New Features 🎉
  • feat(vscode): add Rstack Editor migration notice and stand down when it is active by @​fi3ework in #​1771
Bug Fixes 🐞
Document 📖
Other Changes

Full Changelog: web-infra-dev/rstest@v0.11.11...v0.11.12

v0.11.11

Compare Source

What's Changed

Performance 🚀
  • perf(core): avoid quadratic result and queue operations by @​9aoy in #​1754
Bug Fixes 🐞
Document 📖
Other Changes

New Contributors

Full Changelog: web-infra-dev/rstest@v0.11.10...v0.11.11


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • Between 12:00 AM and 03:59 AM, only on Monday (* 0-3 * * 1)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Enabled.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

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


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

This PR was generated by Mend Renovate. View the repository job log.

This branch has not been deployed

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants