π vitest-dev/vitest - Release Notes
v3.1.1 (2025-03-31)
### π Bug Fixes
- **reporter**:
- Report tests in correct order - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7752 [(b166e)](https://github.com/vitest-dev/vitest/commit/b166efa2)
- Print test only once in the verbose mode - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7738 [(69ca4)](https://github.com/vitest-dev/vitest/commit/69ca425c)
##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v3.1.0...v3.1.1)
v3.1.0 (2025-03-31)
### π Features
- Introduce `%$` option to add number of the test to its title - by @kemuridama in https://github.com/vitest-dev/vitest/issues/7412 [(df347)](https://github.com/vitest-dev/vitest/commit/df3477076)
- Add `diff.maxDepth` option and set non-`Infinity` value as a default to reduce crash - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7481 [(eacab)](https://github.com/vitest-dev/vitest/commit/eacab25e7)
- Allow array element for `test.each/for` title formatting - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7522 [(ea3d6)](https://github.com/vitest-dev/vitest/commit/ea3d67b03)
- Add "configureVitest" plugin hook - by @sheremet-va and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7349 [(20a5d)](https://github.com/vitest-dev/vitest/commit/20a5d4bfc)
- Support `--configLoader` CLI option - by @Carnageous and @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7574 [(2a852)](https://github.com/vitest-dev/vitest/commit/2a8520a83)
- Added `vitest-browser-lit` to `vitest init browser` and docs - by @EskiMojo14 and @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7705 [(5659a)](https://github.com/vitest-dev/vitest/commit/5659a0e0c)
- Use providers request interception for module mocking - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7576 [(7883a)](https://github.com/vitest-dev/vitest/commit/7883acd63)
- **browser**:
- Introduce `and`, `or` and `filter` locators - by @sheremet-va and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7463 [(63949)](https://github.com/vitest-dev/vitest/commit/63949b1d7)
- **reporter**:
- Always render test time - by @AriPerkkio and @spamshaker in https://github.com/vitest-dev/vitest/issues/7529 [(5eba6)](https://github.com/vitest-dev/vitest/commit/5eba60ae1)
- `--silent=passed-only` to log failed tasks only - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7530 [(f9e1c)](https://github.com/vitest-dev/vitest/commit/f9e1cb494)
- **runner**:
- Add `test.scoped` to override `test.extend` fixtures per-suite - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7233 [(e5851)](https://github.com/vitest-dev/vitest/commit/e5851e4b8)
- **vitest**:
- Allow conditional `context.skip(boolean)` - by @sheremet-va and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7659 [(6adec)](https://github.com/vitest-dev/vitest/commit/6adecb903)
- Support rolldown-vite in NormalizeUrlPlugin - by @sapphi-red and @sheremet-va in https://github.com/vitest-dev/vitest/issues/7739 [(1ef31)](https://github.com/vitest-dev/vitest/commit/1ef31a7bb)
### π Bug Fixes
- Update test stats regularly - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7700 [(b7953)](https://github.com/vitest-dev/vitest/commit/b7953487b)
- Fix vm tests flakiness - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7741 [(2702c)](https://github.com/vitest-dev/vitest/commit/2702cf424)
- Set `diff.expand: false` as default - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7697 [(f3420)](https://github.com/vitest-dev/vitest/commit/f34206536)
- **browser**:
- Correctly calculate timeout in hooks when actions are performed - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7747 [(a5505)](https://github.com/vitest-dev/vitest/commit/a55055180)
- **deps**:
- Update all non-major dependencies - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7600 [(7fc5a)](https://github.com/vitest-dev/vitest/commit/7fc5a2908)
- **reporter**:
- `--hideSkippedTests` should hide suites too - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7695 [(ba9b5)](https://github.com/vitest-dev/vitest/commit/ba9b51ccc)
- Report tests in correct order - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7752 [(b166e)](https://github.com/vitest-dev/vitest/commit/b166efa28)
- Print test only once in the verbose mode - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7738 [(69ca4)](https://github.com/vitest-dev/vitest/commit/69ca425c6)
- **snapshot**:
- Fix indent normalization - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7400 [(82997)](https://github.com/vitest-dev/vitest/commit/8299709d2)
- This change can cause small amount of very old snapshots to be updated, but there will be no functional change to how they work.
### π Performance
- **browser**: Fork jest-dom instead of bundling it - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7605 [(12762)](https://github.com/vitest-dev/vitest/commit/12762ea6c)
##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v3.0.9...v3.1.1)
v3.1.0-beta.2 (2025-03-21)
### π Features
- Add "configureVitest" plugin hook - by @sheremet-va and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7349 [(20a5d)](https://github.com/vitest-dev/vitest/commit/20a5d4bf)
- **browser**: Introduce `and`, `or` and `filter` locators - by @sheremet-va and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7463 [(63949)](https://github.com/vitest-dev/vitest/commit/63949b1d)
- **runner**: Add `test.scoped` to override `test.extend` fixtures per-suite - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7233 [(e5851)](https://github.com/vitest-dev/vitest/commit/e5851e4b)
### π Bug Fixes
- **reporter**: `--hideSkippedTests` should hide suites too - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7695 [(ba9b5)](https://github.com/vitest-dev/vitest/commit/ba9b51cc)
##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v3.1.0-beta.1...v3.1.0-beta.2)
v3.1.0-beta.1 (2025-03-17)
### π Features
- Introduce `%$` option to add number of the test to its title - by @kemuridama in https://github.com/vitest-dev/vitest/issues/7412 [(df347)](https://github.com/vitest-dev/vitest/commit/df347707)
- Add `diff.maxDepth` option and set non-`Infinity` value as a default to reduce crash - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7481 [(eacab)](https://github.com/vitest-dev/vitest/commit/eacab25e)
- Allow array element for `test.each/for` title formatting - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7522 [(ea3d6)](https://github.com/vitest-dev/vitest/commit/ea3d67b0)
- **reporter**:
- Always render test time - by @AriPerkkio and **MichaΕ Grzegorzewski** in https://github.com/vitest-dev/vitest/issues/7529 [(5eba6)](https://github.com/vitest-dev/vitest/commit/5eba60ae)
- `--silent=passed-only` to log failed tasks only - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7530 [(f9e1c)](https://github.com/vitest-dev/vitest/commit/f9e1cb49)
- **vitest**:
- Allow conditional `context.skip(boolean)` - by @sheremet-va and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7659 [(6adec)](https://github.com/vitest-dev/vitest/commit/6adecb90)
##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v3.0.9...v3.1.0-beta.1)
v3.0.9 (2025-03-17)
### π Bug Fixes
- Typings of `ctx.skip()` as `never` - by @sirlancelot in https://github.com/vitest-dev/vitest/issues/7608 [(09f35)](https://github.com/vitest-dev/vitest/commit/09f35301)
- Cleanup vitest in public `resolveConfig` API - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7623 [(db14a)](https://github.com/vitest-dev/vitest/commit/db14ab71)
- Fix `toHaveBeenCalledWith(asymmetricMatcher)` with `undefined` arguments - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7624 [(0fb21)](https://github.com/vitest-dev/vitest/commit/0fb21faa)
- Race condition in RPC filesystem cache. - by @dts in https://github.com/vitest-dev/vitest/issues/7531 [(b7f55)](https://github.com/vitest-dev/vitest/commit/b7f55261)
- Fix `getState().testPath` during collection with no isolation - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7640 [(3fb3f)](https://github.com/vitest-dev/vitest/commit/3fb3fbf8)
- Support custom toString method in %s format - by @pengooseDev in https://github.com/vitest-dev/vitest/issues/7637 [(46d93)](https://github.com/vitest-dev/vitest/commit/46d93a2e)
- **browser**:
- Fail playwright timeouts earlier than a test timeout - by @sheremet-va and @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7565 [(5eb4c)](https://github.com/vitest-dev/vitest/commit/5eb4cd1f)
- Remove @testing-library/dom from dependencies #7555)" - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7628 and https://github.com/vitest-dev/vitest/issues/7555 [(94b27)](https://github.com/vitest-dev/vitest/commit/94b27af5)
- **coverage**:
- Browser mode + `coverage.all` - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7597 [(422ba)](https://github.com/vitest-dev/vitest/commit/422ba66b)
- **runner**:
- Show stacktrace on hook timeout error - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7502 [(268a1)](https://github.com/vitest-dev/vitest/commit/268a19e1)
- **vite-node**:
- Fix source map of inlined node_modules - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7557 [(34aa3)](https://github.com/vitest-dev/vitest/commit/34aa322b)
- Fix missing `buildStart` - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7652 [(29f5a)](https://github.com/vitest-dev/vitest/commit/29f5a848)
- **web-worker**:
- Ensure `removeEventListener` is bound to worker - by @joelgallant in https://github.com/vitest-dev/vitest/issues/7631 [(ff42b)](https://github.com/vitest-dev/vitest/commit/ff42bcb3)
##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v3.0.8...v3.0.9)
v3.0.8 (2025-03-06)
### π Bug Fixes
- Fix fetch cache multiple writes - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7546 [(1a8b4)](https://github.com/vitest-dev/vitest/commit/1a8b4337)
- Use browser.isolate instead of config.isolate - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7560 [(4b5ed)](https://github.com/vitest-dev/vitest/commit/4b5ed902)
- Remove vestigial spy stub, import directly from `@vitest/spy` - by @mrginglymus in https://github.com/vitest-dev/vitest/issues/7575 [(7f7ff)](https://github.com/vitest-dev/vitest/commit/7f7ff11c)
- Correctly split the argv string - by @btea in https://github.com/vitest-dev/vitest/issues/7533 [(4325a)](https://github.com/vitest-dev/vitest/commit/4325ac67)
- **browser**:
- Remove @testing-library/dom from dependencies - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7555 [(5387a)](https://github.com/vitest-dev/vitest/commit/5387a5b3)
- Improve source map handling for bundled files - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7534 [(e2c57)](https://github.com/vitest-dev/vitest/commit/e2c570b6)
- Print related test file and potential test in unhandled errors - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7564 [(fee90)](https://github.com/vitest-dev/vitest/commit/fee90d85)
- **runner**:
- Fix `beforeEach/All` cleanup callback timeout - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7500 [(0c292)](https://github.com/vitest-dev/vitest/commit/0c2924b7)
- Fix and simplify `Task.suite` initialization - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7414 [(ca9ff)](https://github.com/vitest-dev/vitest/commit/ca9ffac5)
- **snapshot**:
- Allow inline snapshot calls on same location with same snapshot - by @jycouet and @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7464 [(d5cb8)](https://github.com/vitest-dev/vitest/commit/d5cb8212)
- **vite-node**:
- Fix `buildStart` on Vite 6 - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7480 [(c0f47)](https://github.com/vitest-dev/vitest/commit/c0f47e03)
##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v3.0.7...v3.0.8)
v3.0.7 (2025-02-24)
### π Bug Fixes
- **browser**: Support webdriverio 9 - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7553 [(b1949)](https://github.com/vitest-dev/vitest/commit/b1949c97)
- **deps**: Update all non-major dependencies - in https://github.com/vitest-dev/vitest/issues/7543 [(365ff)](https://github.com/vitest-dev/vitest/commit/365ffe6b)
- **expect**: Correct generic MatchersObject this type in expect.extend - by @Workingstiff-s in https://github.com/vitest-dev/vitest/issues/7526 [(d5765)](https://github.com/vitest-dev/vitest/commit/d5765f71)
- **mocker**: Include more modules to prefix-only module list - by @btea in https://github.com/vitest-dev/vitest/issues/7524 [(a12ec)](https://github.com/vitest-dev/vitest/commit/a12ec008)
- **spy**: Clear/reset/restore mocks in stack order - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7499 [(f7100)](https://github.com/vitest-dev/vitest/commit/f71004ff)
### π Performance
- **browser**: Do wdio context switching only once per file - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7549 [(aaa58)](https://github.com/vitest-dev/vitest/commit/aaa58556)
##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v3.0.6...v3.0.7)
v3.0.6 (2025-02-18)
### π Bug Fixes
- Fix `getMockedSystemTime` for `useFakeTimer` - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7405 [(03912)](https://github.com/vitest-dev/vitest/commit/03912b43)
- Compat for jest-image-snapshot - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7390 [(9542b)](https://github.com/vitest-dev/vitest/commit/9542b699)
- Ensure project names are readable in dark terminals - by @rgrove in https://github.com/vitest-dev/vitest/issues/7371 [(bb94c)](https://github.com/vitest-dev/vitest/commit/bb94c19f)
- Exclude `queueMicrotask` from default fake timers to not break node fetch - by @hi-ogawa in https://github.com/vitest-dev/vitest/pull/7505 [(167a9)](https://github.com/vitest-dev/vitest/commit/167a98d7)
- Use `tinyglobby` instead of `fast-glob` - by @benmccann in https://github.com/vitest-dev/vitest/issues/7504 [(b62ac)](https://github.com/vitest-dev/vitest/commit/b62ac22)
- **browser**:
- Fix mocking modules out of root - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7415 [(d3acb)](https://github.com/vitest-dev/vitest/commit/d3acbd8b)
- Fix `toHaveClass` typing - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7383 [(7ef23)](https://github.com/vitest-dev/vitest/commit/7ef238c0)
- Relax locator selectors methods - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7422 [(1b8c5)](https://github.com/vitest-dev/vitest/commit/1b8c5c9e)
- Resolve thread count from `maxWorkers` - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7483 [(adbb2)](https://github.com/vitest-dev/vitest/commit/adbb25ab)
- Cleanup timeout on resolve and give more information in the error - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7487 [(5a45a)](https://github.com/vitest-dev/vitest/commit/5a45a7ca)
- **coverage**:
- `vite-node` to pass correct execution wrapper offset - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7417 [(1f2e5)](https://github.com/vitest-dev/vitest/commit/1f2e5552)
- Preserve moduleExecutionInfo in non-isolated runs - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7486 [(f31a0)](https://github.com/vitest-dev/vitest/commit/f31a07bb)
- **deps**:
- Update all non-major dependencies - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7363 [(e348b)](https://github.com/vitest-dev/vitest/commit/e348bd4c)
- Update all non-major dependencies - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7507 [(6cc40)](https://github.com/vitest-dev/vitest/commit/6cc408d6)
- **init**:
- Invalid browser config - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7475 [(8fe64)](https://github.com/vitest-dev/vitest/commit/8fe641b4)
- **reporters**:
- Render tasks in tree when in TTY - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7503 [(027ce)](https://github.com/vitest-dev/vitest/commit/027ce9bb)
- **vite-node**:
- Remove fake first line mapping on Vite 6 - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7124 [(b9973)](https://github.com/vitest-dev/vitest/commit/b997355b)
- **watch**:
- Properly remove cache after removing existing test files - by @soc221b in https://github.com/vitest-dev/vitest/issues/7399 [(01a59)](https://github.com/vitest-dev/vitest/commit/01a59721)
- **workspace**:
- Forward `inspect` related cli options - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7373 [(ed15b)](https://github.com/vitest-dev/vitest/commit/ed15b5b3)
##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v3.0.5...v3.0.6)
v3.0.5 (2025-02-03)
This release includes security patches for:
- [Remote Code Execution when accessing a malicious website while Vitest API server is listening | CVE-2025-24964](https://github.com/vitest-dev/vitest/security/advisories/GHSA-9crc-q9x8-hgqq)
### π Features
- **ui**: Insert message "no tests found" in ui - by @DevJoaoLopes in https://github.com/vitest-dev/vitest/issues/7366 [(92da4)](https://github.com/vitest-dev/vitest/commit/92da490bd)
### π Bug Fixes
- Validate websocket request - by @hi-ogawa and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7317 [(191ef)](https://github.com/vitest-dev/vitest/commit/191ef9e34)
- Don't toggle cli cursor on non-TTY - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7336 [(3c805)](https://github.com/vitest-dev/vitest/commit/3c8050e69)
- **vite-node**: Differentiate file url with hash and query - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7365 [(926ca)](https://github.com/vitest-dev/vitest/commit/926ca9546)
##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v3.0.4...v3.0.5)
v2.1.9 (2025-02-03)
This release includes security patches for:
- [Browser mode serves arbitrary files | CVE-2025-24963](https://github.com/vitest-dev/vitest/security/advisories/GHSA-8gvc-j273-4wm5)
- [Remote Code Execution when accessing a malicious website while Vitest API server is listening | CVE-2025-24964](https://github.com/vitest-dev/vitest/security/advisories/GHSA-9crc-q9x8-hgqq)
### π Bug Fixes
- backport https://github.com/vitest-dev/vitest/issues/7317 to v2 - by @hi-ogawa in https://github.com/vitest-dev/vitest/pull/7318
- (backport #7340 to v2) restrict served files from `/__screenshot-error` - by @hi-ogawa in https://github.com/vitest-dev/vitest/pull/7343
##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v2.1.8...v2.1.9)
v1.6.1 (2025-02-03)
This release includes security patches for:
- [Remote Code Execution when accessing a malicious website while Vitest API server is listening | CVE-2025-24964](https://github.com/vitest-dev/vitest/security/advisories/GHSA-9crc-q9x8-hgqq)
### π Bug Fixes
- backport https://github.com/vitest-dev/vitest/issues/7317 to v1 - by @hi-ogawa in https://github.com/vitest-dev/vitest/pull/7319
##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v1.6.0...v1.6.1)
v3.0.4 (2025-01-23)
This release includes security patches for:
- [Browser mode serves arbitrary files | CVE-2025-24963](https://github.com/vitest-dev/vitest/security/advisories/GHSA-8gvc-j273-4wm5)
### π Bug Fixes
- Filter projects eagerly during config resolution - by @sheremet-va and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7313 [(dff44)](https://github.com/vitest-dev/vitest/commit/dff4406d)
- Apply `development|production` condition on Vites 6 by @hi-ogawa and @sheremet-va (#7301) [(ef146)](https://github.com/vitest-dev/vitest/commit/ef1464fc7b101709bfbf7b040e5bad62998c2ff9)
- **browser**: Restrict served files from `/__screenshot-error` - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7340 [(ed9ae)](https://github.com/vitest-dev/vitest/commit/ed9aeba2)
- **deps**: Update all non-major dependencies - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7297 [(38ea8)](https://github.com/vitest-dev/vitest/commit/38ea8eae)
- **runner**: Timeout long sync hook - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7289 [(c60ee)](https://github.com/vitest-dev/vitest/commit/c60ee27c)
- **typechecking**: Support typechecking parsing with Vite 6 - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7335 [(bff70)](https://github.com/vitest-dev/vitest/commit/bff70be9)
- **types**: Fix public types - by @mrginglymus and @sheremet-va in https://github.com/vitest-dev/vitest/issues/7328 [(ce6af)](https://github.com/vitest-dev/vitest/commit/ce6af70c)
##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v3.0.3...v3.0.4)
v3.0.3 (2025-01-21)
### π Bug Fixes
- **browser**:
- Don't throw a validation error if v8 coverage is used with filtered instances - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7306 [(fa463)](https://github.com/vitest-dev/vitest/commit/fa4634b2)
- Don't fail when running --browser.headless if the browser projest is part of the workspace - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7311 [(e43a8)](https://github.com/vitest-dev/vitest/commit/e43a8f56)
### π Performance
- **reporters**: Update summary only when needed - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7291 [(7f36b)](https://github.com/vitest-dev/vitest/commit/7f36b6f9)
##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v3.0.2...v3.0.3)
v3.0.2 (2025-01-17)
### π Bug Fixes
- Don't await an empty timeout after every test - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7281 [(ef1aa)](https://github.com/vitest-dev/vitest/commit/ef1aa893)
- **expect**: Fix `expect().resolves/rejects` chain typings - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7273 [(fa415)](https://github.com/vitest-dev/vitest/commit/fa415059)
##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v3.0.1...v3.0.2)
v3.0.1 (2025-01-16)
### π Bug Fixes
- Revert "fix: re-apply default conditions if using vite 6 or later (https://github.com/vitest-dev/vitest/issues/7071)" - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7071 and https://github.com/vitest-dev/vitest/issues/7271 [(755ec)](https://github.com/vitest-dev/vitest/commit/755ecdfa)
- **deps**: Update all non-major dependencies - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7147 [(537fa)](https://github.com/vitest-dev/vitest/commit/537fa5ed)
##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v3.0.0...v3.0.1)
v3.0.0 (2025-01-16)
Vitest 3 is here! There are a few breaking changes, but we expect the migration to be smooth. This release page lists all changes made to the project during the beta. For the migration guide, please refer to the [documentation](https://vitest.dev/guide/migration.html#migrating-to-vitest-2-0).
### π¨ Breaking Changes
- `spy.mockReset` changes - by @Lordfirespeed in https://github.com/vitest-dev/vitest/issues/6426 [(db7a8)](https://github.com/vitest-dev/vitest/commit/db7a8888)
- Pass down context to test hooks - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7034 [(82c2e)](https://github.com/vitest-dev/vitest/commit/82c2e244)
- Support Vite 6 - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7026 [(7abe8)](https://github.com/vitest-dev/vitest/commit/7abe854c)
- **coverage**: Always exclude test files - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7254 [(b5268)](https://github.com/vitest-dev/vitest/commit/b5268965)
- **deps**: Update fake-timers to v14.0.0 - by @xxzefgh and @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7097 [(c98b4)](https://github.com/vitest-dev/vitest/commit/c98b4b1c)
- **expect**: Check more properties for error equality - by @hi-ogawa and @sheremet-va in https://github.com/vitest-dev/vitest/issues/5876 [(10023)](https://github.com/vitest-dev/vitest/commit/100230e9)
- **runner**: Support `describe(..., { shuffle: boolean })` and inherit from parent suite - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6670 [(aa1da)](https://github.com/vitest-dev/vitest/commit/aa1dac3d)
- **snapshot**: Reset snapshot state for `retry` and `repeats` - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6817 [(e8ce9)](https://github.com/vitest-dev/vitest/commit/e8ce94cf)
- **spy**: SpyOn reuses mock if method is already spyed on - by @sheremet-va and @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6464 [(b3e43)](https://github.com/vitest-dev/vitest/commit/b3e43d04)
- **vitest**: Don't expose default toFake config - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6288 [(e3144)](https://github.com/vitest-dev/vitest/commit/e3144fd8)
### π Features
- Support inline `diff` options and support `printBasicPrototype` - by @hi-ogawa, @sheremet-va and **MichaΕ Grzegorzewski** in https://github.com/vitest-dev/vitest/issues/6740 [(39186)](https://github.com/vitest-dev/vitest/commit/391860f7)
- Allow a custom note when calling `ctx.skip()` dynamically - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6805 [(697c3)](https://github.com/vitest-dev/vitest/commit/697c35c5)
- Allow inline workspace configuration - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6923 [(562e1)](https://github.com/vitest-dev/vitest/commit/562e1b14)
- Provide the current project to the global setup - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6942 [(a5bbc)](https://github.com/vitest-dev/vitest/commit/a5bbc0a9)
- Print project name as a label - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6925 [(a3bef)](https://github.com/vitest-dev/vitest/commit/a3bef598)
- Print a deprecation warning if suite or test uses object as the third argument - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7031 [(407f1)](https://github.com/vitest-dev/vitest/commit/407f10e4)
- Expose versions from `vitest/node` entry point and statically on Vitest - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7029 [(be8d4)](https://github.com/vitest-dev/vitest/commit/be8d479b)
- `diff.printBasicPrototype: false` by default - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7043 [(2b5c5)](https://github.com/vitest-dev/vitest/commit/2b5c5201)
- Prepare the Vitest API to be stable - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6962 [(9a1b5)](https://github.com/vitest-dev/vitest/commit/9a1b5012)
- Support Vite v6 in mocker package - by @cexbrayat in https://github.com/vitest-dev/vitest/issues/7058 [(96f47)](https://github.com/vitest-dev/vitest/commit/96f47d37)
- Allow multi-browser configuration - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6975 [(78b62)](https://github.com/vitest-dev/vitest/commit/78b62ffe)
- Add resolved project names to the reporter API - by @userquin in https://github.com/vitest-dev/vitest/issues/7213 [(91758)](https://github.com/vitest-dev/vitest/commit/91758360)
- Introduce the new reporter API - by @sheremet-va and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7069 [(76662)](https://github.com/vitest-dev/vitest/commit/766624ab)
- Add `describe.for` - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7253 [(0ad28)](https://github.com/vitest-dev/vitest/commit/0ad2860b)
- **api**:
- Add onBrowserInit event - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7255 [(80ce0)](https://github.com/vitest-dev/vitest/commit/80ce0e1c)
- **browser**:
- Support `actionTimeout` as playwright provider options - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6984 [(e2c29)](https://github.com/vitest-dev/vitest/commit/e2c29eaf)
- Support clipboard api `userEvent.copy, cut, paste` - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6769 [(843a6)](https://github.com/vitest-dev/vitest/commit/843a621e)
- Implement locator.nth() - by @xeger and @sheremet-va in https://github.com/vitest-dev/vitest/issues/7137 [(38458)](https://github.com/vitest-dev/vitest/commit/38458ea6)
- **cli**:
- Support excluding projects with `--project=!pattern` - by @haines in https://github.com/vitest-dev/vitest/issues/6924 [(ebfe9)](https://github.com/vitest-dev/vitest/commit/ebfe942c)
- Support specifying a line number when filtering tests - by @mzhubail and @sheremet-va in https://github.com/vitest-dev/vitest/issues/6411 [(4d94b)](https://github.com/vitest-dev/vitest/commit/4d94b956)
- Support location filters for suites - by @mzhubail in https://github.com/vitest-dev/vitest/issues/7048 [(751e2)](https://github.com/vitest-dev/vitest/commit/751e2dce)
- **coverage**:
- `thresholds` to support maximum uncovered items - by @jonahkagan in https://github.com/vitest-dev/vitest/issues/7061 [(bde98)](https://github.com/vitest-dev/vitest/commit/bde98b6d)
- **expect**:
- Add `toHaveBeenCalledExactlyOnceWith` expect matcher - by @jacoberdman2147 and @sheremet-va in https://github.com/vitest-dev/vitest/issues/6894 [(ff662)](https://github.com/vitest-dev/vitest/commit/ff66206a)
- Add `toHaveBeenCalledAfter` and `toHaveBeenCalledBefore` utility - by @Barbapapazes and @sheremet-va in https://github.com/vitest-dev/vitest/issues/6056 [(85e6f)](https://github.com/vitest-dev/vitest/commit/85e6f99f)
- Add `toSatisfy` asymmetric matcher - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7022 [(f691a)](https://github.com/vitest-dev/vitest/commit/f691ad76)
- Add `toBeOneOf` matcher - by @zirkelc and @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6974 [(3d742)](https://github.com/vitest-dev/vitest/commit/3d742b2b)
- **reporter**:
- Add support for function type to classname option in the junit reporter - by @jpleclerc, **Jean-Philippe Leclerc** and @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6839 [(dc238)](https://github.com/vitest-dev/vitest/commit/dc238e92)
- **reporters**:
- `summary` option for `verbose` and `default` reporters - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6893 [(511b7)](https://github.com/vitest-dev/vitest/commit/511b73c7)
- **runner**:
- Test context can inject values from the config's `provide` - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6813 [(85c64)](https://github.com/vitest-dev/vitest/commit/85c64e35)
- Add "queued" state - by @sheremet-va and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6931 [(5f8d2)](https://github.com/vitest-dev/vitest/commit/5f8d2091)
- **snapshot**:
- Provide `config` to `resolveSnapshotPath` - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6800 [(746d8)](https://github.com/vitest-dev/vitest/commit/746d8986)
- **ui**:
- Allow run individual tests/suites from the UI - by @userquin in https://github.com/vitest-dev/vitest/issues/6641 [(d9cc8)](https://github.com/vitest-dev/vitest/commit/d9cc81dd)
- Make clicking on a test in the UI open the report section and scroll to the test failure if applicable - by @jacoberdman2147 in https://github.com/vitest-dev/vitest/issues/6900 [(1bf27)](https://github.com/vitest-dev/vitest/commit/1bf27f0d)
- Allow hide/show node_modules in module graph tab - by @userquin in https://github.com/vitest-dev/vitest/issues/7217 [(50cf6)](https://github.com/vitest-dev/vitest/commit/50cf61b8)
- **vitest**:
- Include `coverageMap` in json report - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6606 [(9c8f7)](https://github.com/vitest-dev/vitest/commit/9c8f7e3e)
- Add `onTestsRerun` method to global setup context - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6803 [(e26e0)](https://github.com/vitest-dev/vitest/commit/e26e066c)
### π Bug Fixes
- Misc fix for vite 6 ecosystem ci - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6867 [(80f8b)](https://github.com/vitest-dev/vitest/commit/80f8bbf4)
- Respect `cacheDir` when optimizer is enabled - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6910 [(0b08b)](https://github.com/vitest-dev/vitest/commit/0b08bc11)
- Reset runningPromise after `finally` in case there is an error to avoid it getting stuck - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6951 [(02194)](https://github.com/vitest-dev/vitest/commit/021944cd)
- Revert support for Vite 6 - by @sheremet-va [(fbe5c)](https://github.com/vitest-dev/vitest/commit/fbe5c39d)
- Support Node 21 - by @sheremet-va [(92f7a)](https://github.com/vitest-dev/vitest/commit/92f7a2ad)
- Don't use `Custom` type internally - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7032 [(7957f)](https://github.com/vitest-dev/vitest/commit/7957f912)
- Persist cli filters as watch mode file filter - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6955 [(cc703)](https://github.com/vitest-dev/vitest/commit/cc703362)
- Don't use dim color for succeeded tests - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7059 [(8a6f5)](https://github.com/vitest-dev/vitest/commit/8a6f5f16)
- Fix missing chai types - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7149 [(6a09c)](https://github.com/vitest-dev/vitest/commit/6a09cc3b)
- `cancelCurrentRun` awaits `runningPromise` - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7168 [(1dbf5)](https://github.com/vitest-dev/vitest/commit/1dbf5140)
- Add Locator typings for nth, first and last. - by @xeger in https://github.com/vitest-dev/vitest/issues/7176 [(d262e)](https://github.com/vitest-dev/vitest/commit/d262e059)
- Batch console logs by microtask - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7183 [(53d1d)](https://github.com/vitest-dev/vitest/commit/53d1d5f5)
- Allow `getMockImplementation` to return "once" implementation - by @chaptergy in https://github.com/vitest-dev/vitest/issues/7033 [(39125)](https://github.com/vitest-dev/vitest/commit/3912554b)
- `capturePrintError` logger duplicate event handlers - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7197 [(e89c3)](https://github.com/vitest-dev/vitest/commit/e89c3693)
- Allow slots in vitest-browser-vue - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7120 [(2319f)](https://github.com/vitest-dev/vitest/commit/2319f849)
- Reset root workspace project on restart - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7238 [(6e518)](https://github.com/vitest-dev/vitest/commit/6e51843a)
- Cleanup `vitest/reporters` entrypoint - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7241 [(aec0b)](https://github.com/vitest-dev/vitest/commit/aec0b530)
- Colors on `forks` pool - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7090 [(8cab9)](https://github.com/vitest-dev/vitest/commit/8cab9601)
- Export `VitestRunner` type from `vitest/runners` - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7240 [(9b218)](https://github.com/vitest-dev/vitest/commit/9b218854)
- Return test fn result to runner - by @wmertens in https://github.com/vitest-dev/vitest/issues/7239 [(48645)](https://github.com/vitest-dev/vitest/commit/48645bf4)
- Re-apply default conditions if using vite 6 or later - by @thebanjomatic, **thebanjomatic** and @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7071 [(84287)](https://github.com/vitest-dev/vitest/commit/84287fc2)
- Prevent infinite loop on prettyDOM calls - by @tsirlucas in https://github.com/vitest-dev/vitest/issues/7250 [(a3a46)](https://github.com/vitest-dev/vitest/commit/a3a46a53)
- **api**:
- Don't report events during `vitest list` - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7257 [(1c2b2)](https://github.com/vitest-dev/vitest/commit/1c2b210d)
- **benchmark**:
- Disable type testing while benchmarking - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7068 [(4e603)](https://github.com/vitest-dev/vitest/commit/4e60333d)
- Rewrite reporter without `log-update` - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7019 [(6d23f)](https://github.com/vitest-dev/vitest/commit/6d23f4b1)
- **browser**:
- Improve source maps when `vi.mock` is present - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6810 [(8d179)](https://github.com/vitest-dev/vitest/commit/8d179afc)
- Explain TypeScript support in docs and add asymmetric matchers to types - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6934 [(ac1a7)](https://github.com/vitest-dev/vitest/commit/ac1a7fdc)
- Fix matchers.d.ts - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6995 [(a485b)](https://github.com/vitest-dev/vitest/commit/a485b32b)
- Fix user event state on preview provider - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7041 [(8e944)](https://github.com/vitest-dev/vitest/commit/8e94427e)
- Fix provider options types - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7115 [(579bd)](https://github.com/vitest-dev/vitest/commit/579bda97)
- Only use locator.element on last expect.element attempt - by @tsirlucas in https://github.com/vitest-dev/vitest/issues/7139 and https://github.com/vitest-dev/vitest/issues/7152 [(847d3)](https://github.com/vitest-dev/vitest/commit/847d3221)
- Use correct project when filtering `entries` in the browser mode - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7167 [(423d6)](https://github.com/vitest-dev/vitest/commit/423d6345)
- Fix `console.time` with fake timers - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7207 [(903f3)](https://github.com/vitest-dev/vitest/commit/903f3b9b)
- Add instance validation to resolve coverage error - by @DevJoaoLopes and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7231 [(1e791)](https://github.com/vitest-dev/vitest/commit/1e7915b5)
- **coverage**:
- Exclude browser mode iframe results - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6905 [(e04a1)](https://github.com/vitest-dev/vitest/commit/e04a1368)
- Correct coverage when `isolate: false` is used - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6957 [(426ce)](https://github.com/vitest-dev/vitest/commit/426ce6d8)
- Prevent crash when v8 incorrectly merges static_initializer's - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7150 [(cb6db)](https://github.com/vitest-dev/vitest/commit/cb6db13e)
- **deps**:
- Update all non-major dependencies - in https://github.com/vitest-dev/vitest/issues/7085 [(8cc92)](https://github.com/vitest-dev/vitest/commit/8cc92c2f)
- Update all non-major dependencies - in https://github.com/vitest-dev/vitest/issues/7116 [(de5ce)](https://github.com/vitest-dev/vitest/commit/de5ce3d9)
- Update dependency pathe to v2 - in https://github.com/vitest-dev/vitest/issues/7181 [(74dbe)](https://github.com/vitest-dev/vitest/commit/74dbe03f)
- **diff**:
- Truncate to avoid crash on diff large objects - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7133 [(2a9d6)](https://github.com/vitest-dev/vitest/commit/2a9d67a2)
- **junit**:
- Fix testsuites time to be sum of all testsuite items - by @saitonakamura in https://github.com/vitest-dev/vitest/issues/6985 [(ca37a)](https://github.com/vitest-dev/vitest/commit/ca37a06a)
- **pretty-format**:
- Support react 19 - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6909 [(bd29b)](https://github.com/vitest-dev/vitest/commit/bd29bcc7)
- **reporters**:
- Write buffered stdout/stderr on process exit - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6932 [(80cde)](https://github.com/vitest-dev/vitest/commit/80cde2a0)
- Rewrite `dot` reporter without `log-update` - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6943 [(be969)](https://github.com/vitest-dev/vitest/commit/be969cfb)
- Check `--hideSkippedTests` in base reporter - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6988 [(721a5)](https://github.com/vitest-dev/vitest/commit/721a5b84)
- Show `retry` and `repeats` counts - by @AriPerkkio and @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7004 [(3496a)](https://github.com/vitest-dev/vitest/commit/3496a015)
- **runner**:
- Long synchronous tasks does not time out - by @ferdodo and @sheremet-va in https://github.com/vitest-dev/vitest/issues/2920 and https://github.com/vitest-dev/vitest/issues/6944 [(2fb58)](https://github.com/vitest-dev/vitest/commit/2fb585ae)
- Mark tests of `describe.todo` as `'todo'` - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7171 [(1d458)](https://github.com/vitest-dev/vitest/commit/1d458955)
- **snapshot**:
- Fix "obsolete" message on snapshot update re-run - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7129 [(c2beb)](https://github.com/vitest-dev/vitest/commit/c2beb8ca)
- Preserve white space of `toMatchFileSnapshot` - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7156 [(a437b)](https://github.com/vitest-dev/vitest/commit/a437b656)
- Fix obsoleteness check of `toMatchSnapshot("...")` - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7126 [(ac9ba)](https://github.com/vitest-dev/vitest/commit/ac9ba151)
- **typecheck**:
- Fix typecheck collect on Vite 6 - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6972 [(7b35d)](https://github.com/vitest-dev/vitest/commit/7b35d13a)
- Use unique temp and tsbuildinfo file for each tsconfig file - by @masnormen in https://github.com/vitest-dev/vitest/issues/7107 and https://github.com/vitest-dev/vitest/issues/7112 [(61b30)](https://github.com/vitest-dev/vitest/commit/61b30162)
- Fix error test case mapping for `@ts-expect-error` - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7125 [(27d34)](https://github.com/vitest-dev/vitest/commit/27d340aa)
- **types**:
- Make parameters non-nullable for Playwright options - by @apple-yagi in https://github.com/vitest-dev/vitest/issues/6989 [(fe2a1)](https://github.com/vitest-dev/vitest/commit/fe2a187f)
- **ui**:
- Wrong module graph when generating html.meta.json.gz in browser mode - by @userquin in https://github.com/vitest-dev/vitest/issues/7214 [(dccdd)](https://github.com/vitest-dev/vitest/commit/dccdd550)
- Add errors and draft state (*) to the code editor - by @userquin in https://github.com/vitest-dev/vitest/issues/7044 [(faca4)](https://github.com/vitest-dev/vitest/commit/faca4de8)
- **vite-node**:
- Fix error stack on Windows - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6786 [(bf7b3)](https://github.com/vitest-dev/vitest/commit/bf7b36ac)
- Properly normalize file url import - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7087 [(31675)](https://github.com/vitest-dev/vitest/commit/31675e3b)
- Fix mandatory node prefix - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7179 [(b6284)](https://github.com/vitest-dev/vitest/commit/b6284642)
- **watch**:
- Don't indicate exit when no matching files - by @sheremet-va and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7246 [(003c0)](https://github.com/vitest-dev/vitest/commit/003c0bef)
- **workspace**:
- `extends: true` correctly inherits all root config properties - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7232 [(798c0)](https://github.com/vitest-dev/vitest/commit/798c0da2)
##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v2.1.8...v3.0.0)
v3.0.0-beta.4 (2025-01-08)
### π¨ Breaking Changes
- **deps**: Update fake-timers to v14.0.0 - by @xxzefgh and @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7097 [(c98b4)](https://github.com/vitest-dev/vitest/commit/c98b4b1c)
### π Features
- **browser**:
- Support clipboard api `userEvent.copy, cut, paste` - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6769 [(843a6)](https://github.com/vitest-dev/vitest/commit/843a621e)
- Implement locator.nth() - by @xeger and @sheremet-va in https://github.com/vitest-dev/vitest/issues/7137 [(38458)](https://github.com/vitest-dev/vitest/commit/38458ea6)
### π Bug Fixes
- Fix missing chai types - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7149 [(6a09c)](https://github.com/vitest-dev/vitest/commit/6a09cc3b)
- `cancelCurrentRun` awaits `runningPromise` - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7168 [(1dbf5)](https://github.com/vitest-dev/vitest/commit/1dbf5140)
- Add Locator typings for nth, first and last. - by @xeger in https://github.com/vitest-dev/vitest/issues/7176 [(d262e)](https://github.com/vitest-dev/vitest/commit/d262e059)
- Batch console logs by microtask - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7183 [(53d1d)](https://github.com/vitest-dev/vitest/commit/53d1d5f5)
- Allow `getMockImplementation` to return "once" implementation - by @chaptergy in https://github.com/vitest-dev/vitest/issues/7033 [(39125)](https://github.com/vitest-dev/vitest/commit/3912554b)
- **benchmark**:
- Rewrite reporter without `log-update` - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7019 [(6d23f)](https://github.com/vitest-dev/vitest/commit/6d23f4b1)
- **browser**:
- Fix provider options types - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7115 [(579bd)](https://github.com/vitest-dev/vitest/commit/579bda97)
- Only use locator.element on last expect.element attempt - by @tsirlucas in https://github.com/vitest-dev/vitest/issues/7139 and https://github.com/vitest-dev/vitest/issues/7152 [(847d3)](https://github.com/vitest-dev/vitest/commit/847d3221)
- Use correct project when filtering `entries` in the browser mode - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7167 [(423d6)](https://github.com/vitest-dev/vitest/commit/423d6345)
- **coverage**:
- Prevent crash when v8 incorrectly merges static_initializer's - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7150 [(cb6db)](https://github.com/vitest-dev/vitest/commit/cb6db13e)
- **deps**:
- Update all non-major dependencies - in https://github.com/vitest-dev/vitest/issues/7116 [(de5ce)](https://github.com/vitest-dev/vitest/commit/de5ce3d9)
- Update dependency pathe to v2 - in https://github.com/vitest-dev/vitest/issues/7181 [(74dbe)](https://github.com/vitest-dev/vitest/commit/74dbe03f)
- **diff**:
- Truncate to avoid crash on diff large objects - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7133 [(2a9d6)](https://github.com/vitest-dev/vitest/commit/2a9d67a2)
- **runner**:
- Mark tests of `describe.todo` as `'todo'` - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7171 [(1d458)](https://github.com/vitest-dev/vitest/commit/1d458955)
- **snapshot**:
- Fix "obsolete" message on snapshot update re-run - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7129 [(c2beb)](https://github.com/vitest-dev/vitest/commit/c2beb8ca)
- Preserve white space of `toMatchFileSnapshot` - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7156 [(a437b)](https://github.com/vitest-dev/vitest/commit/a437b656)
- Fix obsoleteness check of `toMatchSnapshot("...")` - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7126 [(ac9ba)](https://github.com/vitest-dev/vitest/commit/ac9ba151)
- **typecheck**:
- Use unique temp and tsbuildinfo file for each tsconfig file - by @masnormen in https://github.com/vitest-dev/vitest/issues/7107 and https://github.com/vitest-dev/vitest/issues/7112 [(61b30)](https://github.com/vitest-dev/vitest/commit/61b30162)
- Fix error test case mapping for `@ts-expect-error` - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7125 [(27d34)](https://github.com/vitest-dev/vitest/commit/27d340aa)
- **vite-node**:
- Properly normalize file url import - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7087 [(31675)](https://github.com/vitest-dev/vitest/commit/31675e3b)
- Fix mandatory node prefix - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7179 [(b6284)](https://github.com/vitest-dev/vitest/commit/b6284642)
##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v3.0.0-beta.3...v3.0.0-beta.4)
v3.0.0-beta.3 (2024-12-20)
### π Features
- Support Vite v6 in mocker package - by @cexbrayat in https://github.com/vitest-dev/vitest/issues/7058 [(96f47)](https://github.com/vitest-dev/vitest/commit/96f47d37)
- Allow multi-browser configuration - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6975 [(78b62)](https://github.com/vitest-dev/vitest/commit/78b62ffe)
- **coverage**: `thresholds` to support maximum uncovered items - by @jonahkagan in https://github.com/vitest-dev/vitest/issues/7061 [(bde98)](https://github.com/vitest-dev/vitest/commit/bde98b6d)
- **expect**: Add `toBeOneOf` matcher - by @zirkelc and @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6974 [(3d742)](https://github.com/vitest-dev/vitest/commit/3d742b2b)
- **runner**: Add "queued" state - by @sheremet-va and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6931 [(5f8d2)](https://github.com/vitest-dev/vitest/commit/5f8d2091)
### π Bug Fixes
- Don't use dim color for passed tests - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7059 [(8a6f5)](https://github.com/vitest-dev/vitest/commit/8a6f5f16)
- **benchmark**: Disable type testing while benchmarking - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/7068 [(4e603)](https://github.com/vitest-dev/vitest/commit/4e60333d)
- **deps**: Update all non-major dependencies - in https://github.com/vitest-dev/vitest/issues/7085 [(8cc92)](https://github.com/vitest-dev/vitest/commit/8cc92c2f)
##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v3.0.0-beta.2...v3.0.0-beta.3)
v3.0.0-beta.2 (2024-12-10)
### π¨ Breaking Changes
- **expect**: Check more properties for error equality - by @hi-ogawa and @sheremet-va in https://github.com/vitest-dev/vitest/issues/5876 [(10023)](https://github.com/vitest-dev/vitest/commit/100230e9)
- **spy**: SpyOn reuses mock if method is already spyed on - by @sheremet-va and @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6464 [(b3e43)](https://github.com/vitest-dev/vitest/commit/b3e43d04)
### π Features
- Expose versions from `vitest/node` entry point and statically on Vitest - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7029 [(be8d4)](https://github.com/vitest-dev/vitest/commit/be8d479b)
- `diff.printBasicPrototype: false` by default - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7043 [(2b5c5)](https://github.com/vitest-dev/vitest/commit/2b5c5201)
- Prepare the Vitest API to be stable - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6962 [(9a1b5)](https://github.com/vitest-dev/vitest/commit/9a1b5012)
- **cli**: Support location filters for suites - by @mzhubail in https://github.com/vitest-dev/vitest/issues/7048 [(751e2)](https://github.com/vitest-dev/vitest/commit/751e2dce)
- **expect**: Add `toSatisfy` asymmetric matcher - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7022 [(f691a)](https://github.com/vitest-dev/vitest/commit/f691ad76)
- **ui**: Make clicking on a test in the UI open the report section and scroll to the test failure if applicable - by @jacoberdman2147 in https://github.com/vitest-dev/vitest/issues/6900 [(1bf27)](https://github.com/vitest-dev/vitest/commit/1bf27f0d)
### π Bug Fixes
- Persist cli filters as watch mode file filter - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6955 [(cc703)](https://github.com/vitest-dev/vitest/commit/cc703362)
- **browser**: Fix user event state on preview provider - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7041 [(8e944)](https://github.com/vitest-dev/vitest/commit/8e94427e)
- **coverage**: Correct coverage when `isolate: false` is used - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6957 [(426ce)](https://github.com/vitest-dev/vitest/commit/426ce6d8)
- **runner**: Long synchronous tasks does not time out - by @ferdodo and @sheremet-va in https://github.com/vitest-dev/vitest/issues/2920 and https://github.com/vitest-dev/vitest/issues/6944 [(2fb58)](https://github.com/vitest-dev/vitest/commit/2fb585ae)
##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v3.0.0-beta.1...v3.0.0-beta.2)
v3.0.0-beta.1 (2024-12-05)
We decided to skip Vitest 2.2 and release Vitest 3 with support for Vite 6 instead. There will be no more Vitest 2 versions. Vitest 3 is the first version that supports Vite 6 (excluding 2.1.6). We aim to have a stable release in January.
Vitest 3 is our first step to standardising the public Node.js API. We plan to remove the experimental tag from the current APIs in Vitest 3.1 - the API will follow semver after that.
### π¨ Breaking Changes
- `spy.mockReset` changes - by @Lordfirespeed in https://github.com/vitest-dev/vitest/issues/6426 [(db7a8)](https://github.com/vitest-dev/vitest/commit/db7a8888)
- Pass down context to test hooks - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7034 [(82c2e)](https://github.com/vitest-dev/vitest/commit/82c2e244)
- Support Vite 6 - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7026 [(7abe8)](https://github.com/vitest-dev/vitest/commit/7abe854c)
- **runner**: Support `describe(..., { shuffle: boolean })` and inherit from parent suite - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6670 [(aa1da)](https://github.com/vitest-dev/vitest/commit/aa1dac3d)
- **snapshot**: Reset snapshot state for `retry` and `repeats` - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6817 [(e8ce9)](https://github.com/vitest-dev/vitest/commit/e8ce94cf)
- **vitest**: Don't expose default toFake config - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6288 [(e3144)](https://github.com/vitest-dev/vitest/commit/e3144fd8)
### π Features
- Support inline `diff` options and support `printBasicPrototype` - by @hi-ogawa, @sheremet-va and **MichaΕ Grzegorzewski** in https://github.com/vitest-dev/vitest/issues/6740 [(39186)](https://github.com/vitest-dev/vitest/commit/391860f7)
- Allow a custom note when calling `ctx.skip()` dynamically - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6805 [(697c3)](https://github.com/vitest-dev/vitest/commit/697c35c5)
- Allow inline workspace configuration - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6923 [(562e1)](https://github.com/vitest-dev/vitest/commit/562e1b14)
- Provide the current project to the global setup - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6942 [(a5bbc)](https://github.com/vitest-dev/vitest/commit/a5bbc0a9)
- Print project name as a label - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6925 [(a3bef)](https://github.com/vitest-dev/vitest/commit/a3bef598)
- Print a deprecation warning if suite or test uses object as the third argument - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/7031 [(407f1)](https://github.com/vitest-dev/vitest/commit/407f10e4)
- **browser**:
- Support `actionTimeout` as playwright provider options - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6984 [(e2c29)](https://github.com/vitest-dev/vitest/commit/e2c29eaf)
- **cli**:
- Support excluding projects with `--project=!pattern` - by @haines in https://github.com/vitest-dev/vitest/issues/6924 [(ebfe9)](https://github.com/vitest-dev/vitest/commit/ebfe942c)
- Support specifying a line number when filtering tests - by @mzhubail and @sheremet-va in https://github.com/vitest-dev/vitest/issues/6411 [(4d94b)](https://github.com/vitest-dev/vitest/commit/4d94b956)
- **expect**:
- Add `toHaveBeenCalledExactlyOnceWith` expect matcher - by @jacoberdman2147 and @sheremet-va in https://github.com/vitest-dev/vitest/issues/6894 [(ff662)](https://github.com/vitest-dev/vitest/commit/ff66206a)
- Add `toHaveBeenCalledAfter` and `toHaveBeenCalledBefore` utility - by @Barbapapazes and @sheremet-va in https://github.com/vitest-dev/vitest/issues/6056 [(85e6f)](https://github.com/vitest-dev/vitest/commit/85e6f99f)
- **reporter**:
- Add support for function type to classname option in the junit reporter - by @jpleclerc, **Jean-Philippe Leclerc** and @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6839 [(dc238)](https://github.com/vitest-dev/vitest/commit/dc238e92)
- **reporters**:
- `summary` option for `verbose` and `default` reporters - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6893 [(511b7)](https://github.com/vitest-dev/vitest/commit/511b73c7)
- **runner**:
- Test context can inject values from the config's `provide` - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6813 [(85c64)](https://github.com/vitest-dev/vitest/commit/85c64e35)
- **snapshot**:
- Provide `config` to `resolveSnapshotPath` - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6800 [(746d8)](https://github.com/vitest-dev/vitest/commit/746d8986)
- **ui**:
- Allow run individual tests/suites from the UI - by @userquin in https://github.com/vitest-dev/vitest/issues/6641 [(d9cc8)](https://github.com/vitest-dev/vitest/commit/d9cc81dd)
- **vitest**:
- Include `coverageMap` in json report - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6606 [(9c8f7)](https://github.com/vitest-dev/vitest/commit/9c8f7e3e)
- Add `onTestsRerun` method to global setup context - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6803 [(e26e0)](https://github.com/vitest-dev/vitest/commit/e26e066c)
### π Bug Fixes
- Misc fix for vite 6 ecosystem ci - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6867 [(80f8b)](https://github.com/vitest-dev/vitest/commit/80f8bbf4)
- Respect `cacheDir` when optimizer is enabled - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6910 [(0b08b)](https://github.com/vitest-dev/vitest/commit/0b08bc11)
- Reset runningPromise after `finally` in case there is an error to avoid it getting stuck - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6951 [(02194)](https://github.com/vitest-dev/vitest/commit/021944cd)
- Support Node 21 - by @sheremet-va [(92f7a)](https://github.com/vitest-dev/vitest/commit/92f7a2ad)
- Don't use `Custom` internally - by @sheremet-va [(46fc5)](https://github.com/vitest-dev/vitest/commit/46fc5340)
- **browser**:
- Improve source maps when `vi.mock` is present - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6810 [(8d179)](https://github.com/vitest-dev/vitest/commit/8d179afc)
- Explain TypeScript support in docs and add asymmetric matchers to types - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6934 [(ac1a7)](https://github.com/vitest-dev/vitest/commit/ac1a7fdc)
- Fix matchers.d.ts - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6995 [(a485b)](https://github.com/vitest-dev/vitest/commit/a485b32b)
- **coverage**:
- Exclude browser mode iframe results - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6905 [(e04a1)](https://github.com/vitest-dev/vitest/commit/e04a1368)
- **junit**:
- Fix testsuites time to be sum of all testsuite items - by @saitonakamura in https://github.com/vitest-dev/vitest/issues/6985 [(ca37a)](https://github.com/vitest-dev/vitest/commit/ca37a06a)
- **pretty-format**:
- Support react 19 - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6909 [(bd29b)](https://github.com/vitest-dev/vitest/commit/bd29bcc7)
- **reporters**:
- Write buffered stdout/stderr on process exit - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6932 [(80cde)](https://github.com/vitest-dev/vitest/commit/80cde2a0)
- Rewrite `dot` reporter without `log-update` - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6943 [(be969)](https://github.com/vitest-dev/vitest/commit/be969cfb)
- Check `--hideSkippedTests` in base reporter - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6988 [(721a5)](https://github.com/vitest-dev/vitest/commit/721a5b84)
- Show `retry` and `repeats` counts - by @AriPerkkio and @hi-ogawa in https://github.com/vitest-dev/vitest/issues/7004 [(3496a)](https://github.com/vitest-dev/vitest/commit/3496a015)
- **typecheck**:
- Fix typecheck collect on Vite 6 - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6972 [(7b35d)](https://github.com/vitest-dev/vitest/commit/7b35d13a)
- **types**:
- Make parameters non-nullable for Playwright options - by @apple-yagi in https://github.com/vitest-dev/vitest/issues/6989 [(fe2a1)](https://github.com/vitest-dev/vitest/commit/fe2a187f)
- **vite-node**:
- Fix error stack on Windows - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6786 [(bf7b3)](https://github.com/vitest-dev/vitest/commit/bf7b36ac)
##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v2.1.8...v3.0.0-beta.1)
v2.1.8 (2024-12-02)
### π Bug Fixes
- Support Node 21 - by @sheremet-va [(92f7a)](https://github.com/vitest-dev/vitest/commit/92f7a2ad)
##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v2.1.7...v2.1.8)
v2.1.7 (2024-12-02)
### π Bug Fixes
- Revert support for Vite 6 - by @sheremet-va [(fbe5c)](https://github.com/vitest-dev/vitest/commit/fbe5c39d)
- This introduced some breaking changes (https://github.com/vitest-dev/vitest/issues/6992). We will enable support for it later. In the meantime, you can still use `pnpm.overrides` or yarn resolutions to override the `vite` version in the `vitest` package - the APIs are compatible.
##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v2.1.6...v2.1.7)
v2.1.6 (2024-11-26)
## π Features
- Support Vite 6
##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v2.1.5...v2.1.6)
v2.2.0-beta.2 (2024-11-18)
### π Features
- **reporter**: Add support for function type to classname option in the junit reporter - by @jpleclerc, **Jean-Philippe Leclerc** and @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6839 [(dc238)](https://github.com/vitest-dev/vitest/commit/dc238e92)
- **reporters**: `summary` option for `verbose` and `default` reporters - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6893 [(511b7)](https://github.com/vitest-dev/vitest/commit/511b73c7)
- **ui**: Allow run individual tests/suites from the UI - by @userquin in https://github.com/vitest-dev/vitest/issues/6641 [(d9cc8)](https://github.com/vitest-dev/vitest/commit/d9cc81dd)
### π Bug Fixes
- Misc fix for vite 6 ecosystem ci - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6867 [(80f8b)](https://github.com/vitest-dev/vitest/commit/80f8bbf4)
- Respect `cacheDir` when optimizer is enabled - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6910 [(0b08b)](https://github.com/vitest-dev/vitest/commit/0b08bc11)
- **coverage**: Exclude browser mode iframe results - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6905 [(e04a1)](https://github.com/vitest-dev/vitest/commit/e04a1368)
- **pretty-format**: Support react 19 - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6909 [(bd29b)](https://github.com/vitest-dev/vitest/commit/bd29bcc7)
##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v2.2.0-beta.1...v2.2.0-beta.2)
v2.2.0-beta.1 (2024-11-13)
### π Features
- Support inline `diff` options and support `printBasicPrototype` - by @hi-ogawa, @sheremet-va and **MichaΕ Grzegorzewski** in https://github.com/vitest-dev/vitest/issues/6740 [(39186)](https://github.com/vitest-dev/vitest/commit/391860f7)
- Allow a custom note when calling `ctx.skip()` dynamically - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6805 [(697c3)](https://github.com/vitest-dev/vitest/commit/697c35c5)
- **expect**:
- Add `toHaveBeenCalledExactlyOnceWith` expect matcher - by @jacoberdman2147 and @sheremet-va in https://github.com/vitest-dev/vitest/issues/6894 [(ff662)](https://github.com/vitest-dev/vitest/commit/ff66206a)
- Add `toHaveBeenCalledAfter` and `toHaveBeenCalledBefore` utility - by @Barbapapazes and @sheremet-va in https://github.com/vitest-dev/vitest/issues/6056 [(85e6f)](https://github.com/vitest-dev/vitest/commit/85e6f99f)
- **runner**:
- Test context can inject values from the config's `provide` - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6813 [(85c64)](https://github.com/vitest-dev/vitest/commit/85c64e35)
- **snapshot**:
- Provide `config` to `resolveSnapshotPath` - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6800 [(746d8)](https://github.com/vitest-dev/vitest/commit/746d8986)
- **vitest**:
- Include `coverageMap` in json report - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6606 [(9c8f7)](https://github.com/vitest-dev/vitest/commit/9c8f7e3e)
- Add `onTestsRerun` method to global setup context - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6803 [(e26e0)](https://github.com/vitest-dev/vitest/commit/e26e066c)
### π Bug Fixes
- **browser**: Improve source maps when `vi.mock` is present - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6810 [(8d179)](https://github.com/vitest-dev/vitest/commit/8d179afc)
##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v2.1.5...v2.2.0-beta.1)
v2.1.5 (2024-11-13)
### π Bug Fixes
- `dangerouslyIgnoreUnhandledErrors` without base reporter - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6808 [(0bf0a)](https://github.com/vitest-dev/vitest/commit/0bf0ab00)
- Capture `unhandledRejection` even when base reporter is not used - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6812 [(8878b)](https://github.com/vitest-dev/vitest/commit/8878b04d)
- Don't change the working directory when loading workspace projects - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6811 [(f0aea)](https://github.com/vitest-dev/vitest/commit/f0aeaca8)
- Remove `sequence.concurrent` from the `RuntimeConfig` type - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6880 [(6af73)](https://github.com/vitest-dev/vitest/commit/6af73d93)
- Stop the runner before restarting, restart on workspace config change - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6859 [(b01df)](https://github.com/vitest-dev/vitest/commit/b01df47d)
- Don't rerun on Esc or Ctrl-C during watch filter - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6895 [(98f76)](https://github.com/vitest-dev/vitest/commit/98f76ea7)
- Print ssrTransform error - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6885 [(4c96c)](https://github.com/vitest-dev/vitest/commit/4c96cce7)
- Throw an error and a warning if `.poll`, `.element`, `.rejects`/`.resolves`, and `locator.*` weren't awaited - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6877 [(93b67)](https://github.com/vitest-dev/vitest/commit/93b67c24)
- **browser**:
- Don't process the default css styles - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6861 [(0d67f)](https://github.com/vitest-dev/vitest/commit/0d67f04b)
- Support non US key input - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6873 [(5969d)](https://github.com/vitest-dev/vitest/commit/5969d8da)
- Stop the browser rpc when the pool is closed - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6858 [(9a0c9)](https://github.com/vitest-dev/vitest/commit/9a0c93d7)
- Init browsers eagerly when tests are running - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6876 [(417bd)](https://github.com/vitest-dev/vitest/commit/417bdb42)
- **coverage**:
- Report uncovered files when re-run by `enter` or `'a'` - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6848 [(487c8)](https://github.com/vitest-dev/vitest/commit/487c80ae)
- **ui**:
- Remove crossorigin attributes for same origin assets - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6883 [(6e793)](https://github.com/vitest-dev/vitest/commit/6e793c64)
- **vite-node**:
- Improve esm check to decide external - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6816 [(7e1fa)](https://github.com/vitest-dev/vitest/commit/7e1faf3d)
- Top-level throw in module is not reported properly - by @vanaigr and @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6840 [(cf0cb)](https://github.com/vitest-dev/vitest/commit/cf0cbf6a)
- **vitest**:
- Use fetch() implementation from happy-dom - by @capricorn86 in https://github.com/vitest-dev/vitest/issues/6879 [(3c56f)](https://github.com/vitest-dev/vitest/commit/3c56feb4)
### π Performance
- Limit workspace project concurrency to available cores - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6869 [(f4c04)](https://github.com/vitest-dev/vitest/commit/f4c04ab6)
##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v2.1.4...v2.1.5)
v2.1.4 (2024-10-28)
### π Features
_This patch release includes a non-breaking feature for the experimental Browser Mode that doesn't follow SemVer. If you want to avoid picking up releases like this, make sure to pin the Vitest version in your `package.json`. See npm's documentation about [semver](https://docs.npmjs.com/cli/v6/using-npm/semver/) for more information._
- **browser**: Allow custom HTML path, respect plugins `transformIndexHtml` - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6725 [(16902)](https://github.com/vitest-dev/vitest/commit/169028f0)
### π Bug Fixes
- **windows**:
- Don't normalize drive case letter in root - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6792 [(b28cd)](https://github.com/vitest-dev/vitest/commit/b28cd2e3)
- **browser**:
- Fix default browser port - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6700 [(9c518)](https://github.com/vitest-dev/vitest/commit/9c518c14)
- Optimize expect-type - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6713 [(07918)](https://github.com/vitest-dev/vitest/commit/07918538)
- Don't polyfill process.env - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6718 [(da6d2)](https://github.com/vitest-dev/vitest/commit/da6d2ea7)
- Increment browser port automatically if there are several projects with browser.enabled - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6717 [(a9397)](https://github.com/vitest-dev/vitest/commit/a939779f)
- Cleanup keyboard state - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6731 [(19278)](https://github.com/vitest-dev/vitest/commit/19278f4c)
- Don't add `v=` queries to setup files imports - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6759 [(b8258)](https://github.com/vitest-dev/vitest/commit/b82584c9)
- User event cleanup on retry - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6764 [(bdd15)](https://github.com/vitest-dev/vitest/commit/bdd15dd1)
- Ignore non mocked msw requests - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6770 [(9d9ba)](https://github.com/vitest-dev/vitest/commit/9d9bad5b)
- Initiate MSW in the same frame as tests - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6772 [(2444f)](https://github.com/vitest-dev/vitest/commit/2444ff22)
- **deps**:
- Update dependency sirv to v3 - in https://github.com/vitest-dev/vitest/issues/6701 [(fde5d)](https://github.com/vitest-dev/vitest/commit/fde5d509)
- **expect**:
- Correct behavior of `toThrowError` with empty string parameter - by @shulaoda in https://github.com/vitest-dev/vitest/issues/6710 [(a6129)](https://github.com/vitest-dev/vitest/commit/a61293e9)
- **mocker**:
- Remove spy from peer dependencies - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6777 [(3a8b5)](https://github.com/vitest-dev/vitest/commit/3a8b56bf)
- **vitest**:
- Clarify slowTestThreshold, print slow tests in non-TTY mode - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6715 [(2e6aa)](https://github.com/vitest-dev/vitest/commit/2e6aa647)
- Print warnings form Vite plugins - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6724 [(121b1)](https://github.com/vitest-dev/vitest/commit/121b161f)
- Don't fail if the working directory starts with a lowercase drive letter - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6779 [(df6d7)](https://github.com/vitest-dev/vitest/commit/df6d750b)
- Silence import analysis warning - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6785 [(39041)](https://github.com/vitest-dev/vitest/commit/39041ee5)
- **vitest,runner**:
- Simplify `test.extend` type exports - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6707 [(e5c38)](https://github.com/vitest-dev/vitest/commit/e5c388f0)
### π Performance
- Use `hash` to replace `createHash` - by @btea in https://github.com/vitest-dev/vitest/issues/6703 [(5d07b)](https://github.com/vitest-dev/vitest/commit/5d07bba6)
##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v2.1.3...v2.1.4)
v2.1.3 (2024-10-14)
### π Bug Fixes
- Fix error diff of `toBeNaN, toBeUndefined, toBeNull, toBeTruthy, toBeFalsy` - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6697 [(e0027)](https://github.com/vitest-dev/vitest/commit/e002758c)
- **browser**:
- Provide aria role intellisense - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6629 [(f36ea)](https://github.com/vitest-dev/vitest/commit/f36eac77)
- Not.toBeInTheDocument works with locators API - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6634 [(8bef5)](https://github.com/vitest-dev/vitest/commit/8bef5d2b)
- Use `/mockServiceWorker.js` instead of `/__vitest_msw__` - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6687 [(4b2ce)](https://github.com/vitest-dev/vitest/commit/4b2ce07f)
- Don't override the esbuild option in the browser mode - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6692 [(d131f)](https://github.com/vitest-dev/vitest/commit/d131fd64)
- **expect**:
- Preserve prototype in `toMatchObject` diff - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6620 [(d289e)](https://github.com/vitest-dev/vitest/commit/d289e7eb)
- **mocker**:
- Specify correct spy dependency - by @sheremet-va [(7e958)](https://github.com/vitest-dev/vitest/commit/7e9584aa)
- **runner**:
- Ensure sequential suite overrides sequence.concurrent - by @dsyddall and @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6653 [(5e6de)](https://github.com/vitest-dev/vitest/commit/5e6de274)
- **vitest**:
- Deprecate UserConfig in favor of ViteUserConfig - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6626 [(496bd)](https://github.com/vitest-dev/vitest/commit/496bd251)
- Don't hang with maxConcurrency 0 - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6627 [(946d8)](https://github.com/vitest-dev/vitest/commit/946d8bb1)
- Deprecate old task types and node-reliant types - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6632 [(00045)](https://github.com/vitest-dev/vitest/commit/000459a9)
- Fix `` logs when interleaving `console.log/error` - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6644 [(9ece3)](https://github.com/vitest-dev/vitest/commit/9ece3952)
- Show rollup error details as test error - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6686 [(47dde)](https://github.com/vitest-dev/vitest/commit/47dde76f)
- Always inline setup files - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6689 [(19d64)](https://github.com/vitest-dev/vitest/commit/19d64e20)
- Use `fast-glob` instead of `tinyglobby` in Vitest - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6688 [(70baa)](https://github.com/vitest-dev/vitest/commit/70baaaa9)
- **web-worker**:
- Share mocker with main executor - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6623 [(fe7b8)](https://github.com/vitest-dev/vitest/commit/fe7b8aee)
### π Performance
- Reuse full name in reported tasks, update generator types - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6666 [(7a0de)](https://github.com/vitest-dev/vitest/commit/7a0de0a7)
##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v2.1.2...v2.1.3)
v2.1.2 (2024-10-02)
### π Bug Fixes
- Move `Vitest.setServer` to post `configureServer` hook to enable import analysis for workspace config loading - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6584 [(e7f35)](https://github.com/vitest-dev/vitest/commit/e7f35214)
- **benchmark**:
- Clear `BenchmarkResult.samples` array to reduce memory usage - by @hi-ogawa and @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6541 [(a6407)](https://github.com/vitest-dev/vitest/commit/a6407afc)
- **browser**:
- Fix dynamic import inside worker - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6569 [(ea2d4)](https://github.com/vitest-dev/vitest/commit/ea2d429b)
- Fix browser mock factory event race condition - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6530 [(f131f)](https://github.com/vitest-dev/vitest/commit/f131f93b)
- Serve ui assets as static - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6564 [(adcda)](https://github.com/vitest-dev/vitest/commit/adcdaee8)
- Update solidjs testing library lib - by @CamilleTeruel in https://github.com/vitest-dev/vitest/issues/6548 [(91442)](https://github.com/vitest-dev/vitest/commit/91442dfc)
- Use `data:` protocol on preview provider file upload - by @userquin in https://github.com/vitest-dev/vitest/issues/6501 [(e9821)](https://github.com/vitest-dev/vitest/commit/e9821f70)
- Fix base for client script - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6510 [(f9528)](https://github.com/vitest-dev/vitest/commit/f952874e)
- Throw an error if "@vitest/browser/context" is imported outside of the browser mode - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6570 [(383f1)](https://github.com/vitest-dev/vitest/commit/383f1791)
- **coverage**:
- Remove empty coverage folder on test failure too - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6547 [(1371c)](https://github.com/vitest-dev/vitest/commit/1371ca6a)
- Include `*.astro` by default - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6565 [(f8ff7)](https://github.com/vitest-dev/vitest/commit/f8ff76a9)
- `cleanOnRerun: false` to invalidate previous results - by @AriPerkkio in https://github.com/vitest-dev/vitest/issues/6592 [(88bde)](https://github.com/vitest-dev/vitest/commit/88bde99c)
- **expect**:
- Fix `toBeDefined` with `expect.poll` - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6562 [(f7da6)](https://github.com/vitest-dev/vitest/commit/f7da6199)
- **forks**:
- Fix `--cpu-prof` and `--heap-prof` not working by default - by @AriPerkkio in https://github.com/vitest-dev/vitest/pull/6555 [(2e4d894)](https://github.com/vitest-dev/vitest/commit/2e4d894)
- **runner**:
- Mark tests as skipped when `beforeAll` failed - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6524 [(fb797)](https://github.com/vitest-dev/vitest/commit/fb79792d)
- Support fixture parsing of lowered async syntax - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6531 [(b553c)](https://github.com/vitest-dev/vitest/commit/b553c7d6)
- Fix fixture parsing of lowered async syntax for non arrow functions - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6575 [(3de00)](https://github.com/vitest-dev/vitest/commit/3de00ab6)
- Guard test hook callback - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6604 [(14971)](https://github.com/vitest-dev/vitest/commit/1497134e)
- Run `onTestFinished` and `onTestFailed` during `retry` and `repeats` - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6609 [(c5e29)](https://github.com/vitest-dev/vitest/commit/c5e29098)
- **ui**:
- List tests on ui when `--standalone` - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6577 [(d0bf8)](https://github.com/vitest-dev/vitest/commit/d0bf89d3)
- **vite-node**:
- Fix esm false-detection inside comment - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6506 [(91f85)](https://github.com/vitest-dev/vitest/commit/91f85997)
- **vitest**:
- Install dependencies with the same version when prompted - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6611 [(ed8b7)](https://github.com/vitest-dev/vitest/commit/ed8b7c08)
- Make env.SSR consistent between different pools - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6616 [(8a8d3)](https://github.com/vitest-dev/vitest/commit/8a8d3f03)
- Don't start a websocket server if api is disabled - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6617 [(82140)](https://github.com/vitest-dev/vitest/commit/821400b8)
- **workspace**:
- Fix glob pattern detection - by @hi-ogawa in https://github.com/vitest-dev/vitest/issues/6502 [(7727c)](https://github.com/vitest-dev/vitest/commit/7727ca87)
- Ignore DS_Store by default - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6571 [(d2a86)](https://github.com/vitest-dev/vitest/commit/d2a86ff5)
##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v2.1.1...v2.1.2)
v2.1.1 (2024-09-13)
### π Bug Fixes
- **browser**:
- Make example test callbacks async - by @aqandrew in https://github.com/vitest-dev/vitest/issues/6484 [(16aa7)](https://github.com/vitest-dev/vitest/commit/16aa76c2)
- Optimize vitest-browser-vue correctly - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6490 [(5cbb0)](https://github.com/vitest-dev/vitest/commit/5cbb0bba)
- **workspace**:
- Resolve glob pattern once to avoid name collision - by @sheremet-va in https://github.com/vitest-dev/vitest/issues/6489 [(36b5a)](https://github.com/vitest-dev/vitest/commit/36b5aceb)
##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v2.1.0...v2.1.1)