From bafceab44705a043b63ce6d4c93c85d7f0cd6954 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Thu, 10 Sep 2026 20:04:34 +0000 Subject: [PATCH] chore(deps): update vitest monorepo to v5 (#345) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [@vitest/coverage-v8](https://vitest.dev/guide/coverage) ([source](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8)) | [`4.1.11` → `5.0.0`](https://renovatebot.com/diffs/npm/@vitest%2fcoverage-v8/4.1.11/5.0.0) | ![age](https://developer.mend.io/api/mc/badges/age/npm/@vitest%2fcoverage-v8/5.0.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vitest%2fcoverage-v8/4.1.11/5.0.0?slim=true) | | [vitest](https://vitest.dev) ([source](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest)) | [`4.1.11` → `5.0.0`](https://renovatebot.com/diffs/npm/vitest/4.1.11/5.0.0) | ![age](https://developer.mend.io/api/mc/badges/age/npm/vitest/5.0.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vitest/4.1.11/5.0.0?slim=true) | --- ### Release Notes
vitest-dev/vitest (@​vitest/coverage-v8) ### [`v5.0.0`](https://github.com/vitest-dev/vitest/releases/tag/v5.0.0) [Compare Source](https://github.com/vitest-dev/vitest/compare/v4.1.11...v5.0.0) Vitest 5 is officially out! This release focuses on performance and brings a lot of new features while fixing long-standing bugs. See our [blog post](https://vitest.dev/blog/vitest-5.html) for the official announcement. #####    🚨 Breaking Changes - Replace `loupe.inspect` with pretty-format  -  by [@​hi-ogawa](https://github.com/hi-ogawa), **Claude Opus 5 (1M context)** and **OpenAI Codex** in [#​9609](https://github.com/vitest-dev/vitest/issues/9609) [(3f802)](https://github.com/vitest-dev/vitest/commit/3f802da4b) - Remove quotes from string values in `test.for/each` title `$` variable (take 2)  -  by [@​hi-ogawa](https://github.com/hi-ogawa) in [#​10170](https://github.com/vitest-dev/vitest/issues/10170) [(04d37)](https://github.com/vitest-dev/vitest/commit/04d37e9d7) - Default `attachmentsDir` from `.vitest-attachements/` to `.vitest/attachments/`  -  by [@​MdSadiqMd](https://github.com/MdSadiqMd) in [#​10186](https://github.com/vitest-dev/vitest/issues/10186) [(1ba73)](https://github.com/vitest-dev/vitest/commit/1ba7338c3) - Remove `sequential` test/suite options in favor of `concurrent`  -  by [@​hi-ogawa](https://github.com/hi-ogawa) and **OpenAI Codex** in [#​10198](https://github.com/vitest-dev/vitest/issues/10198) [(9229f)](https://github.com/vitest-dev/vitest/commit/9229f2edc) - Represent locator as an object instead of a string  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​10212](https://github.com/vitest-dev/vitest/issues/10212) [(80f07)](https://github.com/vitest-dev/vitest/commit/80f07edf6) - Inline `expect` package  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​10221](https://github.com/vitest-dev/vitest/issues/10221) [(ad162)](https://github.com/vitest-dev/vitest/commit/ad16223e7) - Remove deprecated entry points  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​10222](https://github.com/vitest-dev/vitest/issues/10222) [(994c6)](https://github.com/vitest-dev/vitest/commit/994c6ddb9) - Require Node.js 22 and Vite 6.4  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​10178](https://github.com/vitest-dev/vitest/issues/10178) [(38762)](https://github.com/vitest-dev/vitest/commit/3876283e8) - Fail `expect.poll` when function didn't resolve in time  -  by [@​hi-ogawa](https://github.com/hi-ogawa) and **OpenAI Codex** in [#​10233](https://github.com/vitest-dev/vitest/issues/10233) [(4df04)](https://github.com/vitest-dev/vitest/commit/4df048c11) - Throw an error if hoistable methods are outside the top level scope  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​10460](https://github.com/vitest-dev/vitest/issues/10460) [(d0b4f)](https://github.com/vitest-dev/vitest/commit/d0b4fddcb) - `toHaveTextContent` is strict, add `toMatchTextContent` as alternative  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​10473](https://github.com/vitest-dev/vitest/issues/10473) [(18f30)](https://github.com/vitest-dev/vitest/commit/18f303079) - Don't lookup config file from ancestor directories  -  by [@​hi-ogawa](https://github.com/hi-ogawa), **OpenAI Codex** and **Hiroshi Ogawa** in [#​10428](https://github.com/vitest-dev/vitest/issues/10428) [(945d9)](https://github.com/vitest-dev/vitest/commit/945d9090e) - Inline `@vitest/runner` package, do not publish it anymore  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​10511](https://github.com/vitest-dev/vitest/issues/10511) [(6d6e4)](https://github.com/vitest-dev/vitest/commit/6d6e46b1e) - Allow mutating happy-dom/jsdom window object  -  by [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenAI Codex** in [#​10373](https://github.com/vitest-dev/vitest/issues/10373) [(206e8)](https://github.com/vitest-dev/vitest/commit/206e8cff8) - Expose `concurrencyId`/`workerId` on TestModule's diagnostics, make id 1-based  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​10516](https://github.com/vitest-dev/vitest/issues/10516) [(bdd98)](https://github.com/vitest-dev/vitest/commit/bdd985433) - Add `screenshotDirectory` config to `browser.expect.toMatchScreenshot`  -  by [@​macarie](https://github.com/macarie) in [#​10592](https://github.com/vitest-dev/vitest/issues/10592) [(a60de)](https://github.com/vitest-dev/vitest/commit/a60ded0fb) - Update `@sinonjs/fake-timers` and support mocking `Temporal`  -  by [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#​10654](https://github.com/vitest-dev/vitest/issues/10654) [(f8b15)](https://github.com/vitest-dev/vitest/commit/f8b1532fe) - Remove webdriverio package  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​10675](https://github.com/vitest-dev/vitest/issues/10675) [(5fed6)](https://github.com/vitest-dev/vitest/commit/5fed68f72) - Clear mocks by default before each test  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​10613](https://github.com/vitest-dev/vitest/issues/10613) [(0f646)](https://github.com/vitest-dev/vitest/commit/0f6463bf2) - Don't emit localStorage warnings on Node 26, fail gracefully when worker fails to start  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​10293](https://github.com/vitest-dev/vitest/issues/10293) [(334ed)](https://github.com/vitest-dev/vitest/commit/334edef92) - Separate config resolution from the server creation  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​10554](https://github.com/vitest-dev/vitest/issues/10554) [(1c0ec)](https://github.com/vitest-dev/vitest/commit/1c0ec3444) - Inline projects extend the root config by default  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​10750](https://github.com/vitest-dev/vitest/issues/10750) [(fec00)](https://github.com/vitest-dev/vitest/commit/fec001ad3) - Enable mocking Temporal without fake timers  -  by [@​fabon-f](https://github.com/fabon-f), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#​10757](https://github.com/vitest-dev/vitest/issues/10757) [(ac2d4)](https://github.com/vitest-dev/vitest/commit/ac2d46b42) - Support nested projects  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​10846](https://github.com/vitest-dev/vitest/issues/10846) [(ec367)](https://github.com/vitest-dev/vitest/commit/ec367cf2a) - Use `>` as separator in `-t`, calculate `only` once  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​10686](https://github.com/vitest-dev/vitest/issues/10686) [(a0b20)](https://github.com/vitest-dev/vitest/commit/a0b20bc86) - Fail the test when an asynchronous assertion is not awaited  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​10868](https://github.com/vitest-dev/vitest/issues/10868) [(86d4a)](https://github.com/vitest-dev/vitest/commit/86d4a9da9) - Share the Vite server between inline projects  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​10848](https://github.com/vitest-dev/vitest/issues/10848) [(d87c9)](https://github.com/vitest-dev/vitest/commit/d87c96ee4) - Parse files statically in vitest list by default  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​11088](https://github.com/vitest-dev/vitest/issues/11088) [(51e94)](https://github.com/vitest-dev/vitest/commit/51e949416) - **benchmark**: - Rewrite the public API  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​10113](https://github.com/vitest-dev/vitest/issues/10113) [(19f6e)](https://github.com/vitest-dev/vitest/commit/19f6e8947) - **browser**: - Iframe scale  -  by [@​macarie](https://github.com/macarie) in [#​9745](https://github.com/vitest-dev/vitest/issues/9745) [(b6398)](https://github.com/vitest-dev/vitest/commit/b639852cc) - Enable `locators.exact` by default  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​10430](https://github.com/vitest-dev/vitest/issues/10430) [(e2032)](https://github.com/vitest-dev/vitest/commit/e203202f9) - Require `sessionId` for orchestrator html request  -  by [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenAI Codex** in [#​10522](https://github.com/vitest-dev/vitest/issues/10522) [(79b7d)](https://github.com/vitest-dev/vitest/commit/79b7d8fcc) - Save failure screenshots in `attachmentsDir`  -  by [@​macarie](https://github.com/macarie) in [#​10917](https://github.com/vitest-dev/vitest/issues/10917) [(3b5bb)](https://github.com/vitest-dev/vitest/commit/3b5bbd8b4) - **coverage**: - `include/exclude` globs too eager  -  by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​9818](https://github.com/vitest-dev/vitest/issues/9818) [(edacb)](https://github.com/vitest-dev/vitest/commit/edacb0fd4) - Allow `thresholds.perFile` to accept an object  -  by [@​vladlenskiy](https://github.com/vladlenskiy) and [@​AriPerkkio](https://github.com/AriPerkkio) in [#​10190](https://github.com/vitest-dev/vitest/issues/10190) [(13b78)](https://github.com/vitest-dev/vitest/commit/13b78d98b) - **expect**: - Fix `toThrow("")` behavior by reverting [#​6710](https://github.com/vitest-dev/vitest/issues/6710)  -  by [@​hi-ogawa](https://github.com/hi-ogawa) in [#​9643](https://github.com/vitest-dev/vitest/issues/9643) and [#​6710](https://github.com/vitest-dev/vitest/issues/6710) [(6c3e4)](https://github.com/vitest-dev/vitest/commit/6c3e4bdbf) - **mocker**: - Deserialize automock as automock  -  by [@​nami8824](https://github.com/nami8824) in [#​10192](https://github.com/vitest-dev/vitest/issues/10192) [(2f892)](https://github.com/vitest-dev/vitest/commit/2f892712d) - **reporters**: - `blob` reporter and `--merge-reports` default to `.vitest/blob/`  -  by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​10232](https://github.com/vitest-dev/vitest/issues/10232) [(d22b0)](https://github.com/vitest-dev/vitest/commit/d22b029ae) - Write json and junit reporter output files to `.vitest` by default  -  by [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa**, **OpenCode (gpt-5.6-sol)** and [@​AriPerkkio](https://github.com/AriPerkkio) in [#​10621](https://github.com/vitest-dev/vitest/issues/10621) [(58577)](https://github.com/vitest-dev/vitest/commit/58577290a) - **spy**: - Preserve class mock prototype methods on instances  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​10910](https://github.com/vitest-dev/vitest/issues/10910) [(6093d)](https://github.com/vitest-dev/vitest/commit/6093d764a) - **types**: - Add better promise support in expects and matchers  -  by [@​samchungy](https://github.com/samchungy) and [@​sheremet-va](https://github.com/sheremet-va) in [#​8266](https://github.com/vitest-dev/vitest/issues/8266) [(41f55)](https://github.com/vitest-dev/vitest/commit/41f551bce) - **ui**: - Harden UI API access  -  by [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenAI Codex** in [#​10583](https://github.com/vitest-dev/vitest/issues/10583) [(4c26d)](https://github.com/vitest-dev/vitest/commit/4c26d7675) - Change html reporter default output to `.vitest`  -  by [@​hi-ogawa](https://github.com/hi-ogawa) and **Hiroshi Ogawa** in [#​10620](https://github.com/vitest-dev/vitest/issues/10620) [(29c36)](https://github.com/vitest-dev/vitest/commit/29c364d50) #####    🚀 Features - Add `createReport` and `.vitest` report directory convention  -  by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​9993](https://github.com/vitest-dev/vitest/issues/9993) [(72a6d)](https://github.com/vitest-dev/vitest/commit/72a6dc257) - Expose default reporters through `configDefaults.reporters`  -  by [@​hi-ogawa](https://github.com/hi-ogawa) and **Claude Opus 5 (1M context)** in [#​10219](https://github.com/vitest-dev/vitest/issues/10219) [(083f6)](https://github.com/vitest-dev/vitest/commit/083f6bdd6) - Support merge reports for non-sharded multi-environment runs (take 2)  -  by [@​hi-ogawa](https://github.com/hi-ogawa), **Claude Opus 5 (1M context)**, **OpenAI Codex** and [@​AriPerkkio](https://github.com/AriPerkkio) in [#​10031](https://github.com/vitest-dev/vitest/issues/10031) [(e60b2)](https://github.com/vitest-dev/vitest/commit/e60b2f49e) - Add `logger.formatError`  -  by [@​hi-ogawa](https://github.com/hi-ogawa) and **OpenAI Codex** in [#​10268](https://github.com/vitest-dev/vitest/issues/10268) [(2c5f3)](https://github.com/vitest-dev/vitest/commit/2c5f3ee2f) - Support typescript build mode  -  by [@​lishaduck](https://github.com/lishaduck) in [#​9870](https://github.com/vitest-dev/vitest/issues/9870) [(106da)](https://github.com/vitest-dev/vitest/commit/106da5896) - Add toggable `injectCjsGlobals` option  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​10709](https://github.com/vitest-dev/vitest/issues/10709) [(82671)](https://github.com/vitest-dev/vitest/commit/826714ece) - Promote fsModuleCache to a top-level option  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​10734](https://github.com/vitest-dev/vitest/issues/10734) [(78ed7)](https://github.com/vitest-dev/vitest/commit/78ed73afd) - Support non-ascii characters in `for/each` title placeholders  -  by [@​k-yle](https://github.com/k-yle) in [#​10773](https://github.com/vitest-dev/vitest/issues/10773) [(15e0a)](https://github.com/vitest-dev/vitest/commit/15e0af953) - Report the duration breakdown as percentages  -  by [@​sheremet-va](https://github.com/sheremet-va) and [@​AriPerkkio](https://github.com/AriPerkkio) in [#​10820](https://github.com/vitest-dev/vitest/issues/10820) [(c67d2)](https://github.com/vitest-dev/vitest/commit/c67d296f4) - Promote parseSpecifications out of experimental  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​11087](https://github.com/vitest-dev/vitest/issues/11087) [(b628c)](https://github.com/vitest-dev/vitest/commit/b628cb680) - Promote clearCache out of experimental  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​11086](https://github.com/vitest-dev/vitest/issues/11086) [(d4fe1)](https://github.com/vitest-dev/vitest/commit/d4fe1986f) - **api**: - Expose logs recorded during the test  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​10277](https://github.com/vitest-dev/vitest/issues/10277) [(cba20)](https://github.com/vitest-dev/vitest/commit/cba2036a1) - **benchmark**: - Add pluggable benchmark provider API  -  by [@​GuillaumeLagrange](https://github.com/GuillaumeLagrange) and [@​sheremet-va](https://github.com/sheremet-va) in [#​10799](https://github.com/vitest-dev/vitest/issues/10799) [(86c70)](https://github.com/vitest-dev/vitest/commit/86c700ed8) - **browser**: - Export aria tree utils  -  by [@​hi-ogawa](https://github.com/hi-ogawa) in [#​10171](https://github.com/vitest-dev/vitest/issues/10171) [(c3423)](https://github.com/vitest-dev/vitest/commit/c3423014c) - Support dom snapshot trace view  -  by [@​hi-ogawa](https://github.com/hi-ogawa), **Claude Opus 5 (1M context)** and **OpenAI Codex** in [#​10102](https://github.com/vitest-dev/vitest/issues/10102) [(7eddd)](https://github.com/vitest-dev/vitest/commit/7eddd273d) - Provide project reference in `ToMatchScreenshotResolvePath`  -  by [@​macarie](https://github.com/macarie) and [@​sheremet-va](https://github.com/sheremet-va) in [#​10138](https://github.com/vitest-dev/vitest/issues/10138) [(16654)](https://github.com/vitest-dev/vitest/commit/166544e39) - Show aria tree on locator element error  -  by [@​hi-ogawa](https://github.com/hi-ogawa) and **OpenAI Codex** in [#​10257](https://github.com/vitest-dev/vitest/issues/10257) [(04f04)](https://github.com/vitest-dev/vitest/commit/04f04cdd1) - Support custom `kind` in `page.mark`  -  by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​10302](https://github.com/vitest-dev/vitest/issues/10302) [(053e8)](https://github.com/vitest-dev/vitest/commit/053e8b0d1) - Live update trace view on watch UI  -  by [@​hi-ogawa](https://github.com/hi-ogawa) and **OpenAI Codex** in [#​10296](https://github.com/vitest-dev/vitest/issues/10296) [(78c11)](https://github.com/vitest-dev/vitest/commit/78c1169cf) - Add `context.mark` for custom command tracing  -  by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​10329](https://github.com/vitest-dev/vitest/issues/10329) [(aa514)](https://github.com/vitest-dev/vitest/commit/aa5140e76) - Show trace view steps in editor panel  -  by [@​hi-ogawa](https://github.com/hi-ogawa) and **OpenAI Codex** in [#​10404](https://github.com/vitest-dev/vitest/issues/10404) [(8c4b6)](https://github.com/vitest-dev/vitest/commit/8c4b6da02) - Display nested mark trace in UI  -  by [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenAI Codex** in [#​10437](https://github.com/vitest-dev/vitest/issues/10437) [(86ffc)](https://github.com/vitest-dev/vitest/commit/86ffc8ac6) - **cli**: - Add `--repeats` CLI option  -  by [@​todor-a](https://github.com/todor-a) in [#​10504](https://github.com/vitest-dev/vitest/issues/10504) [(ee48b)](https://github.com/vitest-dev/vitest/commit/ee48b959e) - Support -p shorthand for --project  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​10826](https://github.com/vitest-dev/vitest/issues/10826) [(1addd)](https://github.com/vitest-dev/vitest/commit/1adddde12) - **coverage**: - V8 to track `node:child_process` and `node:worker_threads` contexts  -  by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​9976](https://github.com/vitest-dev/vitest/issues/9976) [(9baa5)](https://github.com/vitest-dev/vitest/commit/9baa5faba) - `thresholds.autoUpdate` to receive previous threshold as argument  -  by [@​wouterkroes](https://github.com/wouterkroes) in [#​10495](https://github.com/vitest-dev/vitest/issues/10495) [(04f81)](https://github.com/vitest-dev/vitest/commit/04f81854f) - Switch to `@vitest/istanbuljs` packages  -  by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​11053](https://github.com/vitest-dev/vitest/issues/11053) [(5f6a5)](https://github.com/vitest-dev/vitest/commit/5f6a5e84a) - **junit-reporter**: - Add jest-junit-compatible naming options  -  by [@​neumaennl](https://github.com/neumaennl), **neumaennl**, **Martin Neumann** and **Copilot** in [#​10189](https://github.com/vitest-dev/vitest/issues/10189) [(27393)](https://github.com/vitest-dev/vitest/commit/273933440) - **reporter**: - Support html reporter single file output  -  by [@​hi-ogawa](https://github.com/hi-ogawa), **OpenAI Codex** and **Claude Opus 5 (1M context)** in [#​10235](https://github.com/vitest-dev/vitest/issues/10235) [(f757e)](https://github.com/vitest-dev/vitest/commit/f757ec5e6) - Add custom GitHub Actions summary title  -  by [@​heyJonBray](https://github.com/heyJonBray) and [@​macarie](https://github.com/macarie) in [#​10891](https://github.com/vitest-dev/vitest/issues/10891) [(4363c)](https://github.com/vitest-dev/vitest/commit/4363cdb49) - **ui**: - Highlight editor source locations  -  by [@​sheremet-va](https://github.com/sheremet-va), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#​11004](https://github.com/vitest-dev/vitest/issues/11004) [(bce2d)](https://github.com/vitest-dev/vitest/commit/bce2d3c2f) - Navigate trace steps with keyboard and remove indirect editor focus  -  by [@​sheremet-va](https://github.com/sheremet-va), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#​11005](https://github.com/vitest-dev/vitest/issues/11005) [(6816f)](https://github.com/vitest-dev/vitest/commit/6816f3b17) - Persist trace view selection in URL  -  by [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#​10981](https://github.com/vitest-dev/vitest/issues/10981) [(3069e)](https://github.com/vitest-dev/vitest/commit/3069e5927) - Toggle trace target highlight  -  by [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#​11049](https://github.com/vitest-dev/vitest/issues/11049) [(cd63e)](https://github.com/vitest-dev/vitest/commit/cd63e9e43) - Add link to open playwright trace  -  by [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#​11059](https://github.com/vitest-dev/vitest/issues/11059) [(58f02)](https://github.com/vitest-dev/vitest/commit/58f02ae36) - **vitest**: - Create `vi.when()`  -  by [@​macarie](https://github.com/macarie) in [#​10174](https://github.com/vitest-dev/vitest/issues/10174) [(3900e)](https://github.com/vitest-dev/vitest/commit/3900e6349) - **vm**: - Support `require(esm)` in vm pools  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​10829](https://github.com/vitest-dev/vitest/issues/10829) [(01298)](https://github.com/vitest-dev/vitest/commit/01298e5b3) #####    🐞 Bug Fixes - Global `sequence.concurrent: true` with top-level `test(..., { concurrent: false })` + depreacte `sequential` test API and options  -  by [@​hi-ogawa](https://github.com/hi-ogawa), **OpenAI Codex** and [@​sheremet-va](https://github.com/sheremet-va) in [#​10194](https://github.com/vitest-dev/vitest/issues/10194) [(9387f)](https://github.com/vitest-dev/vitest/commit/9387f57cf) - Test `tags` options should overwrite inherited suite options + inherit suite options in `task` API  -  by [@​hi-ogawa](https://github.com/hi-ogawa) and **OpenAI Codex** in [#​10216](https://github.com/vitest-dev/vitest/issues/10216) [(457db)](https://github.com/vitest-dev/vitest/commit/457db297b) - Udpate optimize deps config  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​10223](https://github.com/vitest-dev/vitest/issues/10223) [(95dc6)](https://github.com/vitest-dev/vitest/commit/95dc6e3f1) - Shell injection safety via github.ref\_name in publish workflow  -  by [@​lloyd-c137](https://github.com/lloyd-c137) and **lloyd-c137** in [#​10327](https://github.com/vitest-dev/vitest/issues/10327) [(dd020)](https://github.com/vitest-dev/vitest/commit/dd0207f4d) - Make `attachmentsDir` root only config  -  by [@​hi-ogawa](https://github.com/hi-ogawa) and **OpenAI Codex** in [#​10334](https://github.com/vitest-dev/vitest/issues/10334) [(fab1b)](https://github.com/vitest-dev/vitest/commit/fab1b6020) - Apply cjs interop for truthy `__esModule`  -  by [@​hi-ogawa](https://github.com/hi-ogawa) in [#​10363](https://github.com/vitest-dev/vitest/issues/10363) [(2b135)](https://github.com/vitest-dev/vitest/commit/2b13547a5) - Preserve `vi.defineHelper` callsite for async error stack  -  by [@​macayu17](https://github.com/macayu17) and [@​hi-ogawa](https://github.com/hi-ogawa) in [#​10415](https://github.com/vitest-dev/vitest/issues/10415) [(ac697)](https://github.com/vitest-dev/vitest/commit/ac6971ca2) - Respect `disableConsoleIntercept` in browser mode  -  by [@​Copilot](https://github.com/Copilot), **Hiroshi Ogawa**, [@​hi-ogawa](https://github.com/hi-ogawa) and **OpenAI Codex** in [#​10391](https://github.com/vitest-dev/vitest/issues/10391) [(66110)](https://github.com/vitest-dev/vitest/commit/66110d271) - ForceRerunTriggers uses directory globs against files  -  by [@​Patrick-Clausen](https://github.com/Patrick-Clausen) and **Patrick Clausen** in [#​10421](https://github.com/vitest-dev/vitest/issues/10421) and [#​10420](https://github.com/vitest-dev/vitest/issues/10420) [(4fee2)](https://github.com/vitest-dev/vitest/commit/4fee2e303) - Unify typechecking and ast collection  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​10449](https://github.com/vitest-dev/vitest/issues/10449) [(af993)](https://github.com/vitest-dev/vitest/commit/af993b66b) - Don't print typecheck warning more than once  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​10461](https://github.com/vitest-dev/vitest/issues/10461) [(15275)](https://github.com/vitest-dev/vitest/commit/152750ec0) - Correct collumn when parsing tests  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​10467](https://github.com/vitest-dev/vitest/issues/10467) [(7c2fc)](https://github.com/vitest-dev/vitest/commit/7c2fc133e) - Fix mixed stdout/stderr log timestamps in `onUserConsoleLog`  -  by [@​Copilot](https://github.com/Copilot), **Hiroshi Ogawa**, [@​hi-ogawa](https://github.com/hi-ogawa) and [@​sheremet-va](https://github.com/sheremet-va) in [#​10308](https://github.com/vitest-dev/vitest/issues/10308) [(62756)](https://github.com/vitest-dev/vitest/commit/627565475) - Fix `importOriginal` with optimizer and query import  -  by [@​davidxharris](https://github.com/davidxharris), **David Harris**, [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenAI Codex** in [#​10469](https://github.com/vitest-dev/vitest/issues/10469) [(6a3bb)](https://github.com/vitest-dev/vitest/commit/6a3bb02e0) - Correct transform time calculation in merged report  -  by [@​potatomatoooo](https://github.com/potatomatoooo) and [@​hi-ogawa](https://github.com/hi-ogawa) in [#​10570](https://github.com/vitest-dev/vitest/issues/10570) and [#​10578](https://github.com/vitest-dev/vitest/issues/10578) [(b7897)](https://github.com/vitest-dev/vitest/commit/b78972892) - Fix `setImmediate` await in detect-async-leak  -  by [@​hi-ogawa](https://github.com/hi-ogawa) and **Hiroshi Ogawa** in [#​10608](https://github.com/vitest-dev/vitest/issues/10608) [(dd62b)](https://github.com/vitest-dev/vitest/commit/dd62b84e0) - Fix per-project `sequence` config  -  by [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#​10659](https://github.com/vitest-dev/vitest/issues/10659) [(40cdc)](https://github.com/vitest-dev/vitest/commit/40cdc7fd6) - Add handshake timeout to iframe communication  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​10656](https://github.com/vitest-dev/vitest/issues/10656) [(3545f)](https://github.com/vitest-dev/vitest/commit/3545fe78f) - Don't print column in test names when `includeTaskLocation` is enabled  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​10681](https://github.com/vitest-dev/vitest/issues/10681) [(bd9cc)](https://github.com/vitest-dev/vitest/commit/bd9cc9d8d) - Disable server HMR before plugins read it in their config hook  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​10731](https://github.com/vitest-dev/vitest/issues/10731) [(e060b)](https://github.com/vitest-dev/vitest/commit/e060b8fa9) - Close the pool before the Vite servers  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​10725](https://github.com/vitest-dev/vitest/issues/10725) [(96fa6)](https://github.com/vitest-dev/vitest/commit/96fa6d73d) - Remove listeners in the typecheck worker's `off`  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​10741](https://github.com/vitest-dev/vitest/issues/10741) [(d758b)](https://github.com/vitest-dev/vitest/commit/d758b4755) - Keep per-file isolation in vm pools when maxWorkers is 1  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​10743](https://github.com/vitest-dev/vitest/issues/10743) [(83ab9)](https://github.com/vitest-dev/vitest/commit/83ab9a44f) - Node.js 20 deprecation warning for `ci.yml`  -  by [@​hirehamir](https://github.com/hirehamir) in [#​10759](https://github.com/vitest-dev/vitest/issues/10759) [(2127f)](https://github.com/vitest-dev/vitest/commit/2127fa6ce) - Prevent node builtins double prefix  -  by [@​malobre](https://github.com/malobre) in [#​10630](https://github.com/vitest-dev/vitest/issues/10630) and [#​10767](https://github.com/vitest-dev/vitest/issues/10767) [(22d35)](https://github.com/vitest-dev/vitest/commit/22d353a80) - Set non-zero exit code when teardown throws during close  -  by [@​zakcutner](https://github.com/zakcutner) and [@​AriPerkkio](https://github.com/AriPerkkio) in [#​10794](https://github.com/vitest-dev/vitest/issues/10794) [(22116)](https://github.com/vitest-dev/vitest/commit/22116feb7) - Don't race the typechecker spawn grace period on windows  -  by [@​xevrion](https://github.com/xevrion) in [#​10814](https://github.com/vitest-dev/vitest/issues/10814) [(b19e5)](https://github.com/vitest-dev/vitest/commit/b19e5ece9) - Coalesce concurrent watch-mode restarts, deflake the pool stderr fixture  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​10822](https://github.com/vitest-dev/vitest/issues/10822) [(a31f8)](https://github.com/vitest-dev/vitest/commit/a31f86af7) - Prevent `vitest --typecheck` from reporting a false success when the `tsc` process crashes  -  by [@​hitenkalda](https://github.com/hitenkalda) and **Hiten Kalda** in [#​10705](https://github.com/vitest-dev/vitest/issues/10705) [(a1b05)](https://github.com/vitest-dev/vitest/commit/a1b0565c9) - Collect in-source tests when the module is cached  -  by [@​koutaro-masaki](https://github.com/koutaro-masaki) in [#​10577](https://github.com/vitest-dev/vitest/issues/10577) and [#​10589](https://github.com/vitest-dev/vitest/issues/10589) [(a7bf2)](https://github.com/vitest-dev/vitest/commit/a7bf2b2c8) - Swap replace() arguments so timeout error stack shows the real message  -  by [@​lazerg](https://github.com/lazerg) in [#​10875](https://github.com/vitest-dev/vitest/issues/10875) [(aba0f)](https://github.com/vitest-dev/vitest/commit/aba0f9b7b) - Stale mock metadata breaks automocking with isolate:false  -  by [@​kade-robertson](https://github.com/kade-robertson) in [#​10145](https://github.com/vitest-dev/vitest/issues/10145) and [#​10541](https://github.com/vitest-dev/vitest/issues/10541) [(8e210)](https://github.com/vitest-dev/vitest/commit/8e2108dda) - Don't lose worker output on teardown, deflake timing-sensitive tests  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​10842](https://github.com/vitest-dev/vitest/issues/10842) [(1216b)](https://github.com/vitest-dev/vitest/commit/1216b5af9) - Revive global concurrency limit for test lifecycle  -  by [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa**, **OpenCode (gpt-5.6-sol)** and [@​sheremet-va](https://github.com/sheremet-va) in [#​10928](https://github.com/vitest-dev/vitest/issues/10928) [(cf917)](https://github.com/vitest-dev/vitest/commit/cf9176bfc) - Own the post-restart rerun, keep `process.exit` disabled in workers  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​10963](https://github.com/vitest-dev/vitest/issues/10963) [(5e69a)](https://github.com/vitest-dev/vitest/commit/5e69aba65) - Preserve correct root during resolve config  -  by [@​AriPerkkio](https://github.com/AriPerkkio) and [@​sheremet-va](https://github.com/sheremet-va) in [#​10909](https://github.com/vitest-dev/vitest/issues/10909) [(210ba)](https://github.com/vitest-dev/vitest/commit/210ba00cb) - Combine multiple --project filters correctly  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​10988](https://github.com/vitest-dev/vitest/issues/10988) [(66c1c)](https://github.com/vitest-dev/vitest/commit/66c1cbb53) - Fix `recordArtifact` location with `vi.defineHelper`  -  by [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#​11047](https://github.com/vitest-dev/vitest/issues/11047) [(c2186)](https://github.com/vitest-dev/vitest/commit/c21865dfd) - Invalidate resolved setup files  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​11073](https://github.com/vitest-dev/vitest/issues/11073) and [#​11081](https://github.com/vitest-dev/vitest/issues/11081) [(488c0)](https://github.com/vitest-dev/vitest/commit/488c04680) - Accept awaited value in vi.when thenResolve  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​11084](https://github.com/vitest-dev/vitest/issues/11084) [(c10a1)](https://github.com/vitest-dev/vitest/commit/c10a12900) - Ignore computed member calls in static collection  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​11085](https://github.com/vitest-dev/vitest/issues/11085) [(130f7)](https://github.com/vitest-dev/vitest/commit/130f79b8b) - Don't duplicte `oxc.target` if user provides a custom array  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​11095](https://github.com/vitest-dev/vitest/issues/11095) [(848d7)](https://github.com/vitest-dev/vitest/commit/848d7243e) - Propagate --maxWorkers to projects  -  by [@​Gaurav1112](https://github.com/Gaurav1112) in [#​11102](https://github.com/vitest-dev/vitest/issues/11102) [(2122f)](https://github.com/vitest-dev/vitest/commit/2122ffdfb) - Apply queued mocks from doMock() in queue order  -  by [@​juliandescottes](https://github.com/juliandescottes) and **Claude Opus 5 (1M context)** in [#​10706](https://github.com/vitest-dev/vitest/issues/10706) and [#​11127](https://github.com/vitest-dev/vitest/issues/11127) [(f08ce)](https://github.com/vitest-dev/vitest/commit/f08ce4b71) - Add a warning if inline project has duplicate plugins due to unexpected `extends: true`  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​11120](https://github.com/vitest-dev/vitest/issues/11120) [(584cf)](https://github.com/vitest-dev/vitest/commit/584cf3084) - Treat test.describe as a suite during static collection  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​11128](https://github.com/vitest-dev/vitest/issues/11128) [(d46a7)](https://github.com/vitest-dev/vitest/commit/d46a74722) - **browser**: - Fix trace highlight of shadow dom on webdriverio  -  by [@​hi-ogawa](https://github.com/hi-ogawa) in [#​10227](https://github.com/vitest-dev/vitest/issues/10227) [(b01af)](https://github.com/vitest-dev/vitest/commit/b01afd26c) - Simplify orchestrator otel carrier  -  by [@​hi-ogawa](https://github.com/hi-ogawa) in [#​10283](https://github.com/vitest-dev/vitest/issues/10283) [(3514f)](https://github.com/vitest-dev/vitest/commit/3514f9fa1) - Remove orphaned Playwright route when same module is mocked via multiple ids  -  by [@​Zelys-DFKH](https://github.com/Zelys-DFKH) in [#​9957](https://github.com/vitest-dev/vitest/issues/9957) and [#​10267](https://github.com/vitest-dev/vitest/issues/10267) [(41db6)](https://github.com/vitest-dev/vitest/commit/41db6ce28) - Skip `wrapDynamicImport` transform on ssr environment  -  by [@​hi-ogawa](https://github.com/hi-ogawa) in [#​10355](https://github.com/vitest-dev/vitest/issues/10355) [(d3c96)](https://github.com/vitest-dev/vitest/commit/d3c964bfc) - Fix stale source map on watch mode  -  by [@​hi-ogawa](https://github.com/hi-ogawa) in [#​10389](https://github.com/vitest-dev/vitest/issues/10389) [(6d772)](https://github.com/vitest-dev/vitest/commit/6d772c800) - Escape inline orchestrator scripts  -  by [@​hi-ogawa](https://github.com/hi-ogawa) and **OpenAI Codex** in [#​10412](https://github.com/vitest-dev/vitest/issues/10412) [(c22cf)](https://github.com/vitest-dev/vitest/commit/c22cfb656) - Disable client `cdp` API when `allowWrite/allowExec: false`  -  by [@​hi-ogawa](https://github.com/hi-ogawa) and **OpenAI Codex** in [#​10444](https://github.com/vitest-dev/vitest/issues/10444) [(63e3b)](https://github.com/vitest-dev/vitest/commit/63e3b2eee) - Wait for orchestrator readiness before resolving browser sessions  -  by [@​soconnor-seeq](https://github.com/soconnor-seeq) in [#​10397](https://github.com/vitest-dev/vitest/issues/10397) [(fe5ed)](https://github.com/vitest-dev/vitest/commit/fe5ed6bc7) - Wait for iframe tester readiness before preparing  -  by [@​soconnor-seeq](https://github.com/soconnor-seeq) in [#​10497](https://github.com/vitest-dev/vitest/issues/10497) [(f2655)](https://github.com/vitest-dev/vitest/commit/f26552c63) - Encode iframeId in tester iframe URL  -  by [@​Pduhard](https://github.com/Pduhard), **Pduhard** and **Claude Opus 5 (1M context)** in [#​10520](https://github.com/vitest-dev/vitest/issues/10520) and [#​10521](https://github.com/vitest-dev/vitest/issues/10521) [(c8bf1)](https://github.com/vitest-dev/vitest/commit/c8bf19f66) - Always derive a positive locator action timeout  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​10626](https://github.com/vitest-dev/vitest/issues/10626) [(5b864)](https://github.com/vitest-dev/vitest/commit/5b8642120) - Resize the browser ui only if it's not headless  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​10662](https://github.com/vitest-dev/vitest/issues/10662) [(b5c61)](https://github.com/vitest-dev/vitest/commit/b5c613051) - Check fs access in builtin commands  -  by [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#​10674](https://github.com/vitest-dev/vitest/issues/10674) [(33f96)](https://github.com/vitest-dev/vitest/commit/33f96a145) - Preserve pre-transform request defaults  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​10748](https://github.com/vitest-dev/vitest/issues/10748) [(b6060)](https://github.com/vitest-dev/vitest/commit/b60605ca7) - Fix error stacktrace location off-by-one  -  by [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#​10724](https://github.com/vitest-dev/vitest/issues/10724) [(62b8d)](https://github.com/vitest-dev/vitest/commit/62b8d3b36) - Inlined awaited import should not trigger syntax error after transform  -  by [@​smeng9](https://github.com/smeng9), **Shaoyu Meng** and **Claude Opus 5 (1M context)** in [#​10784](https://github.com/vitest-dev/vitest/issues/10784) [(51acd)](https://github.com/vitest-dev/vitest/commit/51acd5778) - Mock window\.print to avoid hanging  -  by [@​aaravjaichand](https://github.com/aaravjaichand) in [#​7375](https://github.com/vitest-dev/vitest/issues/7375) and [#​10798](https://github.com/vitest-dev/vitest/issues/10798) [(66d95)](https://github.com/vitest-dev/vitest/commit/66d95af84) - Ignore channel events in a tester opened as a top-level window  -  by [@​simshanith](https://github.com/simshanith) in [#​9379](https://github.com/vitest-dev/vitest/issues/9379) and [#​9381](https://github.com/vitest-dev/vitest/issues/9381) [(46a3c)](https://github.com/vitest-dev/vitest/commit/46a3cf750) - Resolve `connectTimeout` from the project config  -  by [@​lazerg](https://github.com/lazerg) in [#​10879](https://github.com/vitest-dev/vitest/issues/10879) and [#​10880](https://github.com/vitest-dev/vitest/issues/10880) [(62c79)](https://github.com/vitest-dev/vitest/commit/62c795d63) - Prebundle vite module runner with vitest  -  by [@​lebovvskii](https://github.com/lebovvskii) and [@​sheremet-va](https://github.com/sheremet-va) in [#​10836](https://github.com/vitest-dev/vitest/issues/10836) and [#​10856](https://github.com/vitest-dev/vitest/issues/10856) [(37c24)](https://github.com/vitest-dev/vitest/commit/37c240158) - Restore dependency reload warning  -  by [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#​10913](https://github.com/vitest-dev/vitest/issues/10913) [(90d69)](https://github.com/vitest-dev/vitest/commit/90d696d44) - Configure internal optimizer dependencies  -  by [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#​10915](https://github.com/vitest-dev/vitest/issues/10915) [(a72f4)](https://github.com/vitest-dev/vitest/commit/a72f46eac) - Trigger playwright/chromium gc on lower disk availability  -  by [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#​10912](https://github.com/vitest-dev/vitest/issues/10912) [(032d3)](https://github.com/vitest-dev/vitest/commit/032d31892) - Disallow filter-only options in getBy\* locators  -  by **Arjun** in [#​10295](https://github.com/vitest-dev/vitest/issues/10295) and [#​10933](https://github.com/vitest-dev/vitest/issues/10933) [(9b4df)](https://github.com/vitest-dev/vitest/commit/9b4df4b05) - Fail instead of hanging when the browser stops responding  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​10956](https://github.com/vitest-dev/vitest/issues/10956) [(c496c)](https://github.com/vitest-dev/vitest/commit/c496c2e33) - Exit gracefully when the browser disconnects during cancellation  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​10962](https://github.com/vitest-dev/vitest/issues/10962) [(67e84)](https://github.com/vitest-dev/vitest/commit/67e848564) - Don't redirect vitest in client environment  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​10975](https://github.com/vitest-dev/vitest/issues/10975) [(aeb67)](https://github.com/vitest-dev/vitest/commit/aeb672095) - Don't hang when `ui: true` in projects  -  by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​10994](https://github.com/vitest-dev/vitest/issues/10994) [(9f710)](https://github.com/vitest-dev/vitest/commit/9f710d304) - Preserve trace popover state  -  by [@​liuluochen6-af](https://github.com/liuluochen6-af), **Hiroshi Ogawa**, **OpenCode (gpt-5.6-sol)** and [@​hi-ogawa](https://github.com/hi-ogawa) in [#​10906](https://github.com/vitest-dev/vitest/issues/10906) and [#​11021](https://github.com/vitest-dev/vitest/issues/11021) [(1bbc2)](https://github.com/vitest-dev/vitest/commit/1bbc278c2) - Report the action error when a task times out  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​11101](https://github.com/vitest-dev/vitest/issues/11101) [(dc10f)](https://github.com/vitest-dev/vitest/commit/dc10f5f8f) - **cache**: - Improve `fsModuleCache` resiliency during external modifications  -  by [@​jszumski](https://github.com/jszumski) in [#​10869](https://github.com/vitest-dev/vitest/issues/10869) [(5eb35)](https://github.com/vitest-dev/vitest/commit/5eb3570e8) - **cli**: - Respect `FORCE_COLOR` over agent detection  -  by [@​dokson](https://github.com/dokson) in [#​10272](https://github.com/vitest-dev/vitest/issues/10272) [(7e66b)](https://github.com/vitest-dev/vitest/commit/7e66bc726) - Exit on `CTRL+c` even when `globalSetup` runs blocked code  -  by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​10863](https://github.com/vitest-dev/vitest/issues/10863) [(d568f)](https://github.com/vitest-dev/vitest/commit/d568f8ce3) - **coverage**: - `exclude` to not inherit negation globs from `test.include`  -  by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​10299](https://github.com/vitest-dev/vitest/issues/10299) [(28685)](https://github.com/vitest-dev/vitest/commit/286851ea2) - Avoid matching sibling project roots  -  by [@​innoprej](https://github.com/innoprej), **Shin JaeHee** and [@​AriPerkkio](https://github.com/AriPerkkio) in [#​10311](https://github.com/vitest-dev/vitest/issues/10311) [(e30dd)](https://github.com/vitest-dev/vitest/commit/e30dd9cf6) - Non-awaited module imports cause wrong offsets  -  by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​10643](https://github.com/vitest-dev/vitest/issues/10643) [(c4090)](https://github.com/vitest-dev/vitest/commit/c40901479) - Fail fast when `coverage.reportsDirectory` conflicts between concurrent runs  -  by [@​jgamaraalv](https://github.com/jgamaraalv) and [@​AriPerkkio](https://github.com/AriPerkkio) in [#​10466](https://github.com/vitest-dev/vitest/issues/10466) [(833f0)](https://github.com/vitest-dev/vitest/commit/833f0936c) - V8 to ignore Vite SSR's generated import bindings  -  by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​11023](https://github.com/vitest-dev/vitest/issues/11023) [(c6174)](https://github.com/vitest-dev/vitest/commit/c6174a6cf) - Prevent crash on `/@fs/` prepended virtual files  -  by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​11119](https://github.com/vitest-dev/vitest/issues/11119) [(c4473)](https://github.com/vitest-dev/vitest/commit/c4473e48e) - **deps**: - Update ivya to fix empty aria tree snapshot  -  by [@​hi-ogawa](https://github.com/hi-ogawa) in [#​10218](https://github.com/vitest-dev/vitest/issues/10218) [(f7822)](https://github.com/vitest-dev/vitest/commit/f7822ebf6) - Update fake-timers to 15.3.2. support `toNotFake`  -  by [@​BPScott](https://github.com/BPScott), [@​hi-ogawa](https://github.com/hi-ogawa) and **OpenAI Codex** in [#​10043](https://github.com/vitest-dev/vitest/issues/10043) [(bbf2f)](https://github.com/vitest-dev/vitest/commit/bbf2f0df3) - Update all non-major dependencies  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​9958](https://github.com/vitest-dev/vitest/issues/9958) [(7faa7)](https://github.com/vitest-dev/vitest/commit/7faa7b04a) - Update all non-major dependencies  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​10861](https://github.com/vitest-dev/vitest/issues/10861) [(0188c)](https://github.com/vitest-dev/vitest/commit/0188c8135) - Update all non-major dependencies  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​10898](https://github.com/vitest-dev/vitest/issues/10898) [(61c4b)](https://github.com/vitest-dev/vitest/commit/61c4b8024) - Update all non-major dependencies  -  in [#​10966](https://github.com/vitest-dev/vitest/issues/10966) [(65263)](https://github.com/vitest-dev/vitest/commit/65263d74e) - Update all non-major dependencies  -  in [#​11043](https://github.com/vitest-dev/vitest/issues/11043) [(732df)](https://github.com/vitest-dev/vitest/commit/732df2c2b) - **expect**: - Allow readonly arrays and sets in toBeOneOf  -  by [@​YBJ0000](https://github.com/YBJ0000) in [#​10264](https://github.com/vitest-dev/vitest/issues/10264) and [#​10374](https://github.com/vitest-dev/vitest/issues/10374) [(fed11)](https://github.com/vitest-dev/vitest/commit/fed1125b0) - Handle nullish toHaveProperty values  -  by [@​liyimil](https://github.com/liyimil) in [#​10735](https://github.com/vitest-dev/vitest/issues/10735) and [#​10811](https://github.com/vitest-dev/vitest/issues/10811) [(99e59)](https://github.com/vitest-dev/vitest/commit/99e596d33) - **junit**: - Include unhandled errors in JUnit XML report  -  by [@​gbleu](https://github.com/gbleu) and **Claude Opus 5 (1M context)** in [#​10244](https://github.com/vitest-dev/vitest/issues/10244) [(6f74e)](https://github.com/vitest-dev/vitest/commit/6f74e5e9d) - **mocker**: - Skip hoist transform without ast mock calls  -  by [@​hi-ogawa](https://github.com/hi-ogawa) and **OpenAI Codex** in [#​10410](https://github.com/vitest-dev/vitest/issues/10410) [(0468e)](https://github.com/vitest-dev/vitest/commit/0468e1572) - Hoist vi.mock() for vite-plus/test imports  -  by [@​Brooooooklyn](https://github.com/Brooooooklyn) and **Claude Opus 5 (1M context)** in [#​10489](https://github.com/vitest-dev/vitest/issues/10489) [(88376)](https://github.com/vitest-dev/vitest/commit/8837664a4) - Restrict redirect mocks to the fs allowlist  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​10972](https://github.com/vitest-dev/vitest/issues/10972) [(8ff9b)](https://github.com/vitest-dev/vitest/commit/8ff9b9a9e) - **pool**: - Prevent test run hang on worker crash  -  by [@​jaxalo](https://github.com/jaxalo) and [@​AriPerkkio](https://github.com/AriPerkkio) in [#​10543](https://github.com/vitest-dev/vitest/issues/10543) [(40878)](https://github.com/vitest-dev/vitest/commit/4087802b5) - Improve error message when worker exits unexpectedly  -  by [@​filmaj](https://github.com/filmaj) and [@​AriPerkkio](https://github.com/AriPerkkio) in [#​10587](https://github.com/vitest-dev/vitest/issues/10587) [(76139)](https://github.com/vitest-dev/vitest/commit/76139c5a0) - Vm pools to respect cgroupsv2 memory limit  -  by [@​milas](https://github.com/milas) in [#​10721](https://github.com/vitest-dev/vitest/issues/10721) [(3923c)](https://github.com/vitest-dev/vitest/commit/3923cab3d) - Worker init to handle queued synchronous messages  -  by [@​lazerg](https://github.com/lazerg) and [@​AriPerkkio](https://github.com/AriPerkkio) in [#​10932](https://github.com/vitest-dev/vitest/issues/10932) [(76096)](https://github.com/vitest-dev/vitest/commit/76096c769) - Report the worker exit instead of a pipe error that raced it  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​10964](https://github.com/vitest-dev/vitest/issues/10964) [(59a03)](https://github.com/vitest-dev/vitest/commit/59a037354) - **reporter**: - Guard against non-finite slowTestThreshold in summary reporter  -  by [@​OfekDanny](https://github.com/OfekDanny), **Ofek Danny**, **Claude Opus 5 (1M context)** and [@​AriPerkkio](https://github.com/AriPerkkio) in [#​10202](https://github.com/vitest-dev/vitest/issues/10202) [(f362f)](https://github.com/vitest-dev/vitest/commit/f362f96db) - Fix non-existing import subpath module blob serialization  -  by [@​hi-ogawa](https://github.com/hi-ogawa) in [#​10318](https://github.com/vitest-dev/vitest/issues/10318) [(29cb0)](https://github.com/vitest-dev/vitest/commit/29cb06b35) - **reporters**: - Fix blob file name with label  -  by [@​hi-ogawa](https://github.com/hi-ogawa) in [#​10346](https://github.com/vitest-dev/vitest/issues/10346) [(c5e2e)](https://github.com/vitest-dev/vitest/commit/c5e2e7530) - `summary` to intercept logger's streams even when they are not `process.std*` streams  -  by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​10340](https://github.com/vitest-dev/vitest/issues/10340) [(f79e7)](https://github.com/vitest-dev/vitest/commit/f79e7db90) - Fix missing `testModules` in `onTestRunEnd` when merging blobs from different root directory test runs  -  by [@​hi-ogawa](https://github.com/hi-ogawa) and **OpenAI Codex** in [#​10348](https://github.com/vitest-dev/vitest/issues/10348) [(745b3)](https://github.com/vitest-dev/vitest/commit/745b30b64) - Print parent describe suites when the passed-test list is hidden  -  by [@​ChihebBENCHEIKH1](https://github.com/ChihebBENCHEIKH1), **Chiheb Bencheikh** and [@​sheremet-va](https://github.com/sheremet-va) in [#​10606](https://github.com/vitest-dev/vitest/issues/10606) and [#​10768](https://github.com/vitest-dev/vitest/issues/10768) [(658af)](https://github.com/vitest-dev/vitest/commit/658affeb3) - Display `test.name` in GitHub Actions reporter summary header  -  by [@​macarie](https://github.com/macarie) in [#​10887](https://github.com/vitest-dev/vitest/issues/10887) [(49e24)](https://github.com/vitest-dev/vitest/commit/49e24fa38) - **runner**: - Propagate chainable flags in describe.for  -  by [@​DoriAlagem](https://github.com/DoriAlagem), **Dor Alagem** and [@​hi-ogawa](https://github.com/hi-ogawa) in [#​10187](https://github.com/vitest-dev/vitest/issues/10187) [(db678)](https://github.com/vitest-dev/vitest/commit/db67831d7) - Limit concurrency per task branch in addition to per leaf callbacks  -  by [@​hi-ogawa](https://github.com/hi-ogawa) in [#​10179](https://github.com/vitest-dev/vitest/issues/10179) [(3112a)](https://github.com/vitest-dev/vitest/commit/3112abea2) - Remove AbortSignal listener leak in withCancel  -  by [@​tomohiro86](https://github.com/tomohiro86) and [@​AriPerkkio](https://github.com/AriPerkkio) in [#​10265](https://github.com/vitest-dev/vitest/issues/10265) [(ab098)](https://github.com/vitest-dev/vitest/commit/ab09822a4) - Don't fail collection when accessing `error.stack` throws  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​10839](https://github.com/vitest-dev/vitest/issues/10839) [(202e2)](https://github.com/vitest-dev/vitest/commit/202e27f3d) - **snapshot**: - Fail test when snapshot assertion is used with `test.fails`  -  by [@​hi-ogawa](https://github.com/hi-ogawa) in [#​10090](https://github.com/vitest-dev/vitest/issues/10090) [(e1aa7)](https://github.com/vitest-dev/vitest/commit/e1aa7a60a) - Treat empty string as valid snapshot  -  by [@​mayrang](https://github.com/mayrang) and [@​hi-ogawa](https://github.com/hi-ogawa) in [#​10188](https://github.com/vitest-dev/vitest/issues/10188) [(e145d)](https://github.com/vitest-dev/vitest/commit/e145d5756) - Support no-unsafe-eval CSP by evaluating snapshot files on server  -  by [@​hi-ogawa](https://github.com/hi-ogawa) in [#​10665](https://github.com/vitest-dev/vitest/issues/10665) [(667c1)](https://github.com/vitest-dev/vitest/commit/667c13954) - Reject when `toMatchFileSnapshot` uses same snapshot file as `toMatchSnapshot`  -  by [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa**, **OpenCode (gpt-5.6-sol)** and [@​sheremet-va](https://github.com/sheremet-va) in [#​10978](https://github.com/vitest-dev/vitest/issues/10978) [(17646)](https://github.com/vitest-dev/vitest/commit/17646ac72) - **spy**: - Support private method spy types  -  by [@​cyphercodes](https://github.com/cyphercodes) in [#​10172](https://github.com/vitest-dev/vitest/issues/10172) and [#​10213](https://github.com/vitest-dev/vitest/issues/10213) [(628ab)](https://github.com/vitest-dev/vitest/commit/628ab32f1) - Point ESM namespace spy error to module mocking docs  -  by [@​ryandiginomad](https://github.com/ryandiginomad) and **Ryan Tang** in [#​10707](https://github.com/vitest-dev/vitest/issues/10707) [(d6cec)](https://github.com/vitest-dev/vitest/commit/d6ceca9d7) - **typecheck**: - Report a checker crash on Windows instead of a spawn failure  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​10907](https://github.com/vitest-dev/vitest/issues/10907) [(77aac)](https://github.com/vitest-dev/vitest/commit/77aac87dd) - **types**: - Allow `changed` in configuration options  -  by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​10651](https://github.com/vitest-dev/vitest/issues/10651) [(0da12)](https://github.com/vitest-dev/vitest/commit/0da12aad4) - **ui**: - Fix duplicate colored error message  -  by [@​hi-ogawa](https://github.com/hi-ogawa) and **OpenAI Codex** in [#​10258](https://github.com/vitest-dev/vitest/issues/10258) [(035e3)](https://github.com/vitest-dev/vitest/commit/035e3bb70) - Fix missing source code in html reporter metadata when merging blobs with different root directory test runs  -  by [@​hi-ogawa](https://github.com/hi-ogawa) and **OpenAI Codex** in [#​10338](https://github.com/vitest-dev/vitest/issues/10338) [(4f7c2)](https://github.com/vitest-dev/vitest/commit/4f7c2670c) - Fix module graph in browser mode with --ui  -  by [@​hi-ogawa](https://github.com/hi-ogawa) in [#​10386](https://github.com/vitest-dev/vitest/issues/10386) [(3003c)](https://github.com/vitest-dev/vitest/commit/3003c4327) - Render ANSI color codes in editor panel inline error widget  -  by [@​Copilot](https://github.com/Copilot), **Hiroshi Ogawa** and [@​hi-ogawa](https://github.com/hi-ogawa) in [#​10418](https://github.com/vitest-dev/vitest/issues/10418) [(766b8)](https://github.com/vitest-dev/vitest/commit/766b8d2fa) - Fix code editor error and annotations gadgets layout shifts  -  by [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#​10969](https://github.com/vitest-dev/vitest/issues/10969) [(438ed)](https://github.com/vitest-dev/vitest/commit/438eda13f) - Synchronize watch-run UI state on file removal  -  by [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#​10941](https://github.com/vitest-dev/vitest/issues/10941) [(30c21)](https://github.com/vitest-dev/vitest/commit/30c21e668) - Require auth for coverage report and all UI subtree requests  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​10971](https://github.com/vitest-dev/vitest/issues/10971) [(5622f)](https://github.com/vitest-dev/vitest/commit/5622f0959) - Improve suite interaction and layout in explorer tree  -  by [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#​10970](https://github.com/vitest-dev/vitest/issues/10970) [(91231)](https://github.com/vitest-dev/vitest/commit/9123111b3) - Reveal explorer virtual scroller on resize  -  by [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#​10998](https://github.com/vitest-dev/vitest/issues/10998) [(1f4fc)](https://github.com/vitest-dev/vitest/commit/1f4fcd363) - Persist trace step-iframe split pane sizes  -  by [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#​11027](https://github.com/vitest-dev/vitest/issues/11027) [(3cd01)](https://github.com/vitest-dev/vitest/commit/3cd019a0a) - Add suite level report view  -  by [@​dvmhmdsd](https://github.com/dvmhmdsd), **Hiroshi Ogawa**, **OpenCode (gpt-5.6-sol)** and [@​hi-ogawa](https://github.com/hi-ogawa) in [#​11038](https://github.com/vitest-dev/vitest/issues/11038) [(602d2)](https://github.com/vitest-dev/vitest/commit/602d215ae) - Hide running count in static reports  -  by [@​hi-ogawa](https://github.com/hi-ogawa), **Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in [#​11123](https://github.com/vitest-dev/vitest/issues/11123) [(73d72)](https://github.com/vitest-dev/vitest/commit/73d729484) - **utils**: - Don't crash on a malformed inline source map  -  by [@​lazerg](https://github.com/lazerg), **Hiroshi Ogawa**, **OpenCode (gpt-5.6-sol)** and [@​hi-ogawa](https://github.com/hi-ogawa) in [#​10892](https://github.com/vitest-dev/vitest/issues/10892) and [#​10893](https://github.com/vitest-dev/vitest/issues/10893) [(fe790)](https://github.com/vitest-dev/vitest/commit/fe7906275) - **vitest**: - Strip non-serializable functions from inline diff config  -  by [@​DucMinhNe](https://github.com/DucMinhNe) in [#​10573](https://github.com/vitest-dev/vitest/issues/10573) [(5b81a)](https://github.com/vitest-dev/vitest/commit/5b81a63ff) - Remove broken "./src/\*" export from package.json  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​10918](https://github.com/vitest-dev/vitest/issues/10918) [(2e5df)](https://github.com/vitest-dev/vitest/commit/2e5df7543) - Render non-Error causes from env setup so the actual diagnostic is not dropped  -  by [@​spokodev](https://github.com/spokodev) in [#​10567](https://github.com/vitest-dev/vitest/issues/10567) [(b298d)](https://github.com/vitest-dev/vitest/commit/b298df609) - **vm**: - Fix external module resolve error with deps optimizer query for encoded URI  -  by [@​SveLil](https://github.com/SveLil) in [#​10658](https://github.com/vitest-dev/vitest/issues/10658) [(90c4e)](https://github.com/vitest-dev/vitest/commit/90c4ed4cd) - Stop retaining every finished test file in vm pool workers  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​10854](https://github.com/vitest-dev/vitest/issues/10854) [(38503)](https://github.com/vitest-dev/vitest/commit/3850323e2) - Fall back to compiling from source when a module's code cache is rejected  -  by [@​MarshallOfSound](https://github.com/MarshallOfSound) in [#​11031](https://github.com/vitest-dev/vitest/issues/11031) [(c3ba1)](https://github.com/vitest-dev/vitest/commit/c3ba16b35) - Link module graphs one at a time  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​11096](https://github.com/vitest-dev/vitest/issues/11096) [(3f2dd)](https://github.com/vitest-dev/vitest/commit/3f2ddc21a) - **webdriverio**: - Allow gpu in headless chrome  -  by [@​rotempasharel1](https://github.com/rotempasharel1) in [#​10376](https://github.com/vitest-dev/vitest/issues/10376) [(f310a)](https://github.com/vitest-dev/vitest/commit/f310abe4e) - **worker**: - Bind stdio's early in case overriden  -  by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​11020](https://github.com/vitest-dev/vitest/issues/11020) [(67ef7)](https://github.com/vitest-dev/vitest/commit/67ef7a19b) #####    🏎 Performance - Stringify diff objects only once  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​10276](https://github.com/vitest-dev/vitest/issues/10276) [(d006a)](https://github.com/vitest-dev/vitest/commit/d006a6869) - Improve performance in hot paths  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​10446](https://github.com/vitest-dev/vitest/issues/10446) [(03faf)](https://github.com/vitest-dev/vitest/commit/03faf6db6) - Serve warm modules to workers in one round-trip, enable the node compile cache  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​10708](https://github.com/vitest-dev/vitest/issues/10708) [(b144a)](https://github.com/vitest-dev/vitest/commit/b144ab56e) - Make the Node compile cache opt-in, persist worker caches on teardown  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​10742](https://github.com/vitest-dev/vitest/issues/10742) [(941bc)](https://github.com/vitest-dev/vitest/commit/941bc8361) - Reuse compiled code across vm pool contexts and prewarm the module graph  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​10744](https://github.com/vitest-dev/vitest/issues/10744) [(d8b04)](https://github.com/vitest-dev/vitest/commit/d8b040c63) - Bundle vitest's own dependencies  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​10685](https://github.com/vitest-dev/vitest/issues/10685) [(c0508)](https://github.com/vitest-dev/vitest/commit/c050842b6) - Lowers peak memory usage when using `--changed` on a large graph  -  by [@​jszumski](https://github.com/jszumski) in [#​10866](https://github.com/vitest-dev/vitest/issues/10866) [(9f23f)](https://github.com/vitest-dev/vitest/commit/9f23f8ec3) - Initialize trace view in the orchestrator once per worker  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​10984](https://github.com/vitest-dev/vitest/issues/10984) [(fad26)](https://github.com/vitest-dev/vitest/commit/fad263fe8) - **browser**: - Reduce matching screenshot overhead  -  by [@​kasperpeulen](https://github.com/kasperpeulen) in [#​10278](https://github.com/vitest-dev/vitest/issues/10278) [(511c0)](https://github.com/vitest-dev/vitest/commit/511c09269) - Open browser sessions adaptively instead of maxWorkers upfront  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​10726](https://github.com/vitest-dev/vitest/issues/10726) [(6db8d)](https://github.com/vitest-dev/vitest/commit/6db8de2e2) - Cut per-file round trips  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​10730](https://github.com/vitest-dev/vitest/issues/10730) [(3feef)](https://github.com/vitest-dev/vitest/commit/3feefd9e2) - Stop serving framework sourcemaps in headless runs  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​10728](https://github.com/vitest-dev/vitest/issues/10728) [(6aefb)](https://github.com/vitest-dev/vitest/commit/6aefb3d91) - Prewarm the browser while the Vite server starts  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​10727](https://github.com/vitest-dev/vitest/issues/10727) [(c1767)](https://github.com/vitest-dev/vitest/commit/c17677a83) - Pre-bundle the vitest runtime in optimizeDeps  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​10713](https://github.com/vitest-dev/vitest/issues/10713) [(de631)](https://github.com/vitest-dev/vitest/commit/de63174f5) - Serve framework assets as immutable  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​10729](https://github.com/vitest-dev/vitest/issues/10729) [(7af87)](https://github.com/vitest-dev/vitest/commit/7af8755ae) - **cache**: - Hash the environment-invariant part of the fs module cache key once  -  by [@​MarshallOfSound](https://github.com/MarshallOfSound) in [#​11029](https://github.com/vitest-dev/vitest/issues/11029) [(1d365)](https://github.com/vitest-dev/vitest/commit/1d365db15) - **coverage**: - Speed up v8 report generation (bounded-memory merge + precompiled globs)  -  by [@​toxik](https://github.com/toxik), **Claude Opus 5 (1M context)** and [@​AriPerkkio](https://github.com/AriPerkkio) in [#​10506](https://github.com/vitest-dev/vitest/issues/10506) [(b05e5)](https://github.com/vitest-dev/vitest/commit/b05e5d634) - Reduce RPC data and unnecessary serializations  -  by [@​AriPerkkio](https://github.com/AriPerkkio) in [#​10781](https://github.com/vitest-dev/vitest/issues/10781) [(7e7e3)](https://github.com/vitest-dev/vitest/commit/7e7e35cb4) - **expect**: - Avoid redefining matcher state  -  by [@​scttcper](https://github.com/scttcper) and **OpenAI Codex** in [#​11048](https://github.com/vitest-dev/vitest/issues/11048) [(58e71)](https://github.com/vitest-dev/vitest/commit/58e71306b) - Lazily format spy matcher failures  -  by [@​scttcper](https://github.com/scttcper) and **OpenAI Codex** in [#​11090](https://github.com/vitest-dev/vitest/issues/11090) [(e08c4)](https://github.com/vitest-dev/vitest/commit/e08c45c39) - **spy**: - Avoid scanning cleared mocks  -  by [@​scttcper](https://github.com/scttcper) and **OpenAI Codex** in [#​11092](https://github.com/vitest-dev/vitest/issues/11092) [(2451e)](https://github.com/vitest-dev/vitest/commit/2451e34c4) - **vm**: - Don't prewarm modules the worker never requests  -  by [@​MarshallOfSound](https://github.com/MarshallOfSound) and [@​sheremet-va](https://github.com/sheremet-va) in [#​11033](https://github.com/vitest-dev/vitest/issues/11033) [(1e9f8)](https://github.com/vitest-dev/vitest/commit/1e9f80ec1) - Let environments opt out of the module graph prewarm  -  by [@​sheremet-va](https://github.com/sheremet-va) in [#​11078](https://github.com/vitest-dev/vitest/issues/11078) [(a6d5e)](https://github.com/vitest-dev/vitest/commit/a6d5ea2d8) #####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v4.1.5...v5.0.0)
--- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate CLI](https://github.com/renovatebot/renovate). --------- Co-authored-by: Joakim Olsson Reviewed-on: https://gitea.unbound.se/unboundsoftware/schemas-app/pulls/345 Co-authored-by: Renovate Bot --- .../__tests__/OrganizationSwitcher.spec.ts | 23 +- package-lock.json | 341 ++++++------------ package.json | 4 +- test/setup.ts | 10 +- 4 files changed, 140 insertions(+), 238 deletions(-) diff --git a/app/components/__tests__/OrganizationSwitcher.spec.ts b/app/components/__tests__/OrganizationSwitcher.spec.ts index 752ba5c..90ce996 100644 --- a/app/components/__tests__/OrganizationSwitcher.spec.ts +++ b/app/components/__tests__/OrganizationSwitcher.spec.ts @@ -14,20 +14,23 @@ const mockOrganizations = [ // For now, the component is indirectly tested through useOrganizationSelector tests // and manual testing shows it works correctly +// vi.mock is hoisted above the imports and the factory runs once, on the first +// import of the mocked module -- it was never re-applied per test despite sitting +// in beforeEach. vitest 5 rejects the nested call outright rather than silently +// hoisting it, so declare it where it actually executes. +vi.mock('~/composables/useOrganizationSelector', () => ({ + useOrganizationSelector: () => ({ + organizations: ref([mockOrganizations[0]]), + selectedOrganization: ref(mockOrganizations[0]), + selectedOrgId: ref('1'), + selectOrganization: mockSelectOrganization, + }), +})) + describe('OrganizationSwitcher - Single Organization', () => { beforeEach(() => { vi.resetModules() mockSelectOrganization.mockClear() - - // Mock with single organization - vi.mock('~/composables/useOrganizationSelector', () => ({ - useOrganizationSelector: () => ({ - organizations: ref([mockOrganizations[0]]), - selectedOrganization: ref(mockOrganizations[0]), - selectedOrgId: ref('1'), - selectOrganization: mockSelectOrganization, - }), - })) }) it('should show a chip for single organization', async () => { diff --git a/package-lock.json b/package-lock.json index 06183a4..c942302 100644 --- a/package-lock.json +++ b/package-lock.json @@ -32,7 +32,7 @@ "@nuxtjs/stylelint-module": "5.2.1", "@stylistic/eslint-plugin": "5.10.0", "@vitejs/plugin-vue": "6.0.8", - "@vitest/coverage-v8": "4.1.11", + "@vitest/coverage-v8": "5.0.0", "@vue/test-utils": "2.5.0", "eslint": "10.10.0", "eslint-plugin-simple-import-sort": "14.0.0", @@ -44,7 +44,7 @@ "stylelint-config-standard": "40.0.0", "typescript": "6.0.3", "typescript-eslint": "8.69.0", - "vitest": "4.1.11", + "vitest": "5.0.0", "vue-eslint-parser": "10.4.1" } }, @@ -8010,29 +8010,27 @@ } }, "node_modules/@vitest/coverage-v8": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-4.1.11.tgz", - "integrity": "sha512-8MVGEFnJIcdGjcbfKmeq8z0pZHH0JlVtoVZH9Q/qwUp6wyFnEJUBMrw9DCaj+ra3vShGmhavjalMIhPNxZAUcw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-5.0.0.tgz", + "integrity": "sha512-toMg6PZGCIa/lQNCDoASrfb1ly4hsUKXFtFYC9kD4t78o5Y6LyNJU7AENt8eHPr3quYdxaxK7hj2mnbFfUk9NA==", "dev": true, "license": "MIT", "dependencies": { "@bcoe/v8-coverage": "^1.0.2", - "@vitest/utils": "4.1.11", - "ast-v8-to-istanbul": "^1.0.0", - "istanbul-lib-coverage": "^3.2.2", - "istanbul-lib-report": "^3.0.1", - "istanbul-reports": "^3.2.0", - "magicast": "^0.5.2", - "obug": "^2.1.1", - "std-env": "^4.0.0-rc.1", - "tinyrainbow": "^3.1.0" + "@vitest/istanbul-lib-coverage": "^1.0.0", + "@vitest/istanbul-lib-report": "^1.0.0", + "ast-v8-to-istanbul": "^1.0.5", + "magicast": "^0.5.4", + "obug": "^2.1.4", + "std-env": "^4.2.0", + "tinyrainbow": "^3.1.1" }, "funding": { "url": "https://opencollective.com/vitest" }, "peerDependencies": { - "@vitest/browser": "4.1.11", - "vitest": "4.1.11" + "@vitest/browser": "5.0.0", + "vitest": "5.0.0" }, "peerDependenciesMeta": { "@vitest/browser": { @@ -8040,34 +8038,40 @@ } } }, - "node_modules/@vitest/expect": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.1.11.tgz", - "integrity": "sha512-VX2x5vNJXET47KAFzwERI+KRMtTTCSWTfSMKsW7JsUsXV4psq++e3DvZpuTDOpHcxytiDs6p2nhVb2tVDiiUYw==", + "node_modules/@vitest/istanbul-lib-coverage": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@vitest/istanbul-lib-coverage/-/istanbul-lib-coverage-1.0.1.tgz", + "integrity": "sha512-k3DJZ8LhMBK9NS4SclF1ASD3OgXEWDorbIcPTRDK0/Zae6fRvu+fJRxtFdLfHsa9Y24beCdPnoNZ4LviTNstfA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=22" + } + }, + "node_modules/@vitest/istanbul-lib-report": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@vitest/istanbul-lib-report/-/istanbul-lib-report-1.0.1.tgz", + "integrity": "sha512-1EOLRfsTMnyAr3+kEAsP4o9dhaDlGPpD7H5iLBBeq//YpNB1VIahkPhB+eRp9N2Dkfw8oySROjE3yf9XDeaIkQ==", "dev": true, "license": "MIT", "dependencies": { - "@standard-schema/spec": "^1.1.0", - "@types/chai": "^5.2.2", - "@vitest/spy": "4.1.11", - "@vitest/utils": "4.1.11", - "chai": "^6.2.2", - "tinyrainbow": "^3.1.0" + "@vitest/istanbul-lib-coverage": "1.0.1" }, - "funding": { - "url": "https://opencollective.com/vitest" + "engines": { + "node": ">=22" } }, "node_modules/@vitest/mocker": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.1.11.tgz", - "integrity": "sha512-2XJVD55d1o5AZous5CCGKS74g/riOj9odEt2bQpCVZeblHyHdnMeFl4jl0XjU21stf4mbjUkew2eXQZt65g5CQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-5.0.0.tgz", + "integrity": "sha512-66PGTMIiVJP3t4a5yxU9qPtf7MdTBs8jmToMvy+HVflB3Yy13WJZTtPePdvU+wjRV02SKK5doLbSA6o9pwOmiA==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/spy": "4.1.11", + "@jridgewell/trace-mapping": "0.3.31", + "@vitest/spy": "5.0.0", "estree-walker": "^3.0.3", - "magic-string": "^0.30.21" + "magic-string": "^1.2.3" }, "funding": { "url": "https://opencollective.com/vitest" @@ -8085,6 +8089,16 @@ } } }, + "node_modules/@vitest/mocker/node_modules/@vitest/spy": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-5.0.0.tgz", + "integrity": "sha512-uy+luWBAPw9XfthoHi5AkfHUnuPYEESjl0p/r+meoBnU8bxg5GDQ3Ey8MjcJ6sqahkL4PFyrvfMJJBw7LbU06g==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://opencollective.com/vitest" + } + }, "node_modules/@vitest/mocker/node_modules/estree-walker": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", @@ -8095,72 +8109,14 @@ "@types/estree": "^1.0.0" } }, - "node_modules/@vitest/pretty-format": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.1.11.tgz", - "integrity": "sha512-yiZzPbGTS9Sr/JpFl8zHrcIkAofNbFV6k21vIgQN/cY/oxZeXhJv5sc/MBJ5jFKWmWs+oJHw0UXLZjmf931+Vw==", + "node_modules/@vitest/mocker/node_modules/magic-string": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-1.2.3.tgz", + "integrity": "sha512-Bpb0W2TbLKOZ7vJnOUnVRGq3WL2p+ISV29M6hYPL1AFCpyKZpdr5ytiXoTSSxRVhg8YW7f65+6gbG8WG6PCa/g==", "dev": true, "license": "MIT", "dependencies": { - "tinyrainbow": "^3.1.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/runner": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.1.11.tgz", - "integrity": "sha512-LztvUgdwMNJMIkj3hQnnxiC2Xy1zNxq928W/xhjCLaNCzqTZOudjwbQf6v9IntZGPw132i2Lq2rgTRZHD3JHNw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/utils": "4.1.11", - "pathe": "^2.0.3" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/snapshot": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.1.11.tgz", - "integrity": "sha512-pN7ikn1ON7h8ee4gIAp4AzyK+zBtJPzVbqOgu5LCEh4VaJVbPQcgYQYJIMGQPXVeJJq1fnfazis7a5pFNPahog==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/pretty-format": "4.1.11", - "@vitest/utils": "4.1.11", - "magic-string": "^0.30.21", - "pathe": "^2.0.3" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/spy": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.1.11.tgz", - "integrity": "sha512-apNa/prQy2qCeywhnixOHPRCgGNhvg7T4Dapfl1GahLp/R+uhBm5cPyFoNVyqsNd2h1nJxL6BqqdIjiABL60YA==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/utils": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.1.11.tgz", - "integrity": "sha512-zTCVGpyFsGWBhllOyKlTw/vnr6D9qxsfSDyfbyZmTyjHw5N/VuvzHpHoQjm2ZJzn4RJgx5w4r7V0er69CmLgPQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/pretty-format": "4.1.11", - "convert-source-map": "^2.0.0", - "tinyrainbow": "^3.1.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" + "@jridgewell/sourcemap-codec": "^1.5.5" } }, "node_modules/@vue-macros/common": { @@ -9081,9 +9037,9 @@ } }, "node_modules/ast-v8-to-istanbul": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/ast-v8-to-istanbul/-/ast-v8-to-istanbul-1.0.0.tgz", - "integrity": "sha512-1fSfIwuDICFA4LKkCzRPO7F0hzFf0B7+Xqrl27ynQaa+Rh0e1Es0v6kWHPott3lU10AyAr7oKHa65OppjLn3Rg==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/ast-v8-to-istanbul/-/ast-v8-to-istanbul-1.0.5.tgz", + "integrity": "sha512-UPAgKJFSEGMWSDr3LX4tqnAb4f7KGT8O40Tyx8wbYmmZ/yn58lNCm8h3svs3eXgiGd5AXxz8NDOvXWvicq+rJA==", "dev": true, "license": "MIT", "dependencies": { @@ -12032,9 +11988,9 @@ } }, "node_modules/expect-type": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.3.0.tgz", - "integrity": "sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.4.0.tgz", + "integrity": "sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -12964,13 +12920,6 @@ ], "license": "MIT" }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true, - "license": "MIT" - }, "node_modules/html-tags": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-5.1.0.tgz", @@ -14122,58 +14071,6 @@ "ws": "*" } }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", - "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", - "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^4.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-report/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-reports": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz", - "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/jackspeak": { "version": "3.4.3", "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", @@ -15386,22 +15283,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/make-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^7.5.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/map-cache": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", @@ -16946,14 +16827,17 @@ "license": "MIT" }, "node_modules/obug": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/obug/-/obug-2.1.1.tgz", - "integrity": "sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/obug/-/obug-2.1.4.tgz", + "integrity": "sha512-4a+OsYv9UktOJKE+l1A4OufDgdRF9PifWj+tJnHURo/P+WOxpG4GzUFL9qCalmWauao6ogiG+QvnCovwPoyAWA==", "funding": [ "https://github.com/sponsors/sxzz", "https://opencollective.com/debug" ], - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">=12.20.0" + } }, "node_modules/ofetch": { "version": "1.5.1", @@ -17407,9 +17291,9 @@ "license": "ISC" }, "node_modules/picomatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz", - "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==", + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.7.tgz", + "integrity": "sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==", "license": "MIT", "engines": { "node": ">=12" @@ -20001,11 +19885,14 @@ "license": "MIT" }, "node_modules/tinybench": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", - "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-6.1.4.tgz", + "integrity": "sha512-9APumHG7r4yOk4X4WlkmE71aZcv1gvin1czO3OQ1U9iJcFA5Ja/ygyb0vPOVHTthFozUYs8CLoLUlM8grb2lTQ==", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">=20.0.0" + } }, "node_modules/tinyclip": { "version": "0.1.15", @@ -20017,9 +19904,9 @@ } }, "node_modules/tinyexec": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.2.4.tgz", - "integrity": "sha512-SHf/r48b7vOrjve9PxJo3MN5v5yuyjHvdUcrQffT3WXMUfnGmHDVbC4k3sHJaJTgZCwpUplIaAo5ANtMyp3YHg==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.3.0.tgz", + "integrity": "sha512-QKAl9m8gWWGHV8jZcPeym6j+XULi6tOf1mT83WYJ4Lk2ytW/uwAWkrP0uFsdoYMdueVJ0qs26wZ+23xeB4ibNQ==", "license": "MIT", "engines": { "node": ">=18" @@ -20042,9 +19929,9 @@ } }, "node_modules/tinyrainbow": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.1.0.tgz", - "integrity": "sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.1.1.tgz", + "integrity": "sha512-yau8yJdTt989Mm0Bd/236QnzEiPf2xLLTqUZRUJOo/3CB078LSwzei343DgtJVmfJKJE3TMINY1u42SQsP6mXw==", "dev": true, "license": "MIT", "engines": { @@ -20972,6 +20859,7 @@ "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.3.tgz", "integrity": "sha512-/4XH147Ui7OGTjg3HbdWe5arnZQSbfuRzdr9Ec7TQi5I7R+ir0Rlc9GIvD4v0XZurELqA035KVXJXpR61xhiTA==", "license": "MIT", + "peer": true, "dependencies": { "esbuild": "^0.27.0", "fdir": "^6.5.0", @@ -21748,38 +21636,31 @@ } }, "node_modules/vitest": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.1.11.tgz", - "integrity": "sha512-fhACrNXUidIbGSBr5FlbuBkO7VWC1ZyLl0DO4CU2DrQoAPxX84Ysxs+HeGQpii5lZWV1Q4gBZTTu49mF+A6Edw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-5.0.0.tgz", + "integrity": "sha512-gpsMNoRhMjMktVxPtstOH4/PJuPyovVaMDr4oDilXaGH1EcqM2OE96SoHT2VIQ6fTGtTjqmHDrEu2X9RQiXf8Q==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/expect": "4.1.11", - "@vitest/mocker": "4.1.11", - "@vitest/pretty-format": "4.1.11", - "@vitest/runner": "4.1.11", - "@vitest/snapshot": "4.1.11", - "@vitest/spy": "4.1.11", - "@vitest/utils": "4.1.11", - "es-module-lexer": "^2.0.0", - "expect-type": "^1.3.0", - "magic-string": "^0.30.21", - "obug": "^2.1.1", - "pathe": "^2.0.3", - "picomatch": "^4.0.3", - "std-env": "^4.0.0-rc.1", - "tinybench": "^2.9.0", - "tinyexec": "^1.0.2", - "tinyglobby": "^0.2.15", - "tinyrainbow": "^3.1.0", - "vite": "^6.0.0 || ^7.0.0 || ^8.0.0", + "@types/chai": "^5.2.2", + "@vitest/mocker": "5.0.0", + "chai": "^6.2.2", + "es-module-lexer": "^2.3.2", + "expect-type": "^1.4.0", + "magic-string": "^1.2.3", + "obug": "^2.1.4", + "picomatch": "^4.0.7", + "std-env": "^4.2.0", + "tinybench": "6.1.4", + "tinyexec": "1.3.0", + "tinyglobby": "^0.2.17", "why-is-node-running": "^2.3.0" }, "bin": { "vitest": "vitest.mjs" }, "engines": { - "node": "^20.0.0 || ^22.0.0 || >=24.0.0" + "node": "^22.12.0 || ^24.0.0 || >=26.0.0" }, "funding": { "url": "https://opencollective.com/vitest" @@ -21787,16 +21668,16 @@ "peerDependencies": { "@edge-runtime/vm": "*", "@opentelemetry/api": "^1.9.0", - "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0", - "@vitest/browser-playwright": "4.1.11", - "@vitest/browser-preview": "4.1.11", - "@vitest/browser-webdriverio": "4.1.11", - "@vitest/coverage-istanbul": "4.1.11", - "@vitest/coverage-v8": "4.1.11", - "@vitest/ui": "4.1.11", + "@types/node": "^22.0.0 || >=24.0.0", + "@vitest/browser-playwright": "5.0.0", + "@vitest/browser-preview": "5.0.0", + "@vitest/browser-webdriverio": "^5.0.0-beta.5 || >=5.0.0", + "@vitest/coverage-istanbul": "5.0.0", + "@vitest/coverage-v8": "5.0.0", + "@vitest/ui": "5.0.0", "happy-dom": "*", "jsdom": "*", - "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" + "vite": "^6.4.0 || ^7.0.0 || ^8.0.0" }, "peerDependenciesMeta": { "@edge-runtime/vm": { @@ -21844,6 +21725,16 @@ "dev": true, "license": "MIT" }, + "node_modules/vitest/node_modules/magic-string": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-1.2.3.tgz", + "integrity": "sha512-Bpb0W2TbLKOZ7vJnOUnVRGq3WL2p+ISV29M6hYPL1AFCpyKZpdr5ytiXoTSSxRVhg8YW7f65+6gbG8WG6PCa/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, "node_modules/vue": { "version": "3.5.42", "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.42.tgz", diff --git a/package.json b/package.json index 6b73a76..f82c1b8 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,7 @@ "@nuxtjs/stylelint-module": "5.2.1", "@stylistic/eslint-plugin": "5.10.0", "@vitejs/plugin-vue": "6.0.8", - "@vitest/coverage-v8": "4.1.11", + "@vitest/coverage-v8": "5.0.0", "@vue/test-utils": "2.5.0", "eslint": "10.10.0", "eslint-plugin-simple-import-sort": "14.0.0", @@ -58,7 +58,7 @@ "stylelint-config-standard": "40.0.0", "typescript": "6.0.3", "typescript-eslint": "8.69.0", - "vitest": "4.1.11", + "vitest": "5.0.0", "vue-eslint-parser": "10.4.1" }, "overrides": { diff --git a/test/setup.ts b/test/setup.ts index 8da6362..85185ca 100644 --- a/test/setup.ts +++ b/test/setup.ts @@ -31,7 +31,15 @@ class LocalStorageMock { } } -global.localStorage = new LocalStorageMock() as unknown as Storage +// jsdom defines localStorage as a getter-only accessor on the window object, so a +// plain assignment throws ("Cannot set property localStorage ... which has only a +// getter") under vitest 5, which no longer shadows it with a writable global. +// defineProperty replaces the accessor outright and works on both. +Object.defineProperty(globalThis, 'localStorage', { + value: new LocalStorageMock() as unknown as Storage, + writable: true, + configurable: true, +}) // Make Vue composables globally available global.ref = Vue.ref