Commit 03457fc
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://github.com/vitest-dev/vitest/issues/8357) [<samp>(459ef)</samp>]…1 parent 8d25eb6 commit 03457fc
4 files changed
Lines changed: 80 additions & 160 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
64 | 64 | | |
65 | 65 | | |
66 | 66 | | |
67 | | - | |
| 67 | + | |
68 | 68 | | |
69 | 69 | | |
0 commit comments