i️ Note
This PR body was truncated due to platform limits.
This PR contains the following updates:
Release Notes
vitest-dev/vitest (@vitest/coverage-v8)
Compare Source
🚨 Breaking Changes
- Replace
loupe.inspect with pretty-format - by @hi-ogawa, Claude Opus 5 (1M context) and OpenAI Codex in #9609 (3f802)
- Remove quotes from string values in
test.for/each title $ variable (take 2) - by @hi-ogawa in #10170 (04d37)
- Default
attachmentsDir from .vitest-attachements/ to .vitest/attachments/ - by @MdSadiqMd in #10186 (1ba73)
- Remove
sequential test/suite options in favor of concurrent - by @hi-ogawa and OpenAI Codex in #10198 (9229f)
- Represent locator as an object instead of a string - by @sheremet-va in #10212 (80f07)
- Inline
expect package - by @sheremet-va in #10221 (ad162)
- Remove deprecated entry points - by @sheremet-va in #10222 (994c6)
- Require Node.js 22 and Vite 6.4 - by @sheremet-va in #10178 (38762)
- Fail
expect.poll when function didn't resolve in time - by @hi-ogawa and OpenAI Codex in #10233 (4df04)
- Throw an error if hoistable methods are outside the top level scope - by @sheremet-va in #10460 (d0b4f)
toHaveTextContent is strict, add toMatchTextContent as alternative - by @sheremet-va in #10473 (18f30)
- Don't lookup config file from ancestor directories - by @hi-ogawa, OpenAI Codex and Hiroshi Ogawa in #10428 (945d9)
- Inline
@vitest/runner package, do not publish it anymore - by @sheremet-va in #10511 (6d6e4)
- Allow mutating happy-dom/jsdom window object - by @hi-ogawa, Hiroshi Ogawa and OpenAI Codex in #10373 (206e8)
- Expose
concurrencyId/workerId on TestModule's diagnostics, make id 1-based - by @sheremet-va in #10516 (bdd98)
- Add
screenshotDirectory config to browser.expect.toMatchScreenshot - by @macarie in #10592 (a60de)
- Update
@sinonjs/fake-timers and support mocking Temporal - by @hi-ogawa, Hiroshi Ogawa and OpenCode (gpt-5.6-sol) in #10654 (f8b15)
- Remove webdriverio package - by @sheremet-va in #10675 (5fed6)
- Clear mocks by default before each test - by @sheremet-va in #10613 (0f646)
- Don't emit localStorage warnings on Node 26, fail gracefully when worker fails to start - by @sheremet-va in #10293 (334ed)
- Separate config resolution from the server creation - by @sheremet-va in #10554 (1c0ec)
- Inline projects extend the root config by default - by @sheremet-va in #10750 (fec00)
- Enable mocking Temporal without fake timers - by @fabon-f, Hiroshi Ogawa and OpenCode (gpt-5.6-sol) in #10757 (ac2d4)
- Support nested projects - by @sheremet-va in #10846 (ec367)
- Use
> as separator in -t, calculate only once - by @sheremet-va in #10686 (a0b20)
- Fail the test when an asynchronous assertion is not awaited - by @sheremet-va in #10868 (86d4a)
- Share the Vite server between inline projects - by @sheremet-va in #10848 (d87c9)
- Parse files statically in vitest list by default - by @sheremet-va in #11088 (51e94)
- benchmark:
- browser:
- coverage:
- expect:
- mocker:
- reporters:
- spy:
- types:
- ui:
🚀 Features
🐞 Bug Fixes
- Global
sequence.concurrent: true with top-level test(..., { concurrent: false }) + depreacte sequential test API and options - by @hi-ogawa, OpenAI Codex and @sheremet-va in #10194 (9387f)
- Test
tags options should overwrite inherited suite options + inherit suite options in task API - by @hi-ogawa and OpenAI Codex in #10216 (457db)
- Udpate optimize deps config - by @sheremet-va in #10223 (95dc6)
- Shell injection safety via github.ref_name in publish workflow - by @lloyd-c137 and lloyd-c137 in #10327 (dd020)
- Make
attachmentsDir root only config - by @hi-ogawa and OpenAI Codex in #10334 (fab1b)
- Apply cjs interop for truthy
__esModule - by @hi-ogawa in #10363 (2b135)
- Preserve
vi.defineHelper callsite for async error stack - by @macayu17 and @hi-ogawa in #10415 (ac697)
- Respect
disableConsoleIntercept in browser mode - by @Copilot, Hiroshi Ogawa, @hi-ogawa and OpenAI Codex in #10391 (66110)
- ForceRerunTriggers uses directory globs against files - by @Patrick-Clausen and Patrick Clausen in #10421 and #10420 (4fee2)
- Unify typechecking and ast collection - by @sheremet-va in #10449 (af993)
- Don't print typecheck warning more than once - by @sheremet-va in #10461 (15275)
- Correct collumn when parsing tests - by @sheremet-va in #10467 (7c2fc)
- Fix mixed stdout/stderr log timestamps in
onUserConsoleLog - by @Copilot, Hiroshi Ogawa, @hi-ogawa and @sheremet-va in #10308 (62756)
- Fix
importOriginal with optimizer and query import - by @davidxharris, David Harris, @hi-ogawa, Hiroshi Ogawa and OpenAI Codex in #10469 (6a3bb)
- Correct transform time calculation in merged report - by @potatomatoooo and @hi-ogawa in #10570 and #10578 (b7897)
- Fix
setImmediate await in detect-async-leak - by @hi-ogawa and Hiroshi Ogawa in #10608 (dd62b)
- Fix per-project
sequence config - by @hi-ogawa, Hiroshi Ogawa and OpenCode (gpt-5.6-sol) in #10659 (40cdc)
- Add handshake timeout to iframe communication - by @sheremet-va in #10656 (3545f)
- Don't print column in test names when
includeTaskLocation is enabled - by @sheremet-va in #10681 (bd9cc)
- Disable server HMR before plugins read it in their config hook - by @sheremet-va in #10731 (e060b)
- Close the pool before the Vite servers - by @sheremet-va in #10725 (96fa6)
- Remove listeners in the typecheck worker's
off - by @sheremet-va in #10741 (d758b)
- Keep per-file isolation in vm pools when maxWorkers is 1 - by @sheremet-va in #10743 (83ab9)
- Node.js 20 deprecation warning for
ci.yml - by @hirehamir in #10759 (2127f)
- Prevent node builtins double prefix - by @malobre in #10630 and #10767 (22d35)
- Set non-zero exit code when teardown throws during close - by @zakcutner and @AriPerkkio in #10794 (22116)
- Don't race the typechecker spawn grace period on windows - by @xevrion in #10814 (b19e5)
- Coalesce concurrent watch-mode restarts, deflake the pool stderr fixture - by @sheremet-va in #10822 (a31f8)
- Prevent
vitest --typecheck from reporting a false success when the tsc process crashes - by @hitenkalda and Hiten Kalda in #10705 (a1b05)
- Collect in-source tests when the module is cached - by @koutaro-masaki in #10577 and #10589 (a7bf2)
- Swap replace() arguments so timeout error stack shows the real message - by @lazerg in #10875 (aba0f)
- Stale mock metadata breaks automocking with isolate:false - by @kade-robertson in #10145 and #10541 (8e210)
- Don't lose worker output on teardown, deflake timing-sensitive tests - by @sheremet-va in #10842 (1216b)
- Revive global concurrency limit for test lifecycle - by @hi-ogawa, Hiroshi Ogawa, OpenCode (gpt-5.6-sol) and @sheremet-va in #10928 (cf917)
- Own the post-restart rerun, keep
process.exit disabled in workers - by @sheremet-va in #10963 (5e69a)
- Preserve correct root during resolve config - by @AriPerkkio and @sheremet-va in #10909 (210ba)
- Combine multiple --project filters correctly - by @sheremet-va in #10988 (66c1c)
- Fix
recordArtifact location with vi.defineHelper - by @hi-ogawa, Hiroshi Ogawa and OpenCode (gpt-5.6-sol) in #11047 (c2186)
- Invalidate resolved setup files - by @sheremet-va in #11073 and #11081 (488c0)
- Accept awaited value in vi.when thenResolve - by @sheremet-va in #11084 (c10a1)
- Ignore computed member calls in static collection - by @sheremet-va in #11085 (130f7)
- Don't duplicte
oxc.target if user provides a custom array - by @sheremet-va in #11095 (848d7)
- Propagate --maxWorkers to projects - by @Gaurav1112 in #11102 (2122f)
- Apply queued mocks from doMock() in queue order - by @juliandescottes and Claude Opus 5 (1M context) in #10706 and #11127 (f08ce)
- Add a warning if inline project has duplicate plugins due to unexpected
extends: true - by @sheremet-va in #11120 (584cf)
- Treat test.describe as a suite during static collection - by @sheremet-va in #11128 (d46a7)
- browser:
- cache:
- cli:
- coverage:
- deps:
- expect:
- junit:
- Include unhandled errors in JUnit XML report - by @gbleu and Claude Opus 5 (1M context) in #10244 (6f74e)
- mocker:
- Skip hoist transform without ast mock calls - by @hi-ogawa and OpenAI Codex in #10410 [(04
✂ Note
PR body was truncated to here.
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: 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.
This PR was generated by Mend Renovate. View the repository job log.
This PR contains the following updates:
^4.1.4→^5.0.0^4.1.4→^5.0.0^4.1.4→^5.0.0Release Notes
vitest-dev/vitest (@vitest/coverage-v8)
v5.0.0Compare Source
🚨 Breaking Changes
loupe.inspectwith pretty-format - by @hi-ogawa, Claude Opus 5 (1M context) and OpenAI Codex in #9609 (3f802)test.for/eachtitle$variable (take 2) - by @hi-ogawa in #10170 (04d37)attachmentsDirfrom.vitest-attachements/to.vitest/attachments/- by @MdSadiqMd in #10186 (1ba73)sequentialtest/suite options in favor ofconcurrent- by @hi-ogawa and OpenAI Codex in #10198 (9229f)expectpackage - by @sheremet-va in #10221 (ad162)expect.pollwhen function didn't resolve in time - by @hi-ogawa and OpenAI Codex in #10233 (4df04)toHaveTextContentis strict, addtoMatchTextContentas alternative - by @sheremet-va in #10473 (18f30)@vitest/runnerpackage, do not publish it anymore - by @sheremet-va in #10511 (6d6e4)concurrencyId/workerIdon TestModule's diagnostics, make id 1-based - by @sheremet-va in #10516 (bdd98)screenshotDirectoryconfig tobrowser.expect.toMatchScreenshot- by @macarie in #10592 (a60de)@sinonjs/fake-timersand support mockingTemporal- by @hi-ogawa, Hiroshi Ogawa and OpenCode (gpt-5.6-sol) in #10654 (f8b15)>as separator in-t, calculateonlyonce - by @sheremet-va in #10686 (a0b20)locators.exactby default - by @sheremet-va in #10430 (e2032)sessionIdfor orchestrator html request - by @hi-ogawa, Hiroshi Ogawa and OpenAI Codex in #10522 (79b7d)attachmentsDir- by @macarie in #10917 (3b5bb)include/excludeglobs too eager - by @AriPerkkio in #9818 (edacb)thresholds.perFileto accept an object - by @vladlenskiy and @AriPerkkio in #10190 (13b78)toThrow("")behavior by reverting #6710 - by @hi-ogawa in #9643 and #6710 (6c3e4)blobreporter and--merge-reportsdefault to.vitest/blob/- by @AriPerkkio in #10232 (d22b0).vitestby default - by @hi-ogawa, Hiroshi Ogawa, OpenCode (gpt-5.6-sol) and @AriPerkkio in #10621 (58577).vitest- by @hi-ogawa and Hiroshi Ogawa in #10620 (29c36)🚀 Features
createReportand.vitestreport directory convention - by @AriPerkkio in #9993 (72a6d)configDefaults.reporters- by @hi-ogawa and Claude Opus 5 (1M context) in #10219 (083f6)logger.formatError- by @hi-ogawa and OpenAI Codex in #10268 (2c5f3)injectCjsGlobalsoption - by @sheremet-va in #10709 (82671)for/eachtitle placeholders - by @k-yle in #10773 (15e0a)ToMatchScreenshotResolvePath- by @macarie and @sheremet-va in #10138 (16654)kindinpage.mark- by @AriPerkkio in #10302 (053e8)context.markfor custom command tracing - by @AriPerkkio in #10329 (aa514)--repeatsCLI option - by @todor-a in #10504 (ee48b)node:child_processandnode:worker_threadscontexts - by @AriPerkkio in #9976 (9baa5)thresholds.autoUpdateto receive previous threshold as argument - by @wouterkroes in #10495 (04f81)@vitest/istanbuljspackages - by @AriPerkkio in #11053 (5f6a5)vi.when()- by @macarie in #10174 (3900e)require(esm)in vm pools - by @sheremet-va in #10829 (01298)🐞 Bug Fixes
sequence.concurrent: truewith top-leveltest(..., { concurrent: false })+ depreactesequentialtest API and options - by @hi-ogawa, OpenAI Codex and @sheremet-va in #10194 (9387f)tagsoptions should overwrite inherited suite options + inherit suite options intaskAPI - by @hi-ogawa and OpenAI Codex in #10216 (457db)attachmentsDirroot only config - by @hi-ogawa and OpenAI Codex in #10334 (fab1b)__esModule- by @hi-ogawa in #10363 (2b135)vi.defineHelpercallsite for async error stack - by @macayu17 and @hi-ogawa in #10415 (ac697)disableConsoleInterceptin browser mode - by @Copilot, Hiroshi Ogawa, @hi-ogawa and OpenAI Codex in #10391 (66110)onUserConsoleLog- by @Copilot, Hiroshi Ogawa, @hi-ogawa and @sheremet-va in #10308 (62756)importOriginalwith optimizer and query import - by @davidxharris, David Harris, @hi-ogawa, Hiroshi Ogawa and OpenAI Codex in #10469 (6a3bb)setImmediateawait in detect-async-leak - by @hi-ogawa and Hiroshi Ogawa in #10608 (dd62b)sequenceconfig - by @hi-ogawa, Hiroshi Ogawa and OpenCode (gpt-5.6-sol) in #10659 (40cdc)includeTaskLocationis enabled - by @sheremet-va in #10681 (bd9cc)off- by @sheremet-va in #10741 (d758b)ci.yml- by @hirehamir in #10759 (2127f)vitest --typecheckfrom reporting a false success when thetscprocess crashes - by @hitenkalda and Hiten Kalda in #10705 (a1b05)process.exitdisabled in workers - by @sheremet-va in #10963 (5e69a)recordArtifactlocation withvi.defineHelper- by @hi-ogawa, Hiroshi Ogawa and OpenCode (gpt-5.6-sol) in #11047 (c2186)oxc.targetif user provides a custom array - by @sheremet-va in #11095 (848d7)extends: true- by @sheremet-va in #11120 (584cf)wrapDynamicImporttransform on ssr environment - by @hi-ogawa in #10355 (d3c96)cdpAPI whenallowWrite/allowExec: false- by @hi-ogawa and OpenAI Codex in #10444 (63e3b)connectTimeoutfrom the project config - by @lazerg in #10879 and #10880 (62c79)ui: truein projects - by @AriPerkkio in #10994 (9f710)fsModuleCacheresiliency during external modifications - by @jszumski in #10869 (5eb35)FORCE_COLORover agent detection - by @dokson in #10272 (7e66b)CTRL+ceven whenglobalSetupruns blocked code - by @AriPerkkio in #10863 (d568f)excludeto not inherit negation globs fromtest.include- by @AriPerkkio in #10299 (28685)coverage.reportsDirectoryconflicts between concurrent runs - by @jgamaraalv and @AriPerkkio in #10466 (833f0)/@fs/prepended virtual files - by @AriPerkkio in #11119 (c4473)toNotFake- by @BPScott, @hi-ogawa and OpenAI Codex in #10043 (bbf2f)Configuration
📅 Schedule: (UTC)
* 0-3 * * 1)🚦 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.
This PR was generated by Mend Renovate. View the repository job log.