fix(pool): terminate workers on CTRL+c forceful exits#9140
fix(pool): terminate workers on CTRL+c forceful exits#9140sheremet-va merged 4 commits intovitest-dev:mainfrom
CTRL+c forceful exits#9140Conversation
✅ Deploy Preview for vitest-dev ready!Built without sensitive environment variables
To edit notification comments on pull requests, go to your Netlify project configuration. |
ca5c553 to
ff9f063
Compare
hi-ogawa
left a comment
There was a problem hiding this comment.
Looks good to me.
With execSync example #9123 (comment), CTRL+c x 2 seems to leave sleep 10s process becoming zombie, but I guess this is expected?
Yes. These changes will make sure the Vitest test runner worker is terminated. If the worker side is not fully blocked, I would expect Node to pass kill signals to any running code. Minimal repro without Vitest. Top terminal runs the command, middle terminal shows processes matching node-zombies.webmrepro codeimport { execSync, fork } from "node:child_process";
import { setTimeout } from "node:timers/promises";
import { fileURLToPath } from "node:url";
const isMainThread = process.send === undefined;
const isChildProcess = process.send !== undefined;
const isNestedChildProcess = process.env.NESTED_CHILD_PROCESS;
if (isMainThread) {
process.title = "example main";
const child = fork(fileURLToPath(import.meta.url));
await setTimeout(2_000);
console.log("Terminating child process")
child.kill();
}
if (isChildProcess && !isNestedChildProcess) {
process.title = "example child";
fork(fileURLToPath(import.meta.url), { env: { NESTED_CHILD_PROCESS: '1' }});
}
if (isNestedChildProcess) {
process.title = "example nested";
execSync("sleep 10s");
} |
This MR contains the following updates: | Package | Type | Update | Change | OpenSSF | |---|---|---|---|---| | [vitest](https://vitest.dev) ([source](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest)) | devDependencies | major | [`^3.2.4` → `^4.0.0`](https://renovatebot.com/diffs/npm/vitest/3.2.4/4.0.18) | [](https://securityscorecards.dev/viewer/?uri=github.com/vitest-dev/vitest) | --- ### Release Notes <details> <summary>vitest-dev/vitest (vitest)</summary> ### [`v4.0.18`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.18) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.17...v4.0.18) ##### 🚀 Experimental Features - **experimental**: Add `onModuleRunner` hook to `worker.init` - by [@​sheremet-va](https://github.com/sheremet-va) in [#​9286](https://github.com/vitest-dev/vitest/issues/9286) [<samp>(ea837)</samp>](https://github.com/vitest-dev/vitest/commit/ea837de7d) ##### 🐞 Bug Fixes - Use `meta.url` in `createRequire` - by [@​sheremet-va](https://github.com/sheremet-va) in [#​9441](https://github.com/vitest-dev/vitest/issues/9441) [<samp>(e0572)</samp>](https://github.com/vitest-dev/vitest/commit/e057281ca) - **browser**: Hide injected data-testid attributes - by [@​sheremet-va](https://github.com/sheremet-va) in [#​9503](https://github.com/vitest-dev/vitest/issues/9503) [<samp>(f8989)</samp>](https://github.com/vitest-dev/vitest/commit/f89899cd8) - **ui**: Process artifact attachments when generating HTML reporter - by [@​macarie](https://github.com/macarie) in [#​9472](https://github.com/vitest-dev/vitest/issues/9472) [<samp>(22543)</samp>](https://github.com/vitest-dev/vitest/commit/225435647) ##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.17...v4.0.18) ### [`v4.0.17`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.17) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.16...v4.0.17) ##### 🚀 Experimental Features - Support openTelemetry for browser mode - by [@​hi-ogawa](https://github.com/hi-ogawa) in [#​9180](https://github.com/vitest-dev/vitest/issues/9180) [<samp>(1ec3a)</samp>](https://github.com/vitest-dev/vitest/commit/1ec3a8b68) - Support TRACEPARENT and TRACESTATE environment variables for OpenTelemetry context propagation - by [@​Copilot](https://github.com/Copilot), **hi-ogawa** and [@​hi-ogawa](https://github.com/hi-ogawa) in [#​9295](https://github.com/vitest-dev/vitest/issues/9295) [<samp>(876cb)</samp>](https://github.com/vitest-dev/vitest/commit/876cb84c2) ##### 🐞 Bug Fixes - Improve asymmetric matcher diff readability by unwrapping container matchers - by [@​Copilot](https://github.com/Copilot), **sheremet-va**, **hi-ogawa** and [@​hi-ogawa](https://github.com/hi-ogawa) in [#​9330](https://github.com/vitest-dev/vitest/issues/9330) [<samp>(b2ec7)</samp>](https://github.com/vitest-dev/vitest/commit/b2ec724a8) - Improve runner error when importing outside of test context - by [@​sheremet-va](https://github.com/sheremet-va) in [#​9335](https://github.com/vitest-dev/vitest/issues/9335) [<samp>(2dd3d)</samp>](https://github.com/vitest-dev/vitest/commit/2dd3dd839) - Replace crypto.randomUUID to allow insecure environments (fix [#​9](https://github.com/vitest-dev/vitest/issues/9)… - by [@​plusgut](https://github.com/plusgut) in [#​9339](https://github.com/vitest-dev/vitest/issues/9339) and [#​9](https://github.com/vitest-dev/vitest/issues/9) [<samp>(e6a3f)</samp>](https://github.com/vitest-dev/vitest/commit/e6a3f8cc7) - Handle null options in `addEventHandler` [#​9371](https://github.com/vitest-dev/vitest/issues/9371) - by [@​ThibautMarechal](https://github.com/ThibautMarechal) in [#​9372](https://github.com/vitest-dev/vitest/issues/9372) and [#​9371](https://github.com/vitest-dev/vitest/issues/9371) [<samp>(40841)</samp>](https://github.com/vitest-dev/vitest/commit/40841ff00) - Typo in browser.provider error - by [@​deammer](https://github.com/deammer) in [#​9394](https://github.com/vitest-dev/vitest/issues/9394) [<samp>(4b67f)</samp>](https://github.com/vitest-dev/vitest/commit/4b67fc25a) - **browser**: - Fix `process.env` and `import.meta.env` defines in inline project - by [@​hi-ogawa](https://github.com/hi-ogawa) in [#​9239](https://github.com/vitest-dev/vitest/issues/9239) [<samp>(b70c9)</samp>](https://github.com/vitest-dev/vitest/commit/b70c96121) - Fix upload File instance - by [@​hi-ogawa](https://github.com/hi-ogawa) in [#​9294](https://github.com/vitest-dev/vitest/issues/9294) [<samp>(b6778)</samp>](https://github.com/vitest-dev/vitest/commit/b67788c69) - Fix invalid project token for artifacts assets - by [@​hi-ogawa](https://github.com/hi-ogawa) in [#​9321](https://github.com/vitest-dev/vitest/issues/9321) [<samp>(caa7d)</samp>](https://github.com/vitest-dev/vitest/commit/caa7d73d4) - Log `ErrorEvent.message` when unhandled `ErrorEvent.error` is null - by [@​hi-ogawa](https://github.com/hi-ogawa) in [#​9322](https://github.com/vitest-dev/vitest/issues/9322) [<samp>(5d84e)</samp>](https://github.com/vitest-dev/vitest/commit/5d84eeb91) - Support `fileParallelism` on an instance - by [@​sheremet-va](https://github.com/sheremet-va) in [#​9328](https://github.com/vitest-dev/vitest/issues/9328) [<samp>(15006)</samp>](https://github.com/vitest-dev/vitest/commit/150065459) - **coverage**: - Remove unnecessary `istanbul-lib-source-maps` usage - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​9344](https://github.com/vitest-dev/vitest/issues/9344) [<samp>(b0940)</samp>](https://github.com/vitest-dev/vitest/commit/b09405375) - Apply patch from [istanbuljs/istanbuljs#837](https://github.com/istanbuljs/istanbuljs/issues/837) - by [@​AriPerkkio](https://github.com/AriPerkkio) and **sapphi-red** in [#​9413](https://github.com/vitest-dev/vitest/issues/9413) and [#​837](https://github.com/vitest-dev/vitest/issues/837) [<samp>(e05ce)</samp>](https://github.com/vitest-dev/vitest/commit/e05cedbf4) - **fsModuleCache**: - Don't store importers in cache - by [@​sheremet-va](https://github.com/sheremet-va) in [#​9422](https://github.com/vitest-dev/vitest/issues/9422) [<samp>(75136)</samp>](https://github.com/vitest-dev/vitest/commit/751364eec) - Add importers alongside importedModules - by [@​sheremet-va](https://github.com/sheremet-va) in [#​9423](https://github.com/vitest-dev/vitest/issues/9423) [<samp>(59f92)</samp>](https://github.com/vitest-dev/vitest/commit/59f92d403) - **mocker**: - Fix mock transform with class - by [@​hi-ogawa](https://github.com/hi-ogawa) in [#​9421](https://github.com/vitest-dev/vitest/issues/9421) [<samp>(d390e)</samp>](https://github.com/vitest-dev/vitest/commit/d390eb527) - **pool**: - Validate environment options when reusing the worker - by [@​sheremet-va](https://github.com/sheremet-va) in [#​9349](https://github.com/vitest-dev/vitest/issues/9349) [<samp>(a8a88)</samp>](https://github.com/vitest-dev/vitest/commit/a8a8836e3) - Handle worker start failures gracefully - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​9337](https://github.com/vitest-dev/vitest/issues/9337) [<samp>(200da)</samp>](https://github.com/vitest-dev/vitest/commit/200dadb32) - **reporter**: - Report test module if it failed to run - by [@​sheremet-va](https://github.com/sheremet-va) in [#​9272](https://github.com/vitest-dev/vitest/issues/9272) [<samp>(c7888)</samp>](https://github.com/vitest-dev/vitest/commit/c78882985) - **runner**: - Respect nested test.only within describe.only - by [@​Ujjwaljain16](https://github.com/Ujjwaljain16) in [#​9021](https://github.com/vitest-dev/vitest/issues/9021) and [#​9213](https://github.com/vitest-dev/vitest/issues/9213) [<samp>(55d5d)</samp>](https://github.com/vitest-dev/vitest/commit/55d5dad69) - **typecheck**: - Improve error message when tsc outputs help text - by [@​Ujjwaljain16](https://github.com/Ujjwaljain16) in [#​9214](https://github.com/vitest-dev/vitest/issues/9214) [<samp>(7b10a)</samp>](https://github.com/vitest-dev/vitest/commit/7b10ab4cd) - **ui**: - Detect gzip by magic numbers instead of Content-Type header in html reporter - by [@​Copilot](https://github.com/Copilot), **hi-ogawa** and [@​hi-ogawa](https://github.com/hi-ogawa) in [#​9278](https://github.com/vitest-dev/vitest/issues/9278) [<samp>(dd033)</samp>](https://github.com/vitest-dev/vitest/commit/dd0331632) - **webdriverio**: - Fall back to WebDriver Classic [#​9244](https://github.com/vitest-dev/vitest/issues/9244) - by [@​JustasMonkev](https://github.com/JustasMonkev) in [#​9373](https://github.com/vitest-dev/vitest/issues/9373) and [#​9244](https://github.com/vitest-dev/vitest/issues/9244) [<samp>(c23dd)</samp>](https://github.com/vitest-dev/vitest/commit/c23dd11bd) ##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.16...v4.0.17) ### [`v4.0.16`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.16) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.15...v4.0.16) ##### 🐞 Bug Fixes - Fix browser mode default testTimeout back to 15 seconds - by [@​hi-ogawa](https://github.com/hi-ogawa) in [#​9167](https://github.com/vitest-dev/vitest/issues/9167) [<samp>(da0ad)</samp>](https://github.com/vitest-dev/vitest/commit/da0ade249) - Avoid crashing on `process.versions` stub - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​9174](https://github.com/vitest-dev/vitest/issues/9174) [<samp>(78cfb)</samp>](https://github.com/vitest-dev/vitest/commit/78cfbf99a) - Reject calling suite function inside test - by [@​hi-ogawa](https://github.com/hi-ogawa) in [#​9198](https://github.com/vitest-dev/vitest/issues/9198) [<samp>(1a259)</samp>](https://github.com/vitest-dev/vitest/commit/1a259c340) - Allow inlining fully dynamic import - by [@​hi-ogawa](https://github.com/hi-ogawa) in [#​9137](https://github.com/vitest-dev/vitest/issues/9137) [<samp>(56851)</samp>](https://github.com/vitest-dev/vitest/commit/568513ca6) - Fix module graph UI on html reporter with headless browser mode - by [@​hi-ogawa](https://github.com/hi-ogawa) in [#​9219](https://github.com/vitest-dev/vitest/issues/9219) [<samp>(60642)</samp>](https://github.com/vitest-dev/vitest/commit/60642b304) - Log deprecated `test.poolOptions` if it's set - by [@​sheremet-va](https://github.com/sheremet-va) in [#​9226](https://github.com/vitest-dev/vitest/issues/9226) [<samp>(f7f6a)</samp>](https://github.com/vitest-dev/vitest/commit/f7f6aa8ba) - **browser**: - Import `recordArtifact` from the vitest package - by [@​macarie](https://github.com/macarie) in [#​9186](https://github.com/vitest-dev/vitest/issues/9186) [<samp>(01c56)</samp>](https://github.com/vitest-dev/vitest/commit/01c56454d) - Fix `import.meta.env` define - by [@​hi-ogawa](https://github.com/hi-ogawa) in [#​9205](https://github.com/vitest-dev/vitest/issues/9205) [<samp>(01a9a)</samp>](https://github.com/vitest-dev/vitest/commit/01a9a58d9) - String formatting bug when including placeholders in console.log - by [@​michael-debs](https://github.com/michael-debs) and [@​hi-ogawa](https://github.com/hi-ogawa) in [#​9030](https://github.com/vitest-dev/vitest/issues/9030) and [#​9131](https://github.com/vitest-dev/vitest/issues/9131) [<samp>(84a30)</samp>](https://github.com/vitest-dev/vitest/commit/84a306210) - **coverage**: - Istanbul untested files source maps are off - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​9208](https://github.com/vitest-dev/vitest/issues/9208) [<samp>(372e8)</samp>](https://github.com/vitest-dev/vitest/commit/372e86fde) - **experimental**: - Export `setupEnvironment` for custom pools - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​9187](https://github.com/vitest-dev/vitest/issues/9187) [<samp>(5d26b)</samp>](https://github.com/vitest-dev/vitest/commit/5d26b87b0) ##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.15...v4.0.16) ### [`v4.0.15`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.15) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.14...v4.0.15) ##### 🚀 Experimental Features - **cache**: Add opt-out on a plugin level, fix internal root cache - by [@​sheremet-va](https://github.com/sheremet-va) in [#​9154](https://github.com/vitest-dev/vitest/issues/9154) [<samp>(a68f7)</samp>](https://github.com/vitest-dev/vitest/commit/a68f74e5e) - **reporters**: Print import duration breakdown - by [@​sheremet-va](https://github.com/sheremet-va) in [#​9105](https://github.com/vitest-dev/vitest/issues/9105) [<samp>(122ff)</samp>](https://github.com/vitest-dev/vitest/commit/122ff321c) ##### 🐞 Bug Fixes - Keep built-in id as is in bun and deno - by [@​sheremet-va](https://github.com/sheremet-va) in [#​9117](https://github.com/vitest-dev/vitest/issues/9117) [<samp>(075ab)</samp>](https://github.com/vitest-dev/vitest/commit/075ab3520) - Use `optimizeDeps.rolldownOptions` to fix depreated warning + fix `ssr.external: true` - by [@​hi-ogawa](https://github.com/hi-ogawa) in [#​9121](https://github.com/vitest-dev/vitest/issues/9121) [<samp>(fd8bd)</samp>](https://github.com/vitest-dev/vitest/commit/fd8bd6dee) - Fix external behavior with `deps.optimizer` - by [@​hi-ogawa](https://github.com/hi-ogawa) in [#​9125](https://github.com/vitest-dev/vitest/issues/9125) [<samp>(4c754)</samp>](https://github.com/vitest-dev/vitest/commit/4c75492cc) - Very minor typo in "Chrome DevTools Protocol" - by [@​HowToTestFrontend](https://github.com/HowToTestFrontend) in [#​9146](https://github.com/vitest-dev/vitest/issues/9146) [<samp>(20997)</samp>](https://github.com/vitest-dev/vitest/commit/209976419) - **browser**: Run `toMatchScreenshot` only once when used with `expect.element` - by [@​macarie](https://github.com/macarie) in [#​9132](https://github.com/vitest-dev/vitest/issues/9132) [<samp>(0d2e7)</samp>](https://github.com/vitest-dev/vitest/commit/0d2e7e3e2) - **coverage**: Istanbul provider to not break source maps - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​9040](https://github.com/vitest-dev/vitest/issues/9040) [<samp>(e4ca9)</samp>](https://github.com/vitest-dev/vitest/commit/e4ca917f1) - **deps**: Update dependency tinyexec to v1 - in [#​9122](https://github.com/vitest-dev/vitest/issues/9122) [<samp>(fd786)</samp>](https://github.com/vitest-dev/vitest/commit/fd7860222) - **docs**: Remove `--browser.provider` from docs - by [@​sheremet-va](https://github.com/sheremet-va) in [#​9115](https://github.com/vitest-dev/vitest/issues/9115) [<samp>(120b3)</samp>](https://github.com/vitest-dev/vitest/commit/120b3dac1) - **expect**: Preserve `currentTestName` in extended matchers - by [@​macarie](https://github.com/macarie) in [#​9106](https://github.com/vitest-dev/vitest/issues/9106) [<samp>(e4345)</samp>](https://github.com/vitest-dev/vitest/commit/e43458e02) - **pool**: Terminate workers on `CTRL+c` forceful exits - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​9140](https://github.com/vitest-dev/vitest/issues/9140) [<samp>(d57d8)</samp>](https://github.com/vitest-dev/vitest/commit/d57d8bf0a) - **reporters**: Show project in github reporter - by [@​sheremet-va](https://github.com/sheremet-va) in [#​9138](https://github.com/vitest-dev/vitest/issues/9138) [<samp>(bb65e)</samp>](https://github.com/vitest-dev/vitest/commit/bb65e15c7) - **spy**: Do not mock overriden method, if parent was automocked - by [@​sheremet-va](https://github.com/sheremet-va) in [#​9116](https://github.com/vitest-dev/vitest/issues/9116) [<samp>(1a246)</samp>](https://github.com/vitest-dev/vitest/commit/1a24607b4) - **web-worker**: MessagePort objects passed to Worker.postMessage work when clone === "native" - by [@​whitphx](https://github.com/whitphx) in [#​9118](https://github.com/vitest-dev/vitest/issues/9118) [<samp>(deee8)</samp>](https://github.com/vitest-dev/vitest/commit/deee83e54) ##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.14...v4.0.15) ### [`v4.0.14`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.14) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.13...v4.0.14) ##### 🚀 Experimental Features - **browser**: Expose `utils.configurePrettyDOM` - by [@​sheremet-va](https://github.com/sheremet-va) in [#​9103](https://github.com/vitest-dev/vitest/issues/9103) [<samp>(2cc34)</samp>](https://github.com/vitest-dev/vitest/commit/2cc34e0d4) - **runner**: Add full names to tasks - by [@​macarie](https://github.com/macarie) in [#​9087](https://github.com/vitest-dev/vitest/issues/9087) [<samp>(821aa)</samp>](https://github.com/vitest-dev/vitest/commit/821aa2002) - **ui**: Add tabbed failure view for `toMatchScreenshot` with comparison slider - by [@​macarie](https://github.com/macarie) in [#​8813](https://github.com/vitest-dev/vitest/issues/8813) [<samp>(c37c2)</samp>](https://github.com/vitest-dev/vitest/commit/c37c2eb0b) ##### 🐞 Bug Fixes - Externalize before caching - by [@​sheremet-va](https://github.com/sheremet-va) in [#​9077](https://github.com/vitest-dev/vitest/issues/9077) [<samp>(e1b2e)</samp>](https://github.com/vitest-dev/vitest/commit/e1b2e086a) - Collect the duration of external imports - by [@​sheremet-va](https://github.com/sheremet-va) in [#​9097](https://github.com/vitest-dev/vitest/issues/9097) [<samp>(3326c)</samp>](https://github.com/vitest-dev/vitest/commit/3326cc9f4) - Rename `collect` to `import`, remove `prepare` - by [@​sheremet-va](https://github.com/sheremet-va) in [#​9091](https://github.com/vitest-dev/vitest/issues/9091) [<samp>(1256b)</samp>](https://github.com/vitest-dev/vitest/commit/1256b5ca3) - **browser**: - Unsubscribe `onCancel` on rpc destroy - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​9088](https://github.com/vitest-dev/vitest/issues/9088) [<samp>(f5b72)</samp>](https://github.com/vitest-dev/vitest/commit/f5b72374b) - Revert the viewport scaling in non-ui mode [#​9018](https://github.com/vitest-dev/vitest/issues/9018) - by [@​sheremet-va](https://github.com/sheremet-va) in [#​9072](https://github.com/vitest-dev/vitest/issues/9072) and [#​9018](https://github.com/vitest-dev/vitest/issues/9018) [<samp>(64502)</samp>](https://github.com/vitest-dev/vitest/commit/64502a2c4) - **coverage**: - Invalidate circular modules correctly on rerun with coverage - by [@​aicest](https://github.com/aicest) in [#​9096](https://github.com/vitest-dev/vitest/issues/9096) [<samp>(6f22c)</samp>](https://github.com/vitest-dev/vitest/commit/6f22c675f) - **expect**: - Allow function as standard schema - by [@​hi-ogawa](https://github.com/hi-ogawa) in [#​9099](https://github.com/vitest-dev/vitest/issues/9099) [<samp>(ed8a2)</samp>](https://github.com/vitest-dev/vitest/commit/ed8a2ebbd) - **jsdom**: - Reuse abort signals if possible - by [@​sheremet-va](https://github.com/sheremet-va) in [#​9090](https://github.com/vitest-dev/vitest/issues/9090) [<samp>(2c468)</samp>](https://github.com/vitest-dev/vitest/commit/2c468ee95) - **pool**: - Init `VITEST_POOL_ID` + `VITEST_WORKER_ID` before environment setup - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​9085](https://github.com/vitest-dev/vitest/issues/9085) [<samp>(37918)</samp>](https://github.com/vitest-dev/vitest/commit/379185b40) - **web-worker**: - `postMessage` to send ports to workers - by [@​whitphx](https://github.com/whitphx) and [@​AriPerkkio](https://github.com/AriPerkkio) in [#​9078](https://github.com/vitest-dev/vitest/issues/9078) [<samp>(9d176)</samp>](https://github.com/vitest-dev/vitest/commit/9d1763d11) ##### 🏎 Performance - Replace `debug` with `obug` - by [@​sxzz](https://github.com/sxzz) and [@​AriPerkkio](https://github.com/AriPerkkio) in [#​9057](https://github.com/vitest-dev/vitest/issues/9057) [<samp>(acc51)</samp>](https://github.com/vitest-dev/vitest/commit/acc5152b9) ##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.13...v4.0.14) ### [`v4.0.13`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.13) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.12...v4.0.13) ##### 🐞 Bug Fixes - **types**: - Don't use type from Vite 7.1 - by [@​sheremet-va](https://github.com/sheremet-va) in [#​9071](https://github.com/vitest-dev/vitest/issues/9071) [<samp>(6356b)</samp>](https://github.com/vitest-dev/vitest/commit/6356b1d38) - Don't import node.js dependent types in vitest/browser - by [@​sheremet-va](https://github.com/sheremet-va) in [#​9068](https://github.com/vitest-dev/vitest/issues/9068) [<samp>(332af)</samp>](https://github.com/vitest-dev/vitest/commit/332afa0de) ##### 🏎 Performance - Avoid fetchModule roundtrip if the module is cached - by [@​sheremet-va](https://github.com/sheremet-va) in [#​9075](https://github.com/vitest-dev/vitest/issues/9075) [<samp>(b27e0)</samp>](https://github.com/vitest-dev/vitest/commit/b27e002e5) - **experimental**: If `fsCacheModule` is enabled, read from the memory when possible - by [@​sheremet-va](https://github.com/sheremet-va) in [#​9076](https://github.com/vitest-dev/vitest/issues/9076) [<samp>(6b9a1)</samp>](https://github.com/vitest-dev/vitest/commit/6b9a1b5b1) ##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.12...v4.0.13) ### [`v4.0.12`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.12) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.11...v4.0.12) ##### 🐞 Bug Fixes - Inherit `fsModuleCachePath` by default - by [@​sheremet-va](https://github.com/sheremet-va) in [#​9063](https://github.com/vitest-dev/vitest/issues/9063) [<samp>(9a8bc)</samp>](https://github.com/vitest-dev/vitest/commit/9a8bc78c5) - Don't import from `@opentelemetry/api` in public types - by [@​sheremet-va](https://github.com/sheremet-va) in [#​9066](https://github.com/vitest-dev/vitest/issues/9066) [<samp>(e944a)</samp>](https://github.com/vitest-dev/vitest/commit/e944a37b7) ##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.11...v4.0.12) ### [`v4.0.11`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.11) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.10...v4.0.11) ##### 🚀 Experimental Features - **api**: Add extensible test artifact API - by [@​macarie](https://github.com/macarie) in [#​8987](https://github.com/vitest-dev/vitest/issues/8987) [<samp>(77292)</samp>](https://github.com/vitest-dev/vitest/commit/772923645) - See more at <https://vitest.dev/api/advanced/artifacts> - **expect**: Provide `task` in `MatchState` - by [@​macarie](https://github.com/macarie) in [#​9022](https://github.com/vitest-dev/vitest/issues/9022) [<samp>(afd1f)</samp>](https://github.com/vitest-dev/vitest/commit/afd1f3e52) - **experimental**: Support OpenTelemetry traces - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8994](https://github.com/vitest-dev/vitest/issues/8994) [<samp>(d6d33)</samp>](https://github.com/vitest-dev/vitest/commit/d6d3359dd) - See more at <https://vitest.dev/guide/open-telemetry> ##### 🏎 Performance - **experimental**: Add file system cache - by [@​sheremet-va](https://github.com/sheremet-va) in [#​9026](https://github.com/vitest-dev/vitest/issues/9026) [<samp>(1b147)</samp>](https://github.com/vitest-dev/vitest/commit/1b1473712) - See more at <https://vitest.dev/config/experimental#experimental-fsmodulecache> ##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.10...v4.0.11) ### [`v4.0.10`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.10) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.9...v4.0.10) ##### 🐞 Bug Fixes - Remove `onCancel` when worker is terminated - by [@​sheremet-va](https://github.com/sheremet-va) in [#​9033](https://github.com/vitest-dev/vitest/issues/9033) [<samp>(6d7f0)</samp>](https://github.com/vitest-dev/vitest/commit/6d7f0a99e) - **browser**: - Don't scale the iframe if UI is disabled - by [@​sheremet-va](https://github.com/sheremet-va) in [#​9018](https://github.com/vitest-dev/vitest/issues/9018) [<samp>(5406e)</samp>](https://github.com/vitest-dev/vitest/commit/5406e8ea4) - Handle dependency stack traces with external source maps. Resolves: [#​9003](https://github.com/vitest-dev/vitest/issues/9003) - by [@​iclectic](https://github.com/iclectic) in [#​9016](https://github.com/vitest-dev/vitest/issues/9016) and [#​9003](https://github.com/vitest-dev/vitest/issues/9003) [<samp>(57ae5)</samp>](https://github.com/vitest-dev/vitest/commit/57ae547de) - **bun**: - Parsing of stack trace for bun runtime - by [@​nazarhussain](https://github.com/nazarhussain) in [#​9032](https://github.com/vitest-dev/vitest/issues/9032) [<samp>(f3ec6)</samp>](https://github.com/vitest-dev/vitest/commit/f3ec6fcb0) - **core**: - Prevent starting new run when cancelling - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​8991](https://github.com/vitest-dev/vitest/issues/8991) [<samp>(eb98d)</samp>](https://github.com/vitest-dev/vitest/commit/eb98dd8fd) - **pool**: - Prevent writing to closed worker - by [@​AriPerkkio](https://github.com/AriPerkkio) and [@​sheremet-va](https://github.com/sheremet-va) in [#​9023](https://github.com/vitest-dev/vitest/issues/9023) [<samp>(042c6)</samp>](https://github.com/vitest-dev/vitest/commit/042c60c80) - **reporters**: - Report correct test run duration at the end - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8969](https://github.com/vitest-dev/vitest/issues/8969) [<samp>(bc3a6)</samp>](https://github.com/vitest-dev/vitest/commit/bc3a6921e) - **ui**: - Use execution time from ws reporter (`onFinished`) - by [@​userquin](https://github.com/userquin) in [#​8975](https://github.com/vitest-dev/vitest/issues/8975) [<samp>(f56dc)</samp>](https://github.com/vitest-dev/vitest/commit/f56dc0cc4) ##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.9...v4.0.10) ### [`v4.0.9`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.9) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.8...v4.0.9) ##### 🚀 Experimental Features - **expect**: Add Set support to toBeOneOf - by [@​tim-we](https://github.com/tim-we) and [@​sheremet-va](https://github.com/sheremet-va) in [#​8906](https://github.com/vitest-dev/vitest/issues/8906) [<samp>(a415d)</samp>](https://github.com/vitest-dev/vitest/commit/a415d0375) ##### 🐞 Bug Fixes - **browser**: Add favicon icons to the browser mode ui - by [@​userquin](https://github.com/userquin) in [#​8972](https://github.com/vitest-dev/vitest/issues/8972) [<samp>(353ee)</samp>](https://github.com/vitest-dev/vitest/commit/353ee5bbc) - **forks**: Increase worker start timeout - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​9027](https://github.com/vitest-dev/vitest/issues/9027) [<samp>(5e750)</samp>](https://github.com/vitest-dev/vitest/commit/5e750f4ba) - **jsdom**: Cloned request is an instance of `Request` - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8985](https://github.com/vitest-dev/vitest/issues/8985) [<samp>(506a9)</samp>](https://github.com/vitest-dev/vitest/commit/506a9fd0f) - **ui**: Collect file/suite/test duration correctly - by [@​userquin](https://github.com/userquin) in [#​8976](https://github.com/vitest-dev/vitest/issues/8976) [<samp>(8016d)</samp>](https://github.com/vitest-dev/vitest/commit/8016da886) ##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.8...v4.0.9) ### [`v4.0.8`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.8) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.7...v4.0.8) ##### 🐞 Bug Fixes - Workaround `noExternal` merging bug on Vite 6 - by [@​hi-ogawa](https://github.com/hi-ogawa) in [#​8950](https://github.com/vitest-dev/vitest/issues/8950) [<samp>(bcb13)</samp>](https://github.com/vitest-dev/vitest/commit/bcb132fd4) - Missed context.d.ts file - by [@​termorey](https://github.com/termorey) in [#​8965](https://github.com/vitest-dev/vitest/issues/8965) [<samp>(9044d)</samp>](https://github.com/vitest-dev/vitest/commit/9044d9356) - Incorrect error message for non-awaited `expect.element()` - by [@​StyleShit](https://github.com/StyleShit) in [#​8954](https://github.com/vitest-dev/vitest/issues/8954) [<samp>(9638d)</samp>](https://github.com/vitest-dev/vitest/commit/9638db0f3) - **browser**: Cleanup frame-ancestors from CSP header at coverage middleware - by [@​userquin](https://github.com/userquin) in [#​8941](https://github.com/vitest-dev/vitest/issues/8941) [<samp>(1f730)</samp>](https://github.com/vitest-dev/vitest/commit/1f7303738) - **deps**: Update all non-major dependencies - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8636](https://github.com/vitest-dev/vitest/issues/8636) [<samp>(da8b9)</samp>](https://github.com/vitest-dev/vitest/commit/da8b93aa5) - **forks**: Do not fail with Windows Defender enabled - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8967](https://github.com/vitest-dev/vitest/issues/8967) [<samp>(c79f4)</samp>](https://github.com/vitest-dev/vitest/commit/c79f47c65) - **runner**: Properly encode Uint8Array body in annotations - by [@​Livan-pro](https://github.com/Livan-pro) in [#​8951](https://github.com/vitest-dev/vitest/issues/8951) [<samp>(997ca)</samp>](https://github.com/vitest-dev/vitest/commit/997ca5a82) - **spy**: Copy static properties if spy is initialised with `vi.fn()`, fix types for `vi.spyOn(obj, class)` - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8956](https://github.com/vitest-dev/vitest/issues/8956) [<samp>(75e7f)</samp>](https://github.com/vitest-dev/vitest/commit/75e7fcc51) - **webdriverio**: When no argument is passed to the .click interaction command, the webdriver command should also have no argument - by [@​julienw](https://github.com/julienw) in [#​8937](https://github.com/vitest-dev/vitest/issues/8937) [<samp>(069e6)</samp>](https://github.com/vitest-dev/vitest/commit/069e6db9b) ##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.7...v4.0.8) ### [`v4.0.7`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.7) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.6...v4.0.7) ##### 🐞 Bug Fixes - Bind `process` in case global is overwritten - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​8916](https://github.com/vitest-dev/vitest/issues/8916) [<samp>(6240d)</samp>](https://github.com/vitest-dev/vitest/commit/6240d51a6) - Create environment once per worker with `isolate: false` - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8915](https://github.com/vitest-dev/vitest/issues/8915) [<samp>(c9078)</samp>](https://github.com/vitest-dev/vitest/commit/c9078a26e) - Add Locator as a possible element type in `toContainElement()` matcher - by [@​vitalybaev](https://github.com/vitalybaev) in [#​8910](https://github.com/vitest-dev/vitest/issues/8910) and [#​8927](https://github.com/vitest-dev/vitest/issues/8927) [<samp>(35a27)</samp>](https://github.com/vitest-dev/vitest/commit/35a27d4b3) - **browser**: Inherit `isolate` option, deprecate `browser.isolate`/`browser.fileParallelism` - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8890](https://github.com/vitest-dev/vitest/issues/8890) [<samp>(9d2b4)</samp>](https://github.com/vitest-dev/vitest/commit/9d2b4d501) - **cli**: Parse `--execArgv` as array - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​8924](https://github.com/vitest-dev/vitest/issues/8924) [<samp>(751c3)</samp>](https://github.com/vitest-dev/vitest/commit/751c3926f) - **jsdom**: Support `URL.createObjectURL`, `FormData.set(prop, blob)` - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8935](https://github.com/vitest-dev/vitest/issues/8935) [<samp>(a1b73)</samp>](https://github.com/vitest-dev/vitest/commit/a1b7361ab) - **pool**: Avoid `--require` argument when running in deno - by [@​pi0](https://github.com/pi0) in [#​8897](https://github.com/vitest-dev/vitest/issues/8897) [<samp>(d41fa)</samp>](https://github.com/vitest-dev/vitest/commit/d41fa742f) - **typecheck**: Handle re-runs outside `tsc` - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​8920](https://github.com/vitest-dev/vitest/issues/8920) [<samp>(fdb2e)</samp>](https://github.com/vitest-dev/vitest/commit/fdb2e7982) ##### 🏎 Performance - **pool**: - Sort test files by project by default - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​8914](https://github.com/vitest-dev/vitest/issues/8914) [<samp>(680a6)</samp>](https://github.com/vitest-dev/vitest/commit/680a612ea) - **reporters**: - Optimize getting the tests stats - by [@​Connormiha](https://github.com/Connormiha) in [#​8908](https://github.com/vitest-dev/vitest/issues/8908) [<samp>(06d62)</samp>](https://github.com/vitest-dev/vitest/commit/06d6207fb) - Remove unnecessary `Array.from` call - by [@​Connormiha](https://github.com/Connormiha) in [#​8907](https://github.com/vitest-dev/vitest/issues/8907) [<samp>(b6014)</samp>](https://github.com/vitest-dev/vitest/commit/b60149b27) ##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.6...v4.0.7) ### [`v4.0.6`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.6) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.5...v4.0.6) ##### 🐞 Bug Fixes - Don't merge errors with different diffs for reporting - by [@​hi-ogawa](https://github.com/hi-ogawa) in [#​8871](https://github.com/vitest-dev/vitest/issues/8871) [<samp>(3e19f)</samp>](https://github.com/vitest-dev/vitest/commit/3e19f27d0) - Do not throw when importing a type from an external package - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8875](https://github.com/vitest-dev/vitest/issues/8875) [<samp>(7e6c3)</samp>](https://github.com/vitest-dev/vitest/commit/7e6c37ae5) - Improve spying types - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8878](https://github.com/vitest-dev/vitest/issues/8878) [<samp>(ca041)</samp>](https://github.com/vitest-dev/vitest/commit/ca041f51a) - Reuse the same environment when `isolate` and `fileParallelism` are false - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8889](https://github.com/vitest-dev/vitest/issues/8889) [<samp>(31706)</samp>](https://github.com/vitest-dev/vitest/commit/31706dfe5) - **browser**: - Support module tracking - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8877](https://github.com/vitest-dev/vitest/issues/8877) [<samp>(9e24a)</samp>](https://github.com/vitest-dev/vitest/commit/9e24a59f2) - Ensure setup files are re-evaluated on each test run - by [@​yjaaidi](https://github.com/yjaaidi) in [#​8883](https://github.com/vitest-dev/vitest/issues/8883) and [#​8884](https://github.com/vitest-dev/vitest/issues/8884) [<samp>(f50ea)</samp>](https://github.com/vitest-dev/vitest/commit/f50ea7a25) - **coverage**: - Prevent filtering out virtual files before remapping to sources - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​8860](https://github.com/vitest-dev/vitest/issues/8860) [<samp>(e3b77)</samp>](https://github.com/vitest-dev/vitest/commit/e3b777550) - **happy-dom**: - Properly teardown additional keys - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8888](https://github.com/vitest-dev/vitest/issues/8888) [<samp>(10a06)</samp>](https://github.com/vitest-dev/vitest/commit/10a06d8c9) - **jsdom**: - Pass down Node.js `FormData` to `Request` - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8880](https://github.com/vitest-dev/vitest/issues/8880) [<samp>(197ca)</samp>](https://github.com/vitest-dev/vitest/commit/197caf2f9) ##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.5...v4.0.6) ### [`v4.0.5`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.5) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.4...v4.0.5) ##### 🐞 Bug Fixes - Respect `ssr.noExternal` when externalizing dependencies, fix Svelte and Astro - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8862](https://github.com/vitest-dev/vitest/issues/8862) [<samp>(a4f86)</samp>](https://github.com/vitest-dev/vitest/commit/a4f86f1ba) - Allow module in --config - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8864](https://github.com/vitest-dev/vitest/issues/8864) [<samp>(b9521)</samp>](https://github.com/vitest-dev/vitest/commit/b9521e0c2) - **browser**: Allow `Locator` type in selectOptions element parameter - by [@​rzzf](https://github.com/rzzf) and [@​sheremet-va](https://github.com/sheremet-va) in [#​8848](https://github.com/vitest-dev/vitest/issues/8848) [<samp>(7ee28)</samp>](https://github.com/vitest-dev/vitest/commit/7ee283c96) - **module-runner**: Don't return node builtins for `getBuiltins` unconditionally - by [@​sapphi-red](https://github.com/sapphi-red) in [#​8863](https://github.com/vitest-dev/vitest/issues/8863) [<samp>(0e858)</samp>](https://github.com/vitest-dev/vitest/commit/0e858bab4) - **pool**: Rename `groupId` to `groupOrder` in error message - by [@​Yohannfra](https://github.com/Yohannfra) in [#​8856](https://github.com/vitest-dev/vitest/issues/8856) [<samp>(b9aab)</samp>](https://github.com/vitest-dev/vitest/commit/b9aabf4e6) ##### 🏎 Performance - Pass testfiles at once when `--no-isolate --maxWorkers=1` - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​8835](https://github.com/vitest-dev/vitest/issues/8835) [<samp>(584aa)</samp>](https://github.com/vitest-dev/vitest/commit/584aa7148) - **expect**: Optimize checking the input type - by [@​Connormiha](https://github.com/Connormiha) in [#​8840](https://github.com/vitest-dev/vitest/issues/8840) [<samp>(06968)</samp>](https://github.com/vitest-dev/vitest/commit/0696898b4) ##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.4...v4.0.5) ### [`v4.0.4`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.4) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.3...v4.0.4) ##### 🐞 Bug Fixes - **browser**: - Correct typo - by [@​benmccann](https://github.com/benmccann) in [#​8796](https://github.com/vitest-dev/vitest/issues/8796) [<samp>(ede1f)</samp>](https://github.com/vitest-dev/vitest/commit/ede1f39d6) - Publish a missing context file for webdriverio - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8824](https://github.com/vitest-dev/vitest/issues/8824) [<samp>(7c7b6)</samp>](https://github.com/vitest-dev/vitest/commit/7c7b6f0b1) - **mocker**: - Support mocking builtins without `node:` prefix - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8829](https://github.com/vitest-dev/vitest/issues/8829) [<samp>(06208)</samp>](https://github.com/vitest-dev/vitest/commit/06208d30b) - **pool**: - Runner's error listener causing `MaxListenersExceededWarning` - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​8820](https://github.com/vitest-dev/vitest/issues/8820) [<samp>(d1bff)</samp>](https://github.com/vitest-dev/vitest/commit/d1bff3bb3) - Capture workers `stdio` to logger - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​8809](https://github.com/vitest-dev/vitest/issues/8809) [<samp>(fb95f)</samp>](https://github.com/vitest-dev/vitest/commit/fb95fc736) - **spy**: - Allow classes in `vi.mocked` utility - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8839](https://github.com/vitest-dev/vitest/issues/8839) [<samp>(f8756)</samp>](https://github.com/vitest-dev/vitest/commit/f87568d64) - **worker**: - Rpc listener leak when `isolate: false` - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​8821](https://github.com/vitest-dev/vitest/issues/8821) [<samp>(573dc)</samp>](https://github.com/vitest-dev/vitest/commit/573dc06fe) ##### 🏎 Performance - **utils**: Optimized reducer to avoid creating new objects - by [@​Connormiha](https://github.com/Connormiha) in [#​8818](https://github.com/vitest-dev/vitest/issues/8818) [<samp>(d19ce)</samp>](https://github.com/vitest-dev/vitest/commit/d19cece3a) ##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.3...v4.0.4) ### [`v4.0.3`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.3) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.2...v4.0.3) ##### 🐞 Bug Fixes - Preserve reporter options from config when CLI reporters override them - by [@​Copilot](https://github.com/Copilot) and **sheremet-va** in [#​8794](https://github.com/vitest-dev/vitest/issues/8794) [<samp>(15552)</samp>](https://github.com/vitest-dev/vitest/commit/155521a85) - **browser**: More stable in-source testing validation - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8793](https://github.com/vitest-dev/vitest/issues/8793) [<samp>(62297)</samp>](https://github.com/vitest-dev/vitest/commit/622977e61) - **happy-dom**: Support fetch globals - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8791](https://github.com/vitest-dev/vitest/issues/8791) [<samp>(0fb74)</samp>](https://github.com/vitest-dev/vitest/commit/0fb74bd3b) - **init**: Use correct jsx/tsx extension - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8792](https://github.com/vitest-dev/vitest/issues/8792) [<samp>(abc04)</samp>](https://github.com/vitest-dev/vitest/commit/abc046f95) ##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.2...v4.0.3) ### [`v4.0.2`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.2) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.1...v4.0.2) ##### 🐞 Bug Fixes - **browser**: - Don't print the deprecation notice in node\_modules - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8779](https://github.com/vitest-dev/vitest/issues/8779) [<samp>(588f7)</samp>](https://github.com/vitest-dev/vitest/commit/588f76858) - **pool**: - Assign envs before running tests to keep in sync with process.env - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8769](https://github.com/vitest-dev/vitest/issues/8769) [<samp>(26ce8)</samp>](https://github.com/vitest-dev/vitest/commit/26ce88db6) - **spy**: - Properly inherit implementation's `length` - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8778](https://github.com/vitest-dev/vitest/issues/8778) [<samp>(d4c2b)</samp>](https://github.com/vitest-dev/vitest/commit/d4c2b280b) - Reset spies if both `restoreMocks` and `mockReset` are set in the config - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8781](https://github.com/vitest-dev/vitest/issues/8781) [<samp>(2eedb)</samp>](https://github.com/vitest-dev/vitest/commit/2eedbce76) ##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.1...v4.0.2) ### [`v4.0.1`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.1) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.0...v4.0.1) ##### 🐞 Bug Fixes - Move the `getBuiltins` check - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8765](https://github.com/vitest-dev/vitest/issues/8765) [<samp>(81000)</samp>](https://github.com/vitest-dev/vitest/commit/81000631d) - **pool**: Don't teardown the communication channel too soon if something is running after the test - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8767](https://github.com/vitest-dev/vitest/issues/8767) [<samp>(3fae7)</samp>](https://github.com/vitest-dev/vitest/commit/3fae73e2e) ##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.0...v4.0.1) ### [`v4.0.0`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.0) [Compare Source](https://github.com/vitest-dev/vitest/compare/v3.2.4...v4.0.0) Vitest 4.0 is out! To stay updated, read our [blog post](https://vitest.dev/blog/vitest-4) and check the [migration guide](https://vitest.dev/guide/migration). ##### 🚨 Breaking Changes - Remove `'basic'` reporter - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​7884](https://github.com/vitest-dev/vitest/issues/7884) [<samp>(82fcf)</samp>](https://github.com/vitest-dev/vitest/commit/82fcf5d53) - Simplify default exclude pattern - by [@​sheremet-va](https://github.com/sheremet-va) in [#​6287](https://github.com/vitest-dev/vitest/issues/6287) [<samp>(14c50)</samp>](https://github.com/vitest-dev/vitest/commit/14c507200) - Remove deprecated getSourceMap - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8194](https://github.com/vitest-dev/vitest/issues/8194) [<samp>(ff934)</samp>](https://github.com/vitest-dev/vitest/commit/ff93444f8) - Replace deprecated ErrorWithDiff with TestError - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8195](https://github.com/vitest-dev/vitest/issues/8195) [<samp>(da59e)</samp>](https://github.com/vitest-dev/vitest/commit/da59eb887) - Remove UserConfig type in favor of ViteUserConfig - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8196](https://github.com/vitest-dev/vitest/issues/8196) [<samp>(22f7f)</samp>](https://github.com/vitest-dev/vitest/commit/22f7f2db5) - Remove deprecated coverage options in favor of `vitest/node` exports - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8197](https://github.com/vitest-dev/vitest/issues/8197) [<samp>(dc848)</samp>](https://github.com/vitest-dev/vitest/commit/dc8486d22) - Remove deprecated internal helpers and environment exports - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8198](https://github.com/vitest-dev/vitest/issues/8198) [<samp>(4703c)</samp>](https://github.com/vitest-dev/vitest/commit/4703cf850) - Remove deprecated typecheck and runner types - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8199](https://github.com/vitest-dev/vitest/issues/8199) [<samp>(89a1c)</samp>](https://github.com/vitest-dev/vitest/commit/89a1cb626) - Remove Node types from the main entry point, use `vitest/node` instead - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8200](https://github.com/vitest-dev/vitest/issues/8200) [<samp>(1e60c)</samp>](https://github.com/vitest-dev/vitest/commit/1e60c4f44) - Remove support for Vite 5 - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8202](https://github.com/vitest-dev/vitest/issues/8202) [<samp>(cb8b0)</samp>](https://github.com/vitest-dev/vitest/commit/cb8b03bac) - Remove deprecated types - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8203](https://github.com/vitest-dev/vitest/issues/8203) [<samp>(66bee)</samp>](https://github.com/vitest-dev/vitest/commit/66bee836f) - Remove deprecated environmentMatchGlobs and poolMatchGlobs - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8205](https://github.com/vitest-dev/vitest/issues/8205) [<samp>(be11d)</samp>](https://github.com/vitest-dev/vitest/commit/be11d374c) - Remove deprecated `workspace` option in favor of `projects` - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8218](https://github.com/vitest-dev/vitest/issues/8218) [<samp>(76fb7)</samp>](https://github.com/vitest-dev/vitest/commit/76fb75d42) - Ignore `--standalone` when CLI filename filter is used - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​8262](https://github.com/vitest-dev/vitest/issues/8262) [<samp>(013bf)</samp>](https://github.com/vitest-dev/vitest/commit/013bf2cb2) - Use module-runner instead of vite-node - by [@​sheremet-va](https://github.com/sheremet-va) and [@​AriPerkkio](https://github.com/AriPerkkio) in [#​8208](https://github.com/vitest-dev/vitest/issues/8208) [<samp>(9be01)</samp>](https://github.com/vitest-dev/vitest/commit/9be01ba59) - Rewrite spying implementation to make module mocking more intuitive - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8363](https://github.com/vitest-dev/vitest/issues/8363) [<samp>(9e412)</samp>](https://github.com/vitest-dev/vitest/commit/9e412de35) - Remove deprecated APIs - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8428](https://github.com/vitest-dev/vitest/issues/8428) [<samp>(a1cb9)</samp>](https://github.com/vitest-dev/vitest/commit/a1cb9719a) - Remove `minWorkers` and set it automatically to 0 in non watch mode - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8454](https://github.com/vitest-dev/vitest/issues/8454) [<samp>(2c2d1)</samp>](https://github.com/vitest-dev/vitest/commit/2c2d1d4ce) - Verbose reporter prints tests in a list, introduce `tree` reporter - by [@​sheremet-va](https://github.com/sheremet-va) and [@​AriPerkkio](https://github.com/AriPerkkio) in [#​8500](https://github.com/vitest-dev/vitest/issues/8500) [<samp>(25fd3)</samp>](https://github.com/vitest-dev/vitest/commit/25fd32bf0) - Include shadow root contents in pretty-format output - by [@​wkillerud](https://github.com/wkillerud) in [#​8545](https://github.com/vitest-dev/vitest/issues/8545) [<samp>(9e722)</samp>](https://github.com/vitest-dev/vitest/commit/9e722834a) - Remove deprecated order from test() API - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8594](https://github.com/vitest-dev/vitest/issues/8594) [<samp>(4d419)</samp>](https://github.com/vitest-dev/vitest/commit/4d41928c6) - Rewrite pools without `tinypool` - by [@​AriPerkkio](https://github.com/AriPerkkio) and [@​sheremet-va](https://github.com/sheremet-va) in [#​8705](https://github.com/vitest-dev/vitest/issues/8705) [<samp>(4822d)</samp>](https://github.com/vitest-dev/vitest/commit/4822d047a) - **browser**: Require a provider factory instead of a string - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8445](https://github.com/vitest-dev/vitest/issues/8445) [<samp>(606cb)</samp>](https://github.com/vitest-dev/vitest/commit/606cb9e3e) - **expect**: Pass current equality testers to asymmetric matcher - by [@​hi-ogawa](https://github.com/hi-ogawa) in [#​6825](https://github.com/vitest-dev/vitest/issues/6825) [<samp>(965ce)</samp>](https://github.com/vitest-dev/vitest/commit/965cefc19) - **projects**: Allow only files that have "vitest.config" or "vite.config" in the name - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8542](https://github.com/vitest-dev/vitest/issues/8542) [<samp>(304bc)</samp>](https://github.com/vitest-dev/vitest/commit/304bc20f0) - **reporter**: Remove deprecated APIs - by [@​AriPerkkio](https://github.com/AriPerkkio) and [@​sheremet-va](https://github.com/sheremet-va) in [#​8223](https://github.com/vitest-dev/vitest/issues/8223) [<samp>(149f8)</samp>](https://github.com/vitest-dev/vitest/commit/149f8e509) - **runner**: Set mode to `todo` if no function is passed down to `test` or `describe` - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8346](https://github.com/vitest-dev/vitest/issues/8346) [<samp>(1a81c)</samp>](https://github.com/vitest-dev/vitest/commit/1a81c21d2) - **snapshot**: Fail test with obsolete snapshot on CI - by [@​hi-ogawa](https://github.com/hi-ogawa) in [#​7963](https://github.com/vitest-dev/vitest/issues/7963) [<samp>(4d84f)</samp>](https://github.com/vitest-dev/vitest/commit/4d84f0ac6) - **spy**: Support spying on classes - by [@​sheremet-va](https://github.com/sheremet-va) in [#​6160](https://github.com/vitest-dev/vitest/issues/6160) [<samp>(abc0d)</samp>](https://github.com/vitest-dev/vitest/commit/abc0d8273) ##### 🚀 Features - Provide entity to onConsoleLog - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8159](https://github.com/vitest-dev/vitest/issues/8159) [<samp>(437d4)</samp>](https://github.com/vitest-dev/vitest/commit/437d461aa) - Add `onUnhandledError` callback - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8162](https://github.com/vitest-dev/vitest/issues/8162) [<samp>(924cb)</samp>](https://github.com/vitest-dev/vitest/commit/924cb6961) - Add spy option to vi.mockObject - by [@​rChaoz](https://github.com/rChaoz) in [#​8285](https://github.com/vitest-dev/vitest/issues/8285) [<samp>(81d76)</samp>](https://github.com/vitest-dev/vitest/commit/81d7601e4) - Don't use vite-node in coverage packages - by [@​sheremet-va](https://github.com/sheremet-va) [<samp>(ffdb4)</samp>](https://github.com/vitest-dev/vitest/commit/ffdb4d5fd) - Clickable dashboard numbers - by [@​shairez](https://github.com/shairez) in [#​7406](https://github.com/vitest-dev/vitest/issues/7406) [<samp>(2344c)</samp>](https://github.com/vitest-dev/vitest/commit/2344c1f6e) - Display test "path" when filtering - by [@​userquin](https://github.com/userquin) in [#​8547](https://github.com/vitest-dev/vitest/issues/8547) [<samp>(2e491)</samp>](https://github.com/vitest-dev/vitest/commit/2e4918954) - Introduce separate packages for browser mode providers - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8629](https://github.com/vitest-dev/vitest/issues/8629) [<samp>(0dc93)</samp>](https://github.com/vitest-dev/vitest/commit/0dc93ea98) - Add hooks with type-safe extra context to TestAPI - by [@​ysfaran](https://github.com/ysfaran) in [#​8623](https://github.com/vitest-dev/vitest/issues/8623) [<samp>(6b21c)</samp>](https://github.com/vitest-dev/vitest/commit/6b21cfe55) - Support `expect.assert` for type narrowing - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8695](https://github.com/vitest-dev/vitest/issues/8695) [<samp>(fe589)</samp>](https://github.com/vitest-dev/vitest/commit/fe5895d2b) - Add `displayAnnotations` option to `github-options` - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8706](https://github.com/vitest-dev/vitest/issues/8706) [<samp>(4a66d)</samp>](https://github.com/vitest-dev/vitest/commit/4a66df625) - Add schema validation matchers - by [@​zirkelc](https://github.com/zirkelc) in [#​8527](https://github.com/vitest-dev/vitest/issues/8527) [<samp>(c0b25)</samp>](https://github.com/vitest-dev/vitest/commit/c0b250e5c) - Add a way to dump transformed content - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8711](https://github.com/vitest-dev/vitest/issues/8711) [<samp>(931c0)</samp>](https://github.com/vitest-dev/vitest/commit/931c0ee63) - **api**: - Expose `experimental_parseSpecifications` - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8408](https://github.com/vitest-dev/vitest/issues/8408) [<samp>(fdeb2)</samp>](https://github.com/vitest-dev/vitest/commit/fdeb2f482) - Expose Vitest watcher - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8413](https://github.com/vitest-dev/vitest/issues/8413) [<samp>(aaa6e)</samp>](https://github.com/vitest-dev/vitest/commit/aaa6e6512) - Add `enableCoverage` and `disableCoverage` methods - by [@​sheremet-va](https://github.com/sheremet-va) and [@​AriPerkkio](https://github.com/AriPerkkio) in [#​8412](https://github.com/vitest-dev/vitest/issues/8412) [<samp>(61eb7)</samp>](https://github.com/vitest-dev/vitest/commit/61eb7dd9c) - Add `getGlobalTestNamePattern` method - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8438](https://github.com/vitest-dev/vitest/issues/8438) [<samp>(bdb70)</samp>](https://github.com/vitest-dev/vitest/commit/bdb7067f1) - Add `relativeModuleId` to `TestModule` - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8505](https://github.com/vitest-dev/vitest/issues/8505) [<samp>(3be09)</samp>](https://github.com/vitest-dev/vitest/commit/3be0986aa) - Add `getSeed` method - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8592](https://github.com/vitest-dev/vitest/issues/8592) [<samp>(438c4)</samp>](https://github.com/vitest-dev/vitest/commit/438c44e7f) - **browser**: - Support `toBeInViewport` utility method to assert element is in viewport or not - by [@​Shinyaigeek](https://github.com/Shinyaigeek) in [#​8234](https://github.com/vitest-dev/vitest/issues/8234) [<samp>(ceed5)</samp>](https://github.com/vitest-dev/vitest/commit/ceed5b622) - Add qwik to the `vitest init` cli command - by [@​thejackshelton](https://github.com/thejackshelton) in [#​8330](https://github.com/vitest-dev/vitest/issues/8330) [<samp>(1638b)</samp>](https://github.com/vitest-dev/vitest/commit/1638b44e8) - Introduce `toMatchScreenshot` for Visual Regression Testing - by [@​macarie](https://github.com/macarie) in [#​8041](https://github.com/vitest-dev/vitest/issues/8041) [<samp>(d45f9)</samp>](https://github.com/vitest-dev/vitest/commit/d45f964c1) - Add `trackUnhandledErrors` option - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8386](https://github.com/vitest-dev/vitest/issues/8386) [<samp>(c0ec0)</samp>](https://github.com/vitest-dev/vitest/commit/c0ec08a90) - Support iframe locator with playwright provider - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8016](https://github.com/vitest-dev/vitest/issues/8016) [<samp>(57b2c)</samp>](https://github.com/vitest-dev/vitest/commit/57b2cca2e) - Add `length` property to locators, `toHaveLength` now accepts locators - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8512](https://github.com/vitest-dev/vitest/issues/8512) [<samp>(2308c)</samp>](https://github.com/vitest-dev/vitest/commit/2308cbf13) - Support playwright tracing - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8584](https://github.com/vitest-dev/vitest/issues/8584) [<samp>(1aac5)</samp>](https://github.com/vitest-dev/vitest/commit/1aac59cd2) - Expose `options` on `BrowserProviderOption` - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8609](https://github.com/vitest-dev/vitest/issues/8609) [<samp>(0d0e5)</samp>](https://github.com/vitest-dev/vitest/commit/0d0e5cdf6) - Support `--inspect` option in webdriverio - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8613](https://github.com/vitest-dev/vitest/issues/8613) [<samp>(38adc)</samp>](https://github.com/vitest-dev/vitest/commit/38adc86cf) - Support custom screenshot comparison algorithms - by [@​macarie](https://github.com/macarie) in [#​8687](https://github.com/vitest-dev/vitest/issues/8687) [<samp>(e63b1)</samp>](https://github.com/vitest-dev/vitest/commit/e63b17efc) - **coverage**: - `autoUpdate` to support percentage formatting - by [@​Battjmo](https://github.com/Battjmo) and [@​AriPerkkio](https://github.com/AriPerkkio) in [#​8456](https://github.com/vitest-dev/vitest/issues/8456) [<samp>(99e01)</samp>](https://github.com/vitest-dev/vitest/commit/99e016bec) - **expect**: - Support `toBeNullable` expect function to check provided value is nullish - by [@​Shinyaigeek](https://github.com/Shinyaigeek) and [@​sheremet-va](https://github.com/sheremet-va) in [#​8294](https://github.com/vitest-dev/vitest/issues/8294) [<samp>(eeec5)</samp>](https://github.com/vitest-dev/vitest/commit/eeec501de) - **mocker**: - Add `automocker` entry - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8301](https://github.com/vitest-dev/vitest/issues/8301) [<samp>(e9c92)</samp>](https://github.com/vitest-dev/vitest/commit/e9c928252) ##### 🐞 Bug Fixes - Allow overriding globals in types - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8215](https://github.com/vitest-dev/vitest/issues/8215) [<samp>(2248b)</samp>](https://github.com/vitest-dev/vitest/commit/2248b06d4) - Remove unused dependencies - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​8184](https://github.com/vitest-dev/vitest/issues/8184) [<samp>(feadc)</samp>](https://github.com/vitest-dev/vitest/commit/feadc60af) - Distribute test files to shards more evenly - by [@​Shinyaigeek](https://github.com/Shinyaigeek) and [@​AriPerkkio](https://github.com/AriPerkkio) in [#​8288](https://github.com/vitest-dev/vitest/issues/8288) [<samp>(7b489)</samp>](https://github.com/vitest-dev/vitest/commit/7b489959a) - Use suite's timeout when `test.extend` - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​8278](https://github.com/vitest-dev/vitest/issues/8278) [<samp>(43977)</samp>](https://github.com/vitest-dev/vitest/commit/43977c2b8) - Support snapshot with no object key sorting - by [@​hi-ogawa](https://github.com/hi-ogawa) and [@​sheremet-va](https://github.com/sheremet-va) in [#​8136](https://github.com/vitest-dev/vitest/issues/8136) [<samp>(e85e3)</samp>](https://github.com/vitest-dev/vitest/commit/e85e396f0) - Annotation location always points to the test file - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8315](https://github.com/vitest-dev/vitest/issues/8315) [<samp>(88071)</samp>](https://github.com/vitest-dev/vitest/commit/88071a8f2) - Add `--changed` flag support to `vitest list` command - by [@​haakonjackfloat](https://github.com/haakonjackfloat) in [#​8270](https://github.com/vitest-dev/vitest/issues/8270) and [#​8272](https://github.com/vitest-dev/vitest/issues/8272) [<samp>(e71a5)</samp>](https://github.com/vitest-dev/vitest/commit/e71a5d0ec) - Prevent rpc timeout on slow thread blocking synchronous methods - by [@​AriPerkkio](https://github.com/AriPerkkio) and [@​sheremet-va](https://github.com/sheremet-va) in [#​8297](https://github.com/vitest-dev/vitest/issues/8297) [<samp>(bea87)</samp>](https://github.com/vitest-dev/vitest/commit/bea874610) - Forbid setting environment to `browser` - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8334](https://github.com/vitest-dev/vitest/issues/8334) [<samp>(0417a)</samp>](https://github.com/vitest-dev/vitest/commit/0417a2c1a) - Invalidate modules in all module graphs when the file is changed - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8352](https://github.com/vitest-dev/vitest/issues/8352) [<samp>(94ab3)</samp>](https://github.com/vitest-dev/vitest/commit/94ab392b3) - Screenshot masks with Playwright provider - by [@​macarie](https://github.com/macarie) in [#​8357](https://github.com/vitest-dev/vitest/issues/8357) [<samp>(459ef)</samp>]…
chore(deps): update vitest (major) This MR contains the following updates: | Package | Type | Update | Change | OpenSSF | |---|---|---|---|---| | [vitest](https://vitest.dev) ([source](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest)) | devDependencies | major | [`^3.2.4` → `^4.0.0`](https://renovatebot.com/diffs/npm/vitest/3.2.4/4.0.18) | [](https://securityscorecards.dev/viewer/?uri=github.com/vitest-dev/vitest) | --- ### Release Notes <details> <summary>vitest-dev/vitest (vitest)</summary> ### [`v4.0.18`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.18) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.17...v4.0.18) ##### 🚀 Experimental Features - **experimental**: Add `onModuleRunner` hook to `worker.init` - by [@​sheremet-va](https://github.com/sheremet-va) in [#​9286](https://github.com/vitest-dev/vitest/issues/9286) [<samp>(ea837)</samp>](https://github.com/vitest-dev/vitest/commit/ea837de7d) ##### 🐞 Bug Fixes - Use `meta.url` in `createRequire` - by [@​sheremet-va](https://github.com/sheremet-va) in [#​9441](https://github.com/vitest-dev/vitest/issues/9441) [<samp>(e0572)</samp>](https://github.com/vitest-dev/vitest/commit/e057281ca) - **browser**: Hide injected data-testid attributes - by [@​sheremet-va](https://github.com/sheremet-va) in [#​9503](https://github.com/vitest-dev/vitest/issues/9503) [<samp>(f8989)</samp>](https://github.com/vitest-dev/vitest/commit/f89899cd8) - **ui**: Process artifact attachments when generating HTML reporter - by [@​macarie](https://github.com/macarie) in [#​9472](https://github.com/vitest-dev/vitest/issues/9472) [<samp>(22543)</samp>](https://github.com/vitest-dev/vitest/commit/225435647) ##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.17...v4.0.18) ### [`v4.0.17`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.17) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.16...v4.0.17) ##### 🚀 Experimental Features - Support openTelemetry for browser mode - by [@​hi-ogawa](https://github.com/hi-ogawa) in [#​9180](https://github.com/vitest-dev/vitest/issues/9180) [<samp>(1ec3a)</samp>](https://github.com/vitest-dev/vitest/commit/1ec3a8b68) - Support TRACEPARENT and TRACESTATE environment variables for OpenTelemetry context propagation - by [@​Copilot](https://github.com/Copilot), **hi-ogawa** and [@​hi-ogawa](https://github.com/hi-ogawa) in [#​9295](https://github.com/vitest-dev/vitest/issues/9295) [<samp>(876cb)</samp>](https://github.com/vitest-dev/vitest/commit/876cb84c2) ##### 🐞 Bug Fixes - Improve asymmetric matcher diff readability by unwrapping container matchers - by [@​Copilot](https://github.com/Copilot), **sheremet-va**, **hi-ogawa** and [@​hi-ogawa](https://github.com/hi-ogawa) in [#​9330](https://github.com/vitest-dev/vitest/issues/9330) [<samp>(b2ec7)</samp>](https://github.com/vitest-dev/vitest/commit/b2ec724a8) - Improve runner error when importing outside of test context - by [@​sheremet-va](https://github.com/sheremet-va) in [#​9335](https://github.com/vitest-dev/vitest/issues/9335) [<samp>(2dd3d)</samp>](https://github.com/vitest-dev/vitest/commit/2dd3dd839) - Replace crypto.randomUUID to allow insecure environments (fix [#​9](https://github.com/vitest-dev/vitest/issues/9)… - by [@​plusgut](https://github.com/plusgut) in [#​9339](https://github.com/vitest-dev/vitest/issues/9339) and [#​9](https://github.com/vitest-dev/vitest/issues/9) [<samp>(e6a3f)</samp>](https://github.com/vitest-dev/vitest/commit/e6a3f8cc7) - Handle null options in `addEventHandler` [#​9371](https://github.com/vitest-dev/vitest/issues/9371) - by [@​ThibautMarechal](https://github.com/ThibautMarechal) in [#​9372](https://github.com/vitest-dev/vitest/issues/9372) and [#​9371](https://github.com/vitest-dev/vitest/issues/9371) [<samp>(40841)</samp>](https://github.com/vitest-dev/vitest/commit/40841ff00) - Typo in browser.provider error - by [@​deammer](https://github.com/deammer) in [#​9394](https://github.com/vitest-dev/vitest/issues/9394) [<samp>(4b67f)</samp>](https://github.com/vitest-dev/vitest/commit/4b67fc25a) - **browser**: - Fix `process.env` and `import.meta.env` defines in inline project - by [@​hi-ogawa](https://github.com/hi-ogawa) in [#​9239](https://github.com/vitest-dev/vitest/issues/9239) [<samp>(b70c9)</samp>](https://github.com/vitest-dev/vitest/commit/b70c96121) - Fix upload File instance - by [@​hi-ogawa](https://github.com/hi-ogawa) in [#​9294](https://github.com/vitest-dev/vitest/issues/9294) [<samp>(b6778)</samp>](https://github.com/vitest-dev/vitest/commit/b67788c69) - Fix invalid project token for artifacts assets - by [@​hi-ogawa](https://github.com/hi-ogawa) in [#​9321](https://github.com/vitest-dev/vitest/issues/9321) [<samp>(caa7d)</samp>](https://github.com/vitest-dev/vitest/commit/caa7d73d4) - Log `ErrorEvent.message` when unhandled `ErrorEvent.error` is null - by [@​hi-ogawa](https://github.com/hi-ogawa) in [#​9322](https://github.com/vitest-dev/vitest/issues/9322) [<samp>(5d84e)</samp>](https://github.com/vitest-dev/vitest/commit/5d84eeb91) - Support `fileParallelism` on an instance - by [@​sheremet-va](https://github.com/sheremet-va) in [#​9328](https://github.com/vitest-dev/vitest/issues/9328) [<samp>(15006)</samp>](https://github.com/vitest-dev/vitest/commit/150065459) - **coverage**: - Remove unnecessary `istanbul-lib-source-maps` usage - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​9344](https://github.com/vitest-dev/vitest/issues/9344) [<samp>(b0940)</samp>](https://github.com/vitest-dev/vitest/commit/b09405375) - Apply patch from [istanbuljs/istanbuljs#837](https://github.com/istanbuljs/istanbuljs/issues/837) - by [@​AriPerkkio](https://github.com/AriPerkkio) and **sapphi-red** in [#​9413](https://github.com/vitest-dev/vitest/issues/9413) and [#​837](https://github.com/vitest-dev/vitest/issues/837) [<samp>(e05ce)</samp>](https://github.com/vitest-dev/vitest/commit/e05cedbf4) - **fsModuleCache**: - Don't store importers in cache - by [@​sheremet-va](https://github.com/sheremet-va) in [#​9422](https://github.com/vitest-dev/vitest/issues/9422) [<samp>(75136)</samp>](https://github.com/vitest-dev/vitest/commit/751364eec) - Add importers alongside importedModules - by [@​sheremet-va](https://github.com/sheremet-va) in [#​9423](https://github.com/vitest-dev/vitest/issues/9423) [<samp>(59f92)</samp>](https://github.com/vitest-dev/vitest/commit/59f92d403) - **mocker**: - Fix mock transform with class - by [@​hi-ogawa](https://github.com/hi-ogawa) in [#​9421](https://github.com/vitest-dev/vitest/issues/9421) [<samp>(d390e)</samp>](https://github.com/vitest-dev/vitest/commit/d390eb527) - **pool**: - Validate environment options when reusing the worker - by [@​sheremet-va](https://github.com/sheremet-va) in [#​9349](https://github.com/vitest-dev/vitest/issues/9349) [<samp>(a8a88)</samp>](https://github.com/vitest-dev/vitest/commit/a8a8836e3) - Handle worker start failures gracefully - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​9337](https://github.com/vitest-dev/vitest/issues/9337) [<samp>(200da)</samp>](https://github.com/vitest-dev/vitest/commit/200dadb32) - **reporter**: - Report test module if it failed to run - by [@​sheremet-va](https://github.com/sheremet-va) in [#​9272](https://github.com/vitest-dev/vitest/issues/9272) [<samp>(c7888)</samp>](https://github.com/vitest-dev/vitest/commit/c78882985) - **runner**: - Respect nested test.only within describe.only - by [@​Ujjwaljain16](https://github.com/Ujjwaljain16) in [#​9021](https://github.com/vitest-dev/vitest/issues/9021) and [#​9213](https://github.com/vitest-dev/vitest/issues/9213) [<samp>(55d5d)</samp>](https://github.com/vitest-dev/vitest/commit/55d5dad69) - **typecheck**: - Improve error message when tsc outputs help text - by [@​Ujjwaljain16](https://github.com/Ujjwaljain16) in [#​9214](https://github.com/vitest-dev/vitest/issues/9214) [<samp>(7b10a)</samp>](https://github.com/vitest-dev/vitest/commit/7b10ab4cd) - **ui**: - Detect gzip by magic numbers instead of Content-Type header in html reporter - by [@​Copilot](https://github.com/Copilot), **hi-ogawa** and [@​hi-ogawa](https://github.com/hi-ogawa) in [#​9278](https://github.com/vitest-dev/vitest/issues/9278) [<samp>(dd033)</samp>](https://github.com/vitest-dev/vitest/commit/dd0331632) - **webdriverio**: - Fall back to WebDriver Classic [#​9244](https://github.com/vitest-dev/vitest/issues/9244) - by [@​JustasMonkev](https://github.com/JustasMonkev) in [#​9373](https://github.com/vitest-dev/vitest/issues/9373) and [#​9244](https://github.com/vitest-dev/vitest/issues/9244) [<samp>(c23dd)</samp>](https://github.com/vitest-dev/vitest/commit/c23dd11bd) ##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.16...v4.0.17) ### [`v4.0.16`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.16) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.15...v4.0.16) ##### 🐞 Bug Fixes - Fix browser mode default testTimeout back to 15 seconds - by [@​hi-ogawa](https://github.com/hi-ogawa) in [#​9167](https://github.com/vitest-dev/vitest/issues/9167) [<samp>(da0ad)</samp>](https://github.com/vitest-dev/vitest/commit/da0ade249) - Avoid crashing on `process.versions` stub - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​9174](https://github.com/vitest-dev/vitest/issues/9174) [<samp>(78cfb)</samp>](https://github.com/vitest-dev/vitest/commit/78cfbf99a) - Reject calling suite function inside test - by [@​hi-ogawa](https://github.com/hi-ogawa) in [#​9198](https://github.com/vitest-dev/vitest/issues/9198) [<samp>(1a259)</samp>](https://github.com/vitest-dev/vitest/commit/1a259c340) - Allow inlining fully dynamic import - by [@​hi-ogawa](https://github.com/hi-ogawa) in [#​9137](https://github.com/vitest-dev/vitest/issues/9137) [<samp>(56851)</samp>](https://github.com/vitest-dev/vitest/commit/568513ca6) - Fix module graph UI on html reporter with headless browser mode - by [@​hi-ogawa](https://github.com/hi-ogawa) in [#​9219](https://github.com/vitest-dev/vitest/issues/9219) [<samp>(60642)</samp>](https://github.com/vitest-dev/vitest/commit/60642b304) - Log deprecated `test.poolOptions` if it's set - by [@​sheremet-va](https://github.com/sheremet-va) in [#​9226](https://github.com/vitest-dev/vitest/issues/9226) [<samp>(f7f6a)</samp>](https://github.com/vitest-dev/vitest/commit/f7f6aa8ba) - **browser**: - Import `recordArtifact` from the vitest package - by [@​macarie](https://github.com/macarie) in [#​9186](https://github.com/vitest-dev/vitest/issues/9186) [<samp>(01c56)</samp>](https://github.com/vitest-dev/vitest/commit/01c56454d) - Fix `import.meta.env` define - by [@​hi-ogawa](https://github.com/hi-ogawa) in [#​9205](https://github.com/vitest-dev/vitest/issues/9205) [<samp>(01a9a)</samp>](https://github.com/vitest-dev/vitest/commit/01a9a58d9) - String formatting bug when including placeholders in console.log - by [@​michael-debs](https://github.com/michael-debs) and [@​hi-ogawa](https://github.com/hi-ogawa) in [#​9030](https://github.com/vitest-dev/vitest/issues/9030) and [#​9131](https://github.com/vitest-dev/vitest/issues/9131) [<samp>(84a30)</samp>](https://github.com/vitest-dev/vitest/commit/84a306210) - **coverage**: - Istanbul untested files source maps are off - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​9208](https://github.com/vitest-dev/vitest/issues/9208) [<samp>(372e8)</samp>](https://github.com/vitest-dev/vitest/commit/372e86fde) - **experimental**: - Export `setupEnvironment` for custom pools - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​9187](https://github.com/vitest-dev/vitest/issues/9187) [<samp>(5d26b)</samp>](https://github.com/vitest-dev/vitest/commit/5d26b87b0) ##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.15...v4.0.16) ### [`v4.0.15`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.15) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.14...v4.0.15) ##### 🚀 Experimental Features - **cache**: Add opt-out on a plugin level, fix internal root cache - by [@​sheremet-va](https://github.com/sheremet-va) in [#​9154](https://github.com/vitest-dev/vitest/issues/9154) [<samp>(a68f7)</samp>](https://github.com/vitest-dev/vitest/commit/a68f74e5e) - **reporters**: Print import duration breakdown - by [@​sheremet-va](https://github.com/sheremet-va) in [#​9105](https://github.com/vitest-dev/vitest/issues/9105) [<samp>(122ff)</samp>](https://github.com/vitest-dev/vitest/commit/122ff321c) ##### 🐞 Bug Fixes - Keep built-in id as is in bun and deno - by [@​sheremet-va](https://github.com/sheremet-va) in [#​9117](https://github.com/vitest-dev/vitest/issues/9117) [<samp>(075ab)</samp>](https://github.com/vitest-dev/vitest/commit/075ab3520) - Use `optimizeDeps.rolldownOptions` to fix depreated warning + fix `ssr.external: true` - by [@​hi-ogawa](https://github.com/hi-ogawa) in [#​9121](https://github.com/vitest-dev/vitest/issues/9121) [<samp>(fd8bd)</samp>](https://github.com/vitest-dev/vitest/commit/fd8bd6dee) - Fix external behavior with `deps.optimizer` - by [@​hi-ogawa](https://github.com/hi-ogawa) in [#​9125](https://github.com/vitest-dev/vitest/issues/9125) [<samp>(4c754)</samp>](https://github.com/vitest-dev/vitest/commit/4c75492cc) - Very minor typo in "Chrome DevTools Protocol" - by [@​HowToTestFrontend](https://github.com/HowToTestFrontend) in [#​9146](https://github.com/vitest-dev/vitest/issues/9146) [<samp>(20997)</samp>](https://github.com/vitest-dev/vitest/commit/209976419) - **browser**: Run `toMatchScreenshot` only once when used with `expect.element` - by [@​macarie](https://github.com/macarie) in [#​9132](https://github.com/vitest-dev/vitest/issues/9132) [<samp>(0d2e7)</samp>](https://github.com/vitest-dev/vitest/commit/0d2e7e3e2) - **coverage**: Istanbul provider to not break source maps - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​9040](https://github.com/vitest-dev/vitest/issues/9040) [<samp>(e4ca9)</samp>](https://github.com/vitest-dev/vitest/commit/e4ca917f1) - **deps**: Update dependency tinyexec to v1 - in [#​9122](https://github.com/vitest-dev/vitest/issues/9122) [<samp>(fd786)</samp>](https://github.com/vitest-dev/vitest/commit/fd7860222) - **docs**: Remove `--browser.provider` from docs - by [@​sheremet-va](https://github.com/sheremet-va) in [#​9115](https://github.com/vitest-dev/vitest/issues/9115) [<samp>(120b3)</samp>](https://github.com/vitest-dev/vitest/commit/120b3dac1) - **expect**: Preserve `currentTestName` in extended matchers - by [@​macarie](https://github.com/macarie) in [#​9106](https://github.com/vitest-dev/vitest/issues/9106) [<samp>(e4345)</samp>](https://github.com/vitest-dev/vitest/commit/e43458e02) - **pool**: Terminate workers on `CTRL+c` forceful exits - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​9140](https://github.com/vitest-dev/vitest/issues/9140) [<samp>(d57d8)</samp>](https://github.com/vitest-dev/vitest/commit/d57d8bf0a) - **reporters**: Show project in github reporter - by [@​sheremet-va](https://github.com/sheremet-va) in [#​9138](https://github.com/vitest-dev/vitest/issues/9138) [<samp>(bb65e)</samp>](https://github.com/vitest-dev/vitest/commit/bb65e15c7) - **spy**: Do not mock overriden method, if parent was automocked - by [@​sheremet-va](https://github.com/sheremet-va) in [#​9116](https://github.com/vitest-dev/vitest/issues/9116) [<samp>(1a246)</samp>](https://github.com/vitest-dev/vitest/commit/1a24607b4) - **web-worker**: MessagePort objects passed to Worker.postMessage work when clone === "native" - by [@​whitphx](https://github.com/whitphx) in [#​9118](https://github.com/vitest-dev/vitest/issues/9118) [<samp>(deee8)</samp>](https://github.com/vitest-dev/vitest/commit/deee83e54) ##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.14...v4.0.15) ### [`v4.0.14`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.14) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.13...v4.0.14) ##### 🚀 Experimental Features - **browser**: Expose `utils.configurePrettyDOM` - by [@​sheremet-va](https://github.com/sheremet-va) in [#​9103](https://github.com/vitest-dev/vitest/issues/9103) [<samp>(2cc34)</samp>](https://github.com/vitest-dev/vitest/commit/2cc34e0d4) - **runner**: Add full names to tasks - by [@​macarie](https://github.com/macarie) in [#​9087](https://github.com/vitest-dev/vitest/issues/9087) [<samp>(821aa)</samp>](https://github.com/vitest-dev/vitest/commit/821aa2002) - **ui**: Add tabbed failure view for `toMatchScreenshot` with comparison slider - by [@​macarie](https://github.com/macarie) in [#​8813](https://github.com/vitest-dev/vitest/issues/8813) [<samp>(c37c2)</samp>](https://github.com/vitest-dev/vitest/commit/c37c2eb0b) ##### 🐞 Bug Fixes - Externalize before caching - by [@​sheremet-va](https://github.com/sheremet-va) in [#​9077](https://github.com/vitest-dev/vitest/issues/9077) [<samp>(e1b2e)</samp>](https://github.com/vitest-dev/vitest/commit/e1b2e086a) - Collect the duration of external imports - by [@​sheremet-va](https://github.com/sheremet-va) in [#​9097](https://github.com/vitest-dev/vitest/issues/9097) [<samp>(3326c)</samp>](https://github.com/vitest-dev/vitest/commit/3326cc9f4) - Rename `collect` to `import`, remove `prepare` - by [@​sheremet-va](https://github.com/sheremet-va) in [#​9091](https://github.com/vitest-dev/vitest/issues/9091) [<samp>(1256b)</samp>](https://github.com/vitest-dev/vitest/commit/1256b5ca3) - **browser**: - Unsubscribe `onCancel` on rpc destroy - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​9088](https://github.com/vitest-dev/vitest/issues/9088) [<samp>(f5b72)</samp>](https://github.com/vitest-dev/vitest/commit/f5b72374b) - Revert the viewport scaling in non-ui mode [#​9018](https://github.com/vitest-dev/vitest/issues/9018) - by [@​sheremet-va](https://github.com/sheremet-va) in [#​9072](https://github.com/vitest-dev/vitest/issues/9072) and [#​9018](https://github.com/vitest-dev/vitest/issues/9018) [<samp>(64502)</samp>](https://github.com/vitest-dev/vitest/commit/64502a2c4) - **coverage**: - Invalidate circular modules correctly on rerun with coverage - by [@​aicest](https://github.com/aicest) in [#​9096](https://github.com/vitest-dev/vitest/issues/9096) [<samp>(6f22c)</samp>](https://github.com/vitest-dev/vitest/commit/6f22c675f) - **expect**: - Allow function as standard schema - by [@​hi-ogawa](https://github.com/hi-ogawa) in [#​9099](https://github.com/vitest-dev/vitest/issues/9099) [<samp>(ed8a2)</samp>](https://github.com/vitest-dev/vitest/commit/ed8a2ebbd) - **jsdom**: - Reuse abort signals if possible - by [@​sheremet-va](https://github.com/sheremet-va) in [#​9090](https://github.com/vitest-dev/vitest/issues/9090) [<samp>(2c468)</samp>](https://github.com/vitest-dev/vitest/commit/2c468ee95) - **pool**: - Init `VITEST_POOL_ID` + `VITEST_WORKER_ID` before environment setup - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​9085](https://github.com/vitest-dev/vitest/issues/9085) [<samp>(37918)</samp>](https://github.com/vitest-dev/vitest/commit/379185b40) - **web-worker**: - `postMessage` to send ports to workers - by [@​whitphx](https://github.com/whitphx) and [@​AriPerkkio](https://github.com/AriPerkkio) in [#​9078](https://github.com/vitest-dev/vitest/issues/9078) [<samp>(9d176)</samp>](https://github.com/vitest-dev/vitest/commit/9d1763d11) ##### 🏎 Performance - Replace `debug` with `obug` - by [@​sxzz](https://github.com/sxzz) and [@​AriPerkkio](https://github.com/AriPerkkio) in [#​9057](https://github.com/vitest-dev/vitest/issues/9057) [<samp>(acc51)</samp>](https://github.com/vitest-dev/vitest/commit/acc5152b9) ##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.13...v4.0.14) ### [`v4.0.13`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.13) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.12...v4.0.13) ##### 🐞 Bug Fixes - **types**: - Don't use type from Vite 7.1 - by [@​sheremet-va](https://github.com/sheremet-va) in [#​9071](https://github.com/vitest-dev/vitest/issues/9071) [<samp>(6356b)</samp>](https://github.com/vitest-dev/vitest/commit/6356b1d38) - Don't import node.js dependent types in vitest/browser - by [@​sheremet-va](https://github.com/sheremet-va) in [#​9068](https://github.com/vitest-dev/vitest/issues/9068) [<samp>(332af)</samp>](https://github.com/vitest-dev/vitest/commit/332afa0de) ##### 🏎 Performance - Avoid fetchModule roundtrip if the module is cached - by [@​sheremet-va](https://github.com/sheremet-va) in [#​9075](https://github.com/vitest-dev/vitest/issues/9075) [<samp>(b27e0)</samp>](https://github.com/vitest-dev/vitest/commit/b27e002e5) - **experimental**: If `fsCacheModule` is enabled, read from the memory when possible - by [@​sheremet-va](https://github.com/sheremet-va) in [#​9076](https://github.com/vitest-dev/vitest/issues/9076) [<samp>(6b9a1)</samp>](https://github.com/vitest-dev/vitest/commit/6b9a1b5b1) ##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.12...v4.0.13) ### [`v4.0.12`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.12) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.11...v4.0.12) ##### 🐞 Bug Fixes - Inherit `fsModuleCachePath` by default - by [@​sheremet-va](https://github.com/sheremet-va) in [#​9063](https://github.com/vitest-dev/vitest/issues/9063) [<samp>(9a8bc)</samp>](https://github.com/vitest-dev/vitest/commit/9a8bc78c5) - Don't import from `@opentelemetry/api` in public types - by [@​sheremet-va](https://github.com/sheremet-va) in [#​9066](https://github.com/vitest-dev/vitest/issues/9066) [<samp>(e944a)</samp>](https://github.com/vitest-dev/vitest/commit/e944a37b7) ##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.11...v4.0.12) ### [`v4.0.11`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.11) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.10...v4.0.11) ##### 🚀 Experimental Features - **api**: Add extensible test artifact API - by [@​macarie](https://github.com/macarie) in [#​8987](https://github.com/vitest-dev/vitest/issues/8987) [<samp>(77292)</samp>](https://github.com/vitest-dev/vitest/commit/772923645) - See more at <https://vitest.dev/api/advanced/artifacts> - **expect**: Provide `task` in `MatchState` - by [@​macarie](https://github.com/macarie) in [#​9022](https://github.com/vitest-dev/vitest/issues/9022) [<samp>(afd1f)</samp>](https://github.com/vitest-dev/vitest/commit/afd1f3e52) - **experimental**: Support OpenTelemetry traces - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8994](https://github.com/vitest-dev/vitest/issues/8994) [<samp>(d6d33)</samp>](https://github.com/vitest-dev/vitest/commit/d6d3359dd) - See more at <https://vitest.dev/guide/open-telemetry> ##### 🏎 Performance - **experimental**: Add file system cache - by [@​sheremet-va](https://github.com/sheremet-va) in [#​9026](https://github.com/vitest-dev/vitest/issues/9026) [<samp>(1b147)</samp>](https://github.com/vitest-dev/vitest/commit/1b1473712) - See more at <https://vitest.dev/config/experimental#experimental-fsmodulecache> ##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.10...v4.0.11) ### [`v4.0.10`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.10) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.9...v4.0.10) ##### 🐞 Bug Fixes - Remove `onCancel` when worker is terminated - by [@​sheremet-va](https://github.com/sheremet-va) in [#​9033](https://github.com/vitest-dev/vitest/issues/9033) [<samp>(6d7f0)</samp>](https://github.com/vitest-dev/vitest/commit/6d7f0a99e) - **browser**: - Don't scale the iframe if UI is disabled - by [@​sheremet-va](https://github.com/sheremet-va) in [#​9018](https://github.com/vitest-dev/vitest/issues/9018) [<samp>(5406e)</samp>](https://github.com/vitest-dev/vitest/commit/5406e8ea4) - Handle dependency stack traces with external source maps. Resolves: [#​9003](https://github.com/vitest-dev/vitest/issues/9003) - by [@​iclectic](https://github.com/iclectic) in [#​9016](https://github.com/vitest-dev/vitest/issues/9016) and [#​9003](https://github.com/vitest-dev/vitest/issues/9003) [<samp>(57ae5)</samp>](https://github.com/vitest-dev/vitest/commit/57ae547de) - **bun**: - Parsing of stack trace for bun runtime - by [@​nazarhussain](https://github.com/nazarhussain) in [#​9032](https://github.com/vitest-dev/vitest/issues/9032) [<samp>(f3ec6)</samp>](https://github.com/vitest-dev/vitest/commit/f3ec6fcb0) - **core**: - Prevent starting new run when cancelling - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​8991](https://github.com/vitest-dev/vitest/issues/8991) [<samp>(eb98d)</samp>](https://github.com/vitest-dev/vitest/commit/eb98dd8fd) - **pool**: - Prevent writing to closed worker - by [@​AriPerkkio](https://github.com/AriPerkkio) and [@​sheremet-va](https://github.com/sheremet-va) in [#​9023](https://github.com/vitest-dev/vitest/issues/9023) [<samp>(042c6)</samp>](https://github.com/vitest-dev/vitest/commit/042c60c80) - **reporters**: - Report correct test run duration at the end - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8969](https://github.com/vitest-dev/vitest/issues/8969) [<samp>(bc3a6)</samp>](https://github.com/vitest-dev/vitest/commit/bc3a6921e) - **ui**: - Use execution time from ws reporter (`onFinished`) - by [@​userquin](https://github.com/userquin) in [#​8975](https://github.com/vitest-dev/vitest/issues/8975) [<samp>(f56dc)</samp>](https://github.com/vitest-dev/vitest/commit/f56dc0cc4) ##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.9...v4.0.10) ### [`v4.0.9`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.9) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.8...v4.0.9) ##### 🚀 Experimental Features - **expect**: Add Set support to toBeOneOf - by [@​tim-we](https://github.com/tim-we) and [@​sheremet-va](https://github.com/sheremet-va) in [#​8906](https://github.com/vitest-dev/vitest/issues/8906) [<samp>(a415d)</samp>](https://github.com/vitest-dev/vitest/commit/a415d0375) ##### 🐞 Bug Fixes - **browser**: Add favicon icons to the browser mode ui - by [@​userquin](https://github.com/userquin) in [#​8972](https://github.com/vitest-dev/vitest/issues/8972) [<samp>(353ee)</samp>](https://github.com/vitest-dev/vitest/commit/353ee5bbc) - **forks**: Increase worker start timeout - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​9027](https://github.com/vitest-dev/vitest/issues/9027) [<samp>(5e750)</samp>](https://github.com/vitest-dev/vitest/commit/5e750f4ba) - **jsdom**: Cloned request is an instance of `Request` - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8985](https://github.com/vitest-dev/vitest/issues/8985) [<samp>(506a9)</samp>](https://github.com/vitest-dev/vitest/commit/506a9fd0f) - **ui**: Collect file/suite/test duration correctly - by [@​userquin](https://github.com/userquin) in [#​8976](https://github.com/vitest-dev/vitest/issues/8976) [<samp>(8016d)</samp>](https://github.com/vitest-dev/vitest/commit/8016da886) ##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.8...v4.0.9) ### [`v4.0.8`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.8) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.7...v4.0.8) ##### 🐞 Bug Fixes - Workaround `noExternal` merging bug on Vite 6 - by [@​hi-ogawa](https://github.com/hi-ogawa) in [#​8950](https://github.com/vitest-dev/vitest/issues/8950) [<samp>(bcb13)</samp>](https://github.com/vitest-dev/vitest/commit/bcb132fd4) - Missed context.d.ts file - by [@​termorey](https://github.com/termorey) in [#​8965](https://github.com/vitest-dev/vitest/issues/8965) [<samp>(9044d)</samp>](https://github.com/vitest-dev/vitest/commit/9044d9356) - Incorrect error message for non-awaited `expect.element()` - by [@​StyleShit](https://github.com/StyleShit) in [#​8954](https://github.com/vitest-dev/vitest/issues/8954) [<samp>(9638d)</samp>](https://github.com/vitest-dev/vitest/commit/9638db0f3) - **browser**: Cleanup frame-ancestors from CSP header at coverage middleware - by [@​userquin](https://github.com/userquin) in [#​8941](https://github.com/vitest-dev/vitest/issues/8941) [<samp>(1f730)</samp>](https://github.com/vitest-dev/vitest/commit/1f7303738) - **deps**: Update all non-major dependencies - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8636](https://github.com/vitest-dev/vitest/issues/8636) [<samp>(da8b9)</samp>](https://github.com/vitest-dev/vitest/commit/da8b93aa5) - **forks**: Do not fail with Windows Defender enabled - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8967](https://github.com/vitest-dev/vitest/issues/8967) [<samp>(c79f4)</samp>](https://github.com/vitest-dev/vitest/commit/c79f47c65) - **runner**: Properly encode Uint8Array body in annotations - by [@​Livan-pro](https://github.com/Livan-pro) in [#​8951](https://github.com/vitest-dev/vitest/issues/8951) [<samp>(997ca)</samp>](https://github.com/vitest-dev/vitest/commit/997ca5a82) - **spy**: Copy static properties if spy is initialised with `vi.fn()`, fix types for `vi.spyOn(obj, class)` - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8956](https://github.com/vitest-dev/vitest/issues/8956) [<samp>(75e7f)</samp>](https://github.com/vitest-dev/vitest/commit/75e7fcc51) - **webdriverio**: When no argument is passed to the .click interaction command, the webdriver command should also have no argument - by [@​julienw](https://github.com/julienw) in [#​8937](https://github.com/vitest-dev/vitest/issues/8937) [<samp>(069e6)</samp>](https://github.com/vitest-dev/vitest/commit/069e6db9b) ##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.7...v4.0.8) ### [`v4.0.7`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.7) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.6...v4.0.7) ##### 🐞 Bug Fixes - Bind `process` in case global is overwritten - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​8916](https://github.com/vitest-dev/vitest/issues/8916) [<samp>(6240d)</samp>](https://github.com/vitest-dev/vitest/commit/6240d51a6) - Create environment once per worker with `isolate: false` - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8915](https://github.com/vitest-dev/vitest/issues/8915) [<samp>(c9078)</samp>](https://github.com/vitest-dev/vitest/commit/c9078a26e) - Add Locator as a possible element type in `toContainElement()` matcher - by [@​vitalybaev](https://github.com/vitalybaev) in [#​8910](https://github.com/vitest-dev/vitest/issues/8910) and [#​8927](https://github.com/vitest-dev/vitest/issues/8927) [<samp>(35a27)</samp>](https://github.com/vitest-dev/vitest/commit/35a27d4b3) - **browser**: Inherit `isolate` option, deprecate `browser.isolate`/`browser.fileParallelism` - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8890](https://github.com/vitest-dev/vitest/issues/8890) [<samp>(9d2b4)</samp>](https://github.com/vitest-dev/vitest/commit/9d2b4d501) - **cli**: Parse `--execArgv` as array - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​8924](https://github.com/vitest-dev/vitest/issues/8924) [<samp>(751c3)</samp>](https://github.com/vitest-dev/vitest/commit/751c3926f) - **jsdom**: Support `URL.createObjectURL`, `FormData.set(prop, blob)` - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8935](https://github.com/vitest-dev/vitest/issues/8935) [<samp>(a1b73)</samp>](https://github.com/vitest-dev/vitest/commit/a1b7361ab) - **pool**: Avoid `--require` argument when running in deno - by [@​pi0](https://github.com/pi0) in [#​8897](https://github.com/vitest-dev/vitest/issues/8897) [<samp>(d41fa)</samp>](https://github.com/vitest-dev/vitest/commit/d41fa742f) - **typecheck**: Handle re-runs outside `tsc` - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​8920](https://github.com/vitest-dev/vitest/issues/8920) [<samp>(fdb2e)</samp>](https://github.com/vitest-dev/vitest/commit/fdb2e7982) ##### 🏎 Performance - **pool**: - Sort test files by project by default - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​8914](https://github.com/vitest-dev/vitest/issues/8914) [<samp>(680a6)</samp>](https://github.com/vitest-dev/vitest/commit/680a612ea) - **reporters**: - Optimize getting the tests stats - by [@​Connormiha](https://github.com/Connormiha) in [#​8908](https://github.com/vitest-dev/vitest/issues/8908) [<samp>(06d62)</samp>](https://github.com/vitest-dev/vitest/commit/06d6207fb) - Remove unnecessary `Array.from` call - by [@​Connormiha](https://github.com/Connormiha) in [#​8907](https://github.com/vitest-dev/vitest/issues/8907) [<samp>(b6014)</samp>](https://github.com/vitest-dev/vitest/commit/b60149b27) ##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.6...v4.0.7) ### [`v4.0.6`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.6) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.5...v4.0.6) ##### 🐞 Bug Fixes - Don't merge errors with different diffs for reporting - by [@​hi-ogawa](https://github.com/hi-ogawa) in [#​8871](https://github.com/vitest-dev/vitest/issues/8871) [<samp>(3e19f)</samp>](https://github.com/vitest-dev/vitest/commit/3e19f27d0) - Do not throw when importing a type from an external package - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8875](https://github.com/vitest-dev/vitest/issues/8875) [<samp>(7e6c3)</samp>](https://github.com/vitest-dev/vitest/commit/7e6c37ae5) - Improve spying types - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8878](https://github.com/vitest-dev/vitest/issues/8878) [<samp>(ca041)</samp>](https://github.com/vitest-dev/vitest/commit/ca041f51a) - Reuse the same environment when `isolate` and `fileParallelism` are false - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8889](https://github.com/vitest-dev/vitest/issues/8889) [<samp>(31706)</samp>](https://github.com/vitest-dev/vitest/commit/31706dfe5) - **browser**: - Support module tracking - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8877](https://github.com/vitest-dev/vitest/issues/8877) [<samp>(9e24a)</samp>](https://github.com/vitest-dev/vitest/commit/9e24a59f2) - Ensure setup files are re-evaluated on each test run - by [@​yjaaidi](https://github.com/yjaaidi) in [#​8883](https://github.com/vitest-dev/vitest/issues/8883) and [#​8884](https://github.com/vitest-dev/vitest/issues/8884) [<samp>(f50ea)</samp>](https://github.com/vitest-dev/vitest/commit/f50ea7a25) - **coverage**: - Prevent filtering out virtual files before remapping to sources - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​8860](https://github.com/vitest-dev/vitest/issues/8860) [<samp>(e3b77)</samp>](https://github.com/vitest-dev/vitest/commit/e3b777550) - **happy-dom**: - Properly teardown additional keys - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8888](https://github.com/vitest-dev/vitest/issues/8888) [<samp>(10a06)</samp>](https://github.com/vitest-dev/vitest/commit/10a06d8c9) - **jsdom**: - Pass down Node.js `FormData` to `Request` - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8880](https://github.com/vitest-dev/vitest/issues/8880) [<samp>(197ca)</samp>](https://github.com/vitest-dev/vitest/commit/197caf2f9) ##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.5...v4.0.6) ### [`v4.0.5`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.5) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.4...v4.0.5) ##### 🐞 Bug Fixes - Respect `ssr.noExternal` when externalizing dependencies, fix Svelte and Astro - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8862](https://github.com/vitest-dev/vitest/issues/8862) [<samp>(a4f86)</samp>](https://github.com/vitest-dev/vitest/commit/a4f86f1ba) - Allow module in --config - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8864](https://github.com/vitest-dev/vitest/issues/8864) [<samp>(b9521)</samp>](https://github.com/vitest-dev/vitest/commit/b9521e0c2) - **browser**: Allow `Locator` type in selectOptions element parameter - by [@​rzzf](https://github.com/rzzf) and [@​sheremet-va](https://github.com/sheremet-va) in [#​8848](https://github.com/vitest-dev/vitest/issues/8848) [<samp>(7ee28)</samp>](https://github.com/vitest-dev/vitest/commit/7ee283c96) - **module-runner**: Don't return node builtins for `getBuiltins` unconditionally - by [@​sapphi-red](https://github.com/sapphi-red) in [#​8863](https://github.com/vitest-dev/vitest/issues/8863) [<samp>(0e858)</samp>](https://github.com/vitest-dev/vitest/commit/0e858bab4) - **pool**: Rename `groupId` to `groupOrder` in error message - by [@​Yohannfra](https://github.com/Yohannfra) in [#​8856](https://github.com/vitest-dev/vitest/issues/8856) [<samp>(b9aab)</samp>](https://github.com/vitest-dev/vitest/commit/b9aabf4e6) ##### 🏎 Performance - Pass testfiles at once when `--no-isolate --maxWorkers=1` - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​8835](https://github.com/vitest-dev/vitest/issues/8835) [<samp>(584aa)</samp>](https://github.com/vitest-dev/vitest/commit/584aa7148) - **expect**: Optimize checking the input type - by [@​Connormiha](https://github.com/Connormiha) in [#​8840](https://github.com/vitest-dev/vitest/issues/8840) [<samp>(06968)</samp>](https://github.com/vitest-dev/vitest/commit/0696898b4) ##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.4...v4.0.5) ### [`v4.0.4`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.4) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.3...v4.0.4) ##### 🐞 Bug Fixes - **browser**: - Correct typo - by [@​benmccann](https://github.com/benmccann) in [#​8796](https://github.com/vitest-dev/vitest/issues/8796) [<samp>(ede1f)</samp>](https://github.com/vitest-dev/vitest/commit/ede1f39d6) - Publish a missing context file for webdriverio - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8824](https://github.com/vitest-dev/vitest/issues/8824) [<samp>(7c7b6)</samp>](https://github.com/vitest-dev/vitest/commit/7c7b6f0b1) - **mocker**: - Support mocking builtins without `node:` prefix - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8829](https://github.com/vitest-dev/vitest/issues/8829) [<samp>(06208)</samp>](https://github.com/vitest-dev/vitest/commit/06208d30b) - **pool**: - Runner's error listener causing `MaxListenersExceededWarning` - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​8820](https://github.com/vitest-dev/vitest/issues/8820) [<samp>(d1bff)</samp>](https://github.com/vitest-dev/vitest/commit/d1bff3bb3) - Capture workers `stdio` to logger - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​8809](https://github.com/vitest-dev/vitest/issues/8809) [<samp>(fb95f)</samp>](https://github.com/vitest-dev/vitest/commit/fb95fc736) - **spy**: - Allow classes in `vi.mocked` utility - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8839](https://github.com/vitest-dev/vitest/issues/8839) [<samp>(f8756)</samp>](https://github.com/vitest-dev/vitest/commit/f87568d64) - **worker**: - Rpc listener leak when `isolate: false` - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​8821](https://github.com/vitest-dev/vitest/issues/8821) [<samp>(573dc)</samp>](https://github.com/vitest-dev/vitest/commit/573dc06fe) ##### 🏎 Performance - **utils**: Optimized reducer to avoid creating new objects - by [@​Connormiha](https://github.com/Connormiha) in [#​8818](https://github.com/vitest-dev/vitest/issues/8818) [<samp>(d19ce)</samp>](https://github.com/vitest-dev/vitest/commit/d19cece3a) ##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.3...v4.0.4) ### [`v4.0.3`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.3) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.2...v4.0.3) ##### 🐞 Bug Fixes - Preserve reporter options from config when CLI reporters override them - by [@​Copilot](https://github.com/Copilot) and **sheremet-va** in [#​8794](https://github.com/vitest-dev/vitest/issues/8794) [<samp>(15552)</samp>](https://github.com/vitest-dev/vitest/commit/155521a85) - **browser**: More stable in-source testing validation - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8793](https://github.com/vitest-dev/vitest/issues/8793) [<samp>(62297)</samp>](https://github.com/vitest-dev/vitest/commit/622977e61) - **happy-dom**: Support fetch globals - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8791](https://github.com/vitest-dev/vitest/issues/8791) [<samp>(0fb74)</samp>](https://github.com/vitest-dev/vitest/commit/0fb74bd3b) - **init**: Use correct jsx/tsx extension - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8792](https://github.com/vitest-dev/vitest/issues/8792) [<samp>(abc04)</samp>](https://github.com/vitest-dev/vitest/commit/abc046f95) ##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.2...v4.0.3) ### [`v4.0.2`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.2) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.1...v4.0.2) ##### 🐞 Bug Fixes - **browser**: - Don't print the deprecation notice in node\_modules - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8779](https://github.com/vitest-dev/vitest/issues/8779) [<samp>(588f7)</samp>](https://github.com/vitest-dev/vitest/commit/588f76858) - **pool**: - Assign envs before running tests to keep in sync with process.env - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8769](https://github.com/vitest-dev/vitest/issues/8769) [<samp>(26ce8)</samp>](https://github.com/vitest-dev/vitest/commit/26ce88db6) - **spy**: - Properly inherit implementation's `length` - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8778](https://github.com/vitest-dev/vitest/issues/8778) [<samp>(d4c2b)</samp>](https://github.com/vitest-dev/vitest/commit/d4c2b280b) - Reset spies if both `restoreMocks` and `mockReset` are set in the config - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8781](https://github.com/vitest-dev/vitest/issues/8781) [<samp>(2eedb)</samp>](https://github.com/vitest-dev/vitest/commit/2eedbce76) ##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.1...v4.0.2) ### [`v4.0.1`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.1) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.0.0...v4.0.1) ##### 🐞 Bug Fixes - Move the `getBuiltins` check - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8765](https://github.com/vitest-dev/vitest/issues/8765) [<samp>(81000)</samp>](https://github.com/vitest-dev/vitest/commit/81000631d) - **pool**: Don't teardown the communication channel too soon if something is running after the test - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8767](https://github.com/vitest-dev/vitest/issues/8767) [<samp>(3fae7)</samp>](https://github.com/vitest-dev/vitest/commit/3fae73e2e) ##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.0.0...v4.0.1) ### [`v4.0.0`](https://github.com/vitest-dev/vitest/releases/tag/v4.0.0) [Compare Source](https://github.com/vitest-dev/vitest/compare/v3.2.4...v4.0.0) Vitest 4.0 is out! To stay updated, read our [blog post](https://vitest.dev/blog/vitest-4) and check the [migration guide](https://vitest.dev/guide/migration). ##### 🚨 Breaking Changes - Remove `'basic'` reporter - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​7884](https://github.com/vitest-dev/vitest/issues/7884) [<samp>(82fcf)</samp>](https://github.com/vitest-dev/vitest/commit/82fcf5d53) - Simplify default exclude pattern - by [@​sheremet-va](https://github.com/sheremet-va) in [#​6287](https://github.com/vitest-dev/vitest/issues/6287) [<samp>(14c50)</samp>](https://github.com/vitest-dev/vitest/commit/14c507200) - Remove deprecated getSourceMap - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8194](https://github.com/vitest-dev/vitest/issues/8194) [<samp>(ff934)</samp>](https://github.com/vitest-dev/vitest/commit/ff93444f8) - Replace deprecated ErrorWithDiff with TestError - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8195](https://github.com/vitest-dev/vitest/issues/8195) [<samp>(da59e)</samp>](https://github.com/vitest-dev/vitest/commit/da59eb887) - Remove UserConfig type in favor of ViteUserConfig - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8196](https://github.com/vitest-dev/vitest/issues/8196) [<samp>(22f7f)</samp>](https://github.com/vitest-dev/vitest/commit/22f7f2db5) - Remove deprecated coverage options in favor of `vitest/node` exports - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8197](https://github.com/vitest-dev/vitest/issues/8197) [<samp>(dc848)</samp>](https://github.com/vitest-dev/vitest/commit/dc8486d22) - Remove deprecated internal helpers and environment exports - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8198](https://github.com/vitest-dev/vitest/issues/8198) [<samp>(4703c)</samp>](https://github.com/vitest-dev/vitest/commit/4703cf850) - Remove deprecated typecheck and runner types - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8199](https://github.com/vitest-dev/vitest/issues/8199) [<samp>(89a1c)</samp>](https://github.com/vitest-dev/vitest/commit/89a1cb626) - Remove Node types from the main entry point, use `vitest/node` instead - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8200](https://github.com/vitest-dev/vitest/issues/8200) [<samp>(1e60c)</samp>](https://github.com/vitest-dev/vitest/commit/1e60c4f44) - Remove support for Vite 5 - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8202](https://github.com/vitest-dev/vitest/issues/8202) [<samp>(cb8b0)</samp>](https://github.com/vitest-dev/vitest/commit/cb8b03bac) - Remove deprecated types - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8203](https://github.com/vitest-dev/vitest/issues/8203) [<samp>(66bee)</samp>](https://github.com/vitest-dev/vitest/commit/66bee836f) - Remove deprecated environmentMatchGlobs and poolMatchGlobs - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8205](https://github.com/vitest-dev/vitest/issues/8205) [<samp>(be11d)</samp>](https://github.com/vitest-dev/vitest/commit/be11d374c) - Remove deprecated `workspace` option in favor of `projects` - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8218](https://github.com/vitest-dev/vitest/issues/8218) [<samp>(76fb7)</samp>](https://github.com/vitest-dev/vitest/commit/76fb75d42) - Ignore `--standalone` when CLI filename filter is used - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​8262](https://github.com/vitest-dev/vitest/issues/8262) [<samp>(013bf)</samp>](https://github.com/vitest-dev/vitest/commit/013bf2cb2) - Use module-runner instead of vite-node - by [@​sheremet-va](https://github.com/sheremet-va) and [@​AriPerkkio](https://github.com/AriPerkkio) in [#​8208](https://github.com/vitest-dev/vitest/issues/8208) [<samp>(9be01)</samp>](https://github.com/vitest-dev/vitest/commit/9be01ba59) - Rewrite spying implementation to make module mocking more intuitive - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8363](https://github.com/vitest-dev/vitest/issues/8363) [<samp>(9e412)</samp>](https://github.com/vitest-dev/vitest/commit/9e412de35) - Remove deprecated APIs - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8428](https://github.com/vitest-dev/vitest/issues/8428) [<samp>(a1cb9)</samp>](https://github.com/vitest-dev/vitest/commit/a1cb9719a) - Remove `minWorkers` and set it automatically to 0 in non watch mode - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8454](https://github.com/vitest-dev/vitest/issues/8454) [<samp>(2c2d1)</samp>](https://github.com/vitest-dev/vitest/commit/2c2d1d4ce) - Verbose reporter prints tests in a list, introduce `tree` reporter - by [@​sheremet-va](https://github.com/sheremet-va) and [@​AriPerkkio](https://github.com/AriPerkkio) in [#​8500](https://github.com/vitest-dev/vitest/issues/8500) [<samp>(25fd3)</samp>](https://github.com/vitest-dev/vitest/commit/25fd32bf0) - Include shadow root contents in pretty-format output - by [@​wkillerud](https://github.com/wkillerud) in [#​8545](https://github.com/vitest-dev/vitest/issues/8545) [<samp>(9e722)</samp>](https://github.com/vitest-dev/vitest/commit/9e722834a) - Remove deprecated order from test() API - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8594](https://github.com/vitest-dev/vitest/issues/8594) [<samp>(4d419)</samp>](https://github.com/vitest-dev/vitest/commit/4d41928c6) - Rewrite pools without `tinypool` - by [@​AriPerkkio](https://github.com/AriPerkkio) and [@​sheremet-va](https://github.com/sheremet-va) in [#​8705](https://github.com/vitest-dev/vitest/issues/8705) [<samp>(4822d)</samp>](https://github.com/vitest-dev/vitest/commit/4822d047a) - **browser**: Require a provider factory instead of a string - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8445](https://github.com/vitest-dev/vitest/issues/8445) [<samp>(606cb)</samp>](https://github.com/vitest-dev/vitest/commit/606cb9e3e) - **expect**: Pass current equality testers to asymmetric matcher - by [@​hi-ogawa](https://github.com/hi-ogawa) in [#​6825](https://github.com/vitest-dev/vitest/issues/6825) [<samp>(965ce)</samp>](https://github.com/vitest-dev/vitest/commit/965cefc19) - **projects**: Allow only files that have "vitest.config" or "vite.config" in the name - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8542](https://github.com/vitest-dev/vitest/issues/8542) [<samp>(304bc)</samp>](https://github.com/vitest-dev/vitest/commit/304bc20f0) - **reporter**: Remove deprecated APIs - by [@​AriPerkkio](https://github.com/AriPerkkio) and [@​sheremet-va](https://github.com/sheremet-va) in [#​8223](https://github.com/vitest-dev/vitest/issues/8223) [<samp>(149f8)</samp>](https://github.com/vitest-dev/vitest/commit/149f8e509) - **runner**: Set mode to `todo` if no function is passed down to `test` or `describe` - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8346](https://github.com/vitest-dev/vitest/issues/8346) [<samp>(1a81c)</samp>](https://github.com/vitest-dev/vitest/commit/1a81c21d2) - **snapshot**: Fail test with obsolete snapshot on CI - by [@​hi-ogawa](https://github.com/hi-ogawa) in [#​7963](https://github.com/vitest-dev/vitest/issues/7963) [<samp>(4d84f)</samp>](https://github.com/vitest-dev/vitest/commit/4d84f0ac6) - **spy**: Support spying on classes - by [@​sheremet-va](https://github.com/sheremet-va) in [#​6160](https://github.com/vitest-dev/vitest/issues/6160) [<samp>(abc0d)</samp>](https://github.com/vitest-dev/vitest/commit/abc0d8273) ##### 🚀 Features - Provide entity to onConsoleLog - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8159](https://github.com/vitest-dev/vitest/issues/8159) [<samp>(437d4)</samp>](https://github.com/vitest-dev/vitest/commit/437d461aa) - Add `onUnhandledError` callback - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8162](https://github.com/vitest-dev/vitest/issues/8162) [<samp>(924cb)</samp>](https://github.com/vitest-dev/vitest/commit/924cb6961) - Add spy option to vi.mockObject - by [@​rChaoz](https://github.com/rChaoz) in [#​8285](https://github.com/vitest-dev/vitest/issues/8285) [<samp>(81d76)</samp>](https://github.com/vitest-dev/vitest/commit/81d7601e4) - Don't use vite-node in coverage packages - by [@​sheremet-va](https://github.com/sheremet-va) [<samp>(ffdb4)</samp>](https://github.com/vitest-dev/vitest/commit/ffdb4d5fd) - Clickable dashboard numbers - by [@​shairez](https://github.com/shairez) in [#​7406](https://github.com/vitest-dev/vitest/issues/7406) [<samp>(2344c)</samp>](https://github.com/vitest-dev/vitest/commit/2344c1f6e) - Display test "path" when filtering - by [@​userquin](https://github.com/userquin) in [#​8547](https://github.com/vitest-dev/vitest/issues/8547) [<samp>(2e491)</samp>](https://github.com/vitest-dev/vitest/commit/2e4918954) - Introduce separate packages for browser mode providers - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8629](https://github.com/vitest-dev/vitest/issues/8629) [<samp>(0dc93)</samp>](https://github.com/vitest-dev/vitest/commit/0dc93ea98) - Add hooks with type-safe extra context to TestAPI - by [@​ysfaran](https://github.com/ysfaran) in [#​8623](https://github.com/vitest-dev/vitest/issues/8623) [<samp>(6b21c)</samp>](https://github.com/vitest-dev/vitest/commit/6b21cfe55) - Support `expect.assert` for type narrowing - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8695](https://github.com/vitest-dev/vitest/issues/8695) [<samp>(fe589)</samp>](https://github.com/vitest-dev/vitest/commit/fe5895d2b) - Add `displayAnnotations` option to `github-options` - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8706](https://github.com/vitest-dev/vitest/issues/8706) [<samp>(4a66d)</samp>](https://github.com/vitest-dev/vitest/commit/4a66df625) - Add schema validation matchers - by [@​zirkelc](https://github.com/zirkelc) in [#​8527](https://github.com/vitest-dev/vitest/issues/8527) [<samp>(c0b25)</samp>](https://github.com/vitest-dev/vitest/commit/c0b250e5c) - Add a way to dump transformed content - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8711](https://github.com/vitest-dev/vitest/issues/8711) [<samp>(931c0)</samp>](https://github.com/vitest-dev/vitest/commit/931c0ee63) - **api**: - Expose `experimental_parseSpecifications` - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8408](https://github.com/vitest-dev/vitest/issues/8408) [<samp>(fdeb2)</samp>](https://github.com/vitest-dev/vitest/commit/fdeb2f482) - Expose Vitest watcher - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8413](https://github.com/vitest-dev/vitest/issues/8413) [<samp>(aaa6e)</samp>](https://github.com/vitest-dev/vitest/commit/aaa6e6512) - Add `enableCoverage` and `disableCoverage` methods - by [@​sheremet-va](https://github.com/sheremet-va) and [@​AriPerkkio](https://github.com/AriPerkkio) in [#​8412](https://github.com/vitest-dev/vitest/issues/8412) [<samp>(61eb7)</samp>](https://github.com/vitest-dev/vitest/commit/61eb7dd9c) - Add `getGlobalTestNamePattern` method - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8438](https://github.com/vitest-dev/vitest/issues/8438) [<samp>(bdb70)</samp>](https://github.com/vitest-dev/vitest/commit/bdb7067f1) - Add `relativeModuleId` to `TestModule` - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8505](https://github.com/vitest-dev/vitest/issues/8505) [<samp>(3be09)</samp>](https://github.com/vitest-dev/vitest/commit/3be0986aa) - Add `getSeed` method - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8592](https://github.com/vitest-dev/vitest/issues/8592) [<samp>(438c4)</samp>](https://github.com/vitest-dev/vitest/commit/438c44e7f) - **browser**: - Support `toBeInViewport` utility method to assert element is in viewport or not - by [@​Shinyaigeek](https://github.com/Shinyaigeek) in [#​8234](https://github.com/vitest-dev/vitest/issues/8234) [<samp>(ceed5)</samp>](https://github.com/vitest-dev/vitest/commit/ceed5b622) - Add qwik to the `vitest init` cli command - by [@​thejackshelton](https://github.com/thejackshelton) in [#​8330](https://github.com/vitest-dev/vitest/issues/8330) [<samp>(1638b)</samp>](https://github.com/vitest-dev/vitest/commit/1638b44e8) - Introduce `toMatchScreenshot` for Visual Regression Testing - by [@​macarie](https://github.com/macarie) in [#​8041](https://github.com/vitest-dev/vitest/issues/8041) [<samp>(d45f9)</samp>](https://github.com/vitest-dev/vitest/commit/d45f964c1) - Add `trackUnhandledErrors` option - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8386](https://github.com/vitest-dev/vitest/issues/8386) [<samp>(c0ec0)</samp>](https://github.com/vitest-dev/vitest/commit/c0ec08a90) - Support iframe locator with playwright provider - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8016](https://github.com/vitest-dev/vitest/issues/8016) [<samp>(57b2c)</samp>](https://github.com/vitest-dev/vitest/commit/57b2cca2e) - Add `length` property to locators, `toHaveLength` now accepts locators - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8512](https://github.com/vitest-dev/vitest/issues/8512) [<samp>(2308c)</samp>](https://github.com/vitest-dev/vitest/commit/2308cbf13) - Support playwright tracing - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8584](https://github.com/vitest-dev/vitest/issues/8584) [<samp>(1aac5)</samp>](https://github.com/vitest-dev/vitest/commit/1aac59cd2) - Expose `options` on `BrowserProviderOption` - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8609](https://github.com/vitest-dev/vitest/issues/8609) [<samp>(0d0e5)</samp>](https://github.com/vitest-dev/vitest/commit/0d0e5cdf6) - Support `--inspect` option in webdriverio - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8613](https://github.com/vitest-dev/vitest/issues/8613) [<samp>(38adc)</samp>](https://github.com/vitest-dev/vitest/commit/38adc86cf) - Support custom screenshot comparison algorithms - by [@​macarie](https://github.com/macarie) in [#​8687](https://github.com/vitest-dev/vitest/issues/8687) [<samp>(e63b1)</samp>](https://github.com/vitest-dev/vitest/commit/e63b17efc) - **coverage**: - `autoUpdate` to support percentage formatting - by [@​Battjmo](https://github.com/Battjmo) and [@​AriPerkkio](https://github.com/AriPerkkio) in [#​8456](https://github.com/vitest-dev/vitest/issues/8456) [<samp>(99e01)</samp>](https://github.com/vitest-dev/vitest/commit/99e016bec) - **expect**: - Support `toBeNullable` expect function to check provided value is nullish - by [@​Shinyaigeek](https://github.com/Shinyaigeek) and [@​sheremet-va](https://github.com/sheremet-va) in [#​8294](https://github.com/vitest-dev/vitest/issues/8294) [<samp>(eeec5)</samp>](https://github.com/vitest-dev/vitest/commit/eeec501de) - **mocker**: - Add `automocker` entry - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8301](https://github.com/vitest-dev/vitest/issues/8301) [<samp>(e9c92)</samp>](https://github.com/vitest-dev/vitest/commit/e9c928252) ##### 🐞 Bug Fixes - Allow overriding globals in types - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8215](https://github.com/vitest-dev/vitest/issues/8215) [<samp>(2248b)</samp>](https://github.com/vitest-dev/vitest/commit/2248b06d4) - Remove unused dependencies - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​8184](https://github.com/vitest-dev/vitest/issues/8184) [<samp>(feadc)</samp>](https://github.com/vitest-dev/vitest/commit/feadc60af) - Distribute test files to shards more evenly - by [@​Shinyaigeek](https://github.com/Shinyaigeek) and [@​AriPerkkio](https://github.com/AriPerkkio) in [#​8288](https://github.com/vitest-dev/vitest/issues/8288) [<samp>(7b489)</samp>](https://github.com/vitest-dev/vitest/commit/7b489959a) - Use suite's timeout when `test.extend` - by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​8278](https://github.com/vitest-dev/vitest/issues/8278) [<samp>(43977)</samp>](https://github.com/vitest-dev/vitest/commit/43977c2b8) - Support snapshot with no object key sorting - by [@​hi-ogawa](https://github.com/hi-ogawa) and [@​sheremet-va](https://github.com/sheremet-va) in [#​8136](https://github.com/vitest-dev/vitest/issues/8136) [<samp>(e85e3)</samp>](https://github.com/vitest-dev/vitest/commit/e85e396f0) - Annotation location always points to the test file - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8315](https://github.com/vitest-dev/vitest/issues/8315) [<samp>(88071)</samp>](https://github.com/vitest-dev/vitest/commit/88071a8f2) - Add `--changed` flag support to `vitest list` command - by [@​haakonjackfloat](https://github.com/haakonjackfloat) in [#​8270](https://github.com/vitest-dev/vitest/issues/8270) and [#​8272](https://github.com/vitest-dev/vitest/issues/8272) [<samp>(e71a5)</samp>](https://github.com/vitest-dev/vitest/commit/e71a5d0ec) - Prevent rpc timeout on slow thread blocking synchronous methods - by [@​AriPerkkio](https://github.com/AriPerkkio) and [@​sheremet-va](https://github.com/sheremet-va) in [#​8297](https://github.com/vitest-dev/vitest/issues/8297) [<samp>(bea87)</samp>](https://github.com/vitest-dev/vitest/commit/bea874610) - Forbid setting environment to `browser` - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8334](https://github.com/vitest-dev/vitest/issues/8334) [<samp>(0417a)</samp>](https://github.com/vitest-dev/vitest/commit/0417a2c1a) - Invalidate modules in all module graphs when the file is changed - by [@​sheremet-va](https://github.com/sheremet-va) in [#​8352](https://github.com/vitest-dev/vitest/issues/8352) [<samp>(94ab3)</samp>](https://github.com/vitest-dev/vitest/commit/94ab392b3) - Screenshot masks with Playwright provider - by [@​macarie](https://github.com/macarie) in [#​8357](https://git…
Description
Resolves #9123
Please don't delete this checklist! Before submitting the PR, please make sure you do the following:
pnpm-lock.yamlunless you introduce a new test example.Tests
pnpm test:ci.Documentation
pnpm run docscommand.Changesets
feat:,fix:,perf:,docs:, orchore:.