You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
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.
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 warn Unknown env config "store". This will error in a future major version of npm. See `npm help npmrc` for supported config options.
npm error code ERESOLVE
npm error ERESOLVE could not resolve
npm error
npm error While resolving: agent-bundle@0.0.0-preview-ab5ae66
npm error Found: @rstest/core@0.12.0
npm error node_modules/@rstest/core
npm error dev @rstest/core@"0.12.0" from the root project
npm error
npm error Could not resolve dependency:
npm error peerOptional @rstest/core@"^0.11.10" from agent-bundle@0.0.0-preview-ab5ae66
npm error node_modules/agent-bundle
npm error dev agent-bundle@"https://pkg.pr.new/ScriptedAlchemy/agent-bundle/agent-bundle@ab5ae66e1d9c2829a092640c586e2b3eacc4be88" from the root project
npm error
npm error Conflicting peer dependency: @rstest/core@0.11.12
npm error node_modules/@rstest/core
npm error peerOptional @rstest/core@"^0.11.10" from agent-bundle@0.0.0-preview-ab5ae66
npm error node_modules/agent-bundle
npm error dev agent-bundle@"https://pkg.pr.new/ScriptedAlchemy/agent-bundle/agent-bundle@ab5ae66e1d9c2829a092640c586e2b3eacc4be88" from the root project
npm error
npm error Fix the upstream dependency conflict, or retry this command with --force or --legacy-peer-deps to accept an incorrect (and potentially broken) dependency resolution.
npm error
npm error
npm error For a full report see:
npm error /runner/cache/others/npm/_logs/2026-09-17T20_51_54_596Z-eresolve-report.txt
npm error A complete log of this run can be found in: /runner/cache/others/npm/_logs/2026-09-17T20_51_54_596Z-debug-0.log
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
0.11.12→0.12.0Release Notes
web-infra-dev/rstest (@rstest/core)
v0.12.0Compare Source
Read the Rstest 0.12 announcement for the full story.
Breaking Changes
If you only use the
rstestCLI 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.
runRstestis removed. Create an instance withcreateRstestinstead.runCLImoves from@rstest/coreto@rstest/core/api.TestRunResulthas the same shape as the reporter'sonTestRunEndpayload, andstatus: 'pass' | 'fail' | 'error'replacesok.Custom reporters
See Reporter API for details.
onTestRunEndnow receivessummary, andunhandledErrorsis a requiredSerializedError[]instead of an optionalError[].filterRerunTestPathsis renamed torerunTestPaths.onExitis 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/playwrightnow require@rstest/core@^0.12.0. Upgrade all@rstest/*packages together.Test environment prebundle
testEnvironment.prebundlenow defaults to'auto'. If a test environment behaves differently after the upgrade, set it tofalse. 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
definePlaywrightConfigto get the same defaults as Playwright and customize them when needed. See E2E testing.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
vmThreadsandvmForkspoolsThe new vmThreads and vmForks pools reuse workers across test files and create a fresh
vm.Contextfor 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):
forksvmThreadsTo 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:
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
rstestcommand, so you can run tests, watch, list tests, and merge blob reports from code. See Rstest instance.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
Configuration
📅 Schedule: (UTC)
🚦 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 this update again.
This PR was generated by Mend Renovate. View the repository job log.