Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(vite-node): circular import stuck #3418

Merged
merged 1 commit into from
May 24, 2023

Conversation

Dunqing
Copy link
Member

@Dunqing Dunqing commented May 21, 2023

Both main.js and mock(./src/B) will import A, resulting in a pending state all the time.

fix: #2008 (comment)

@stackblitz
Copy link

stackblitz bot commented May 21, 2023

Review PR in StackBlitz Codeflow Run & review this pull request in StackBlitz Codeflow.

@AriPerkkio
Copy link
Member

This seems to fix the circular import bug mentioned in #2008 (comment).

@Dunqing
Copy link
Member Author

Dunqing commented May 21, 2023

This seems to fix the circular import bug mentioned in #2008 (comment).

Yes, same issue

@sheremet-va sheremet-va merged commit 632eef4 into vitest-dev:main May 24, 2023
renovate bot referenced this pull request in ariakit/ariakit May 30, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@vitest/coverage-c8](https://github.com/vitest-dev/vitest/tree/main/packages/coverage-c8#readme)
([source](https://github.com/vitest-dev/vitest)) | [`0.31.1` ->
`0.31.2`](https://renovatebot.com/diffs/npm/@vitest%2fcoverage-c8/0.31.1/0.31.2)
|
[![age](https://badges.renovateapi.com/packages/npm/@vitest%2fcoverage-c8/0.31.2/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/@vitest%2fcoverage-c8/0.31.2/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/@vitest%2fcoverage-c8/0.31.2/compatibility-slim/0.31.1)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/@vitest%2fcoverage-c8/0.31.2/confidence-slim/0.31.1)](https://docs.renovatebot.com/merge-confidence/)
|
| [vitest](https://github.com/vitest-dev/vitest) | [`0.31.1` ->
`0.31.2`](https://renovatebot.com/diffs/npm/vitest/0.31.1/0.31.2) |
[![age](https://badges.renovateapi.com/packages/npm/vitest/0.31.2/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/vitest/0.31.2/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/vitest/0.31.2/compatibility-slim/0.31.1)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/vitest/0.31.2/confidence-slim/0.31.1)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>vitest-dev/vitest</summary>

###
[`v0.31.2`](https://github.com/vitest-dev/vitest/releases/tag/v0.31.2)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.31.1...v0.31.2)

#####    🚀 Features

- Throw error if using inline snapshot inside of `test.each` or
`describe.each`  -  by
[@&#8203;fenghan34](https://github.com/fenghan34) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3360](https://github.com/vitest-dev/vitest/issues/3360)
[<samp>(7c2f7)</samp>](https://github.com/vitest-dev/vitest/commit/7c2f7088)
- Pass down meta information to Node.js process  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) and
[@&#8203;dammy001](https://github.com/dammy001) in
[https://github.com/vitest-dev/vitest/issues/3449](https://github.com/vitest-dev/vitest/issues/3449)
[<samp>(e39ad)</samp>](https://github.com/vitest-dev/vitest/commit/e39adea8)
- **coverage**: Add `reportOnFailure` option  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3453](https://github.com/vitest-dev/vitest/issues/3453)
[<samp>(1988f)</samp>](https://github.com/vitest-dev/vitest/commit/1988fcb4)
- **dev**: Add moduleDirectories option to the vitest config  -  by
[@&#8203;fooddilsn](https://github.com/fooddilsn) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3337](https://github.com/vitest-dev/vitest/issues/3337)
[<samp>(b3602)</samp>](https://github.com/vitest-dev/vitest/commit/b3602bcc)

#####    🐞 Bug Fixes

- Don't print empty diff  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3437](https://github.com/vitest-dev/vitest/issues/3437)
[<samp>(32b53)</samp>](https://github.com/vitest-dev/vitest/commit/32b5361f)
- Don't restore methods in automocked dependencies  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3438](https://github.com/vitest-dev/vitest/issues/3438)
[<samp>(d1afd)</samp>](https://github.com/vitest-dev/vitest/commit/d1afd262)
- Dot reporter scrollback buffer spam  -  by
[@&#8203;gtm-nayan](https://github.com/gtm-nayan) in
[https://github.com/vitest-dev/vitest/issues/3415](https://github.com/vitest-dev/vitest/issues/3415)
[<samp>(e6792)</samp>](https://github.com/vitest-dev/vitest/commit/e6792a94)
- Gracefully exit when first `SIGINT` is received  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3407](https://github.com/vitest-dev/vitest/issues/3407)
[<samp>(a2cc2)</samp>](https://github.com/vitest-dev/vitest/commit/a2cc2b38)
- `rejects` & `resolves` breaks with thenable objects  -  by
[@&#8203;fenghan34](https://github.com/fenghan34) in
[https://github.com/vitest-dev/vitest/issues/3456](https://github.com/vitest-dev/vitest/issues/3456)
[<samp>(4e996)</samp>](https://github.com/vitest-dev/vitest/commit/4e996ae5)
- Prevent `birpc` timeouts when `Math.random` mock is not restored  - 
by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3460](https://github.com/vitest-dev/vitest/issues/3460)
[<samp>(cd5d5)</samp>](https://github.com/vitest-dev/vitest/commit/cd5d58b7)
- Assertion diff message now handle non writable property correctly  - 
by [@&#8203;PCreations](https://github.com/PCreations) in
[https://github.com/vitest-dev/vitest/issues/3422](https://github.com/vitest-dev/vitest/issues/3422)
[<samp>(f75ab)</samp>](https://github.com/vitest-dev/vitest/commit/f75ab650)
- Extend logging of process timeout errors  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3452](https://github.com/vitest-dev/vitest/issues/3452)
[<samp>(42643)</samp>](https://github.com/vitest-dev/vitest/commit/42643904)
- Support requiring files with `less` extension  -  by
[@&#8203;rluvaton](https://github.com/rluvaton) in
[https://github.com/vitest-dev/vitest/issues/3465](https://github.com/vitest-dev/vitest/issues/3465)
[<samp>(4d045)</samp>](https://github.com/vitest-dev/vitest/commit/4d045695)
-   **cli**:
- Improve colors used when erroring  -  by
[@&#8203;ghiscoding](https://github.com/ghiscoding) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3349](https://github.com/vitest-dev/vitest/issues/3349)
[<samp>(16681)</samp>](https://github.com/vitest-dev/vitest/commit/16681791)
-   **runner**:
- Suite timeout does not take effect  -  by
[@&#8203;btea](https://github.com/btea) in
[https://github.com/vitest-dev/vitest/issues/3455](https://github.com/vitest-dev/vitest/issues/3455)
[<samp>(82547)</samp>](https://github.com/vitest-dev/vitest/commit/82547376)
-   **spy**:
- Don't print received calls if there are no calls  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3405](https://github.com/vitest-dev/vitest/issues/3405)
[<samp>(41e11)</samp>](https://github.com/vitest-dev/vitest/commit/41e11dad)
-   **typecheck**:
- Show tsc errors not related to test files  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3441](https://github.com/vitest-dev/vitest/issues/3441)
[<samp>(a1da5)</samp>](https://github.com/vitest-dev/vitest/commit/a1da5714)
-   **types**:
- Fix `PartialMock` with async TReturns  -  by
[@&#8203;ghry5](https://github.com/ghry5) in
[https://github.com/vitest-dev/vitest/issues/3462](https://github.com/vitest-dev/vitest/issues/3462)
[<samp>(b664d)</samp>](https://github.com/vitest-dev/vitest/commit/b664d42c)
-   **vite-node**:
- Circular import stuck  -  by
[@&#8203;Dunqing](https://github.com/Dunqing) in
[https://github.com/vitest-dev/vitest/issues/3418](https://github.com/vitest-dev/vitest/issues/3418)
[<samp>(632ee)</samp>](https://github.com/vitest-dev/vitest/commit/632eef40)
- Coerce to string in import(dep)  -  by
[@&#8203;jcbhmr](https://github.com/jcbhmr) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3430](https://github.com/vitest-dev/vitest/issues/3430)
[<samp>(b72eb)</samp>](https://github.com/vitest-dev/vitest/commit/b72ebdb9)
- Don't remove sourcemap string in source code  -  by
[@&#8203;rxliuli](https://github.com/rxliuli) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/2918](https://github.com/vitest-dev/vitest/issues/2918)
and
[https://github.com/vitest-dev/vitest/issues/3379](https://github.com/vitest-dev/vitest/issues/3379)
[<samp>(02dc9)</samp>](https://github.com/vitest-dev/vitest/commit/02dc9ea7)
- Don't externalize "dist" by default  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3446](https://github.com/vitest-dev/vitest/issues/3446)
[<samp>(306b2)</samp>](https://github.com/vitest-dev/vitest/commit/306b2337)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.31.1...v0.31.2)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **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.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/ariakit/ariakit).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMDIuMTAiLCJ1cGRhdGVkSW5WZXIiOiIzNS4xMDIuMTAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
sheremet-va added a commit to sheremet-va/vitest that referenced this pull request May 31, 2023
@sheremet-va
Copy link
Member

This breaks deep circular imports because mod.importers.has(importee) always returns true. We are reverting this change in #3479

Dunqing added a commit to Dunqing/vitest that referenced this pull request May 31, 2023
David-Duefrene referenced this pull request in David-Duefrene/dataviewer Jun 6, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [vitest](https://github.com/vitest-dev/vitest) | [`0.30.1` ->
`0.32.0`](https://renovatebot.com/diffs/npm/vitest/0.30.1/0.32.0) |
[![age](https://badges.renovateapi.com/packages/npm/vitest/0.32.0/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/vitest/0.32.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/vitest/0.32.0/compatibility-slim/0.30.1)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/vitest/0.32.0/confidence-slim/0.30.1)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>vitest-dev/vitest</summary>

###
[`v0.32.0`](https://github.com/vitest-dev/vitest/releases/tag/v0.32.0)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.31.4...v0.32.0)

#####    🚨 Breaking Changes

- Throw an error, if the module cannot be resolved  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3307](https://github.com/vitest-dev/vitest/issues/3307)
[<samp>(1ad63)</samp>](https://github.com/vitest-dev/vitest/commit/1ad63b0c)
- Improve globs  -  by
[@&#8203;nickmccurdy](https://github.com/nickmccurdy) in
[https://github.com/vitest-dev/vitest/issues/3392](https://github.com/vitest-dev/vitest/issues/3392)
[<samp>(19ecc)</samp>](https://github.com/vitest-dev/vitest/commit/19ecc6c7)
- Add `@vitest/coverage-v8` package  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3339](https://github.com/vitest-dev/vitest/issues/3339)
[<samp>(82112)</samp>](https://github.com/vitest-dev/vitest/commit/821126f1)
- **mocker**: Don't restore mock to the original if the module is
automocked  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3518](https://github.com/vitest-dev/vitest/issues/3518)
[<samp>(c1004)</samp>](https://github.com/vitest-dev/vitest/commit/c1004e14)

#####    🚀 Features

- Support ssr optimizer  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3490](https://github.com/vitest-dev/vitest/issues/3490)
[<samp>(89842)</samp>](https://github.com/vitest-dev/vitest/commit/898422b0)
- Image type add apng  -  by [@&#8203;btea](https://github.com/btea)
in
[https://github.com/vitest-dev/vitest/issues/3498](https://github.com/vitest-dev/vitest/issues/3498)
[<samp>(a53c2)</samp>](https://github.com/vitest-dev/vitest/commit/a53c2151)
- **expect**: Support `expect.soft`  -  by
[@&#8203;Dunqing](https://github.com/Dunqing) in
[https://github.com/vitest-dev/vitest/issues/3507](https://github.com/vitest-dev/vitest/issues/3507)
[<samp>(7c687)</samp>](https://github.com/vitest-dev/vitest/commit/7c687ada)
- **runner**: Support using function/class as `describe`/`test` name  - 
by [@&#8203;fenghan34](https://github.com/fenghan34) in
[https://github.com/vitest-dev/vitest/issues/3497](https://github.com/vitest-dev/vitest/issues/3497)
[<samp>(15253)</samp>](https://github.com/vitest-dev/vitest/commit/15253890)

#####    🐞 Bug Fixes

- The cli option is passed to coverage.exclude  -  by
[@&#8203;btea](https://github.com/btea) in
[https://github.com/vitest-dev/vitest/issues/3506](https://github.com/vitest-dev/vitest/issues/3506)
[<samp>(c37cd)</samp>](https://github.com/vitest-dev/vitest/commit/c37cdebe)
- **optimizer**: Always respect optimizeDeps even if include/exclude is
overridden  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3488](https://github.com/vitest-dev/vitest/issues/3488)
[<samp>(eb285)</samp>](https://github.com/vitest-dev/vitest/commit/eb285ea0)
- **runner**: Ensure Vitest is deduped  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3489](https://github.com/vitest-dev/vitest/issues/3489)
[<samp>(2deb7)</samp>](https://github.com/vitest-dev/vitest/commit/2deb70ab)
- **ui**: Don't cache coverage assets  -  by
[@&#8203;userquin](https://github.com/userquin) in
[https://github.com/vitest-dev/vitest/issues/3508](https://github.com/vitest-dev/vitest/issues/3508)
[<samp>(952b5)</samp>](https://github.com/vitest-dev/vitest/commit/952b5be6)
- **vite-node**: Circular import stuck  -  by
[@&#8203;Dunqing](https://github.com/Dunqing) in
[https://github.com/vitest-dev/vitest/issues/3480](https://github.com/vitest-dev/vitest/issues/3480)
[<samp>(50f07)</samp>](https://github.com/vitest-dev/vitest/commit/50f0700d)
- **watch**: Junit reporter fails to re-generate report  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3496](https://github.com/vitest-dev/vitest/issues/3496)
[<samp>(5b73c)</samp>](https://github.com/vitest-dev/vitest/commit/5b73cbf8)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.31.4...v0.32.0)

###
[`v0.31.4`](https://github.com/vitest-dev/vitest/releases/tag/v0.31.4)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.31.3...v0.31.4)

#####    🚀 Features

- Enable experimentalOptimizer  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3413](https://github.com/vitest-dev/vitest/issues/3413)
[<samp>(5a894)</samp>](https://github.com/vitest-dev/vitest/commit/5a894aa2)

#####    🐞 Bug Fixes

- **vite-node**: Deps.inline doesn't work  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3485](https://github.com/vitest-dev/vitest/issues/3485)
[<samp>(be930)</samp>](https://github.com/vitest-dev/vitest/commit/be93032f)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.31.3...v0.31.4)

###
[`v0.31.3`](https://github.com/vitest-dev/vitest/releases/tag/v0.31.3)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.31.2...v0.31.3)

#####    🚀 Features

- Support `VITE_NODE_DEPS_MODULE_DIRECTORIES` from .npmrc  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3471](https://github.com/vitest-dev/vitest/issues/3471)
[<samp>(393bf)</samp>](https://github.com/vitest-dev/vitest/commit/393bf60c)

#####    🐞 Bug Fixes

- **logger**: Print unhandled errors before summary  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3474](https://github.com/vitest-dev/vitest/issues/3474)
[<samp>(4c9a7)</samp>](https://github.com/vitest-dev/vitest/commit/4c9a7d58)
- **runner**: Suite options do not propagate to nested suites (fix:
[#&#8203;3467](https://github.com/vitest-dev/vitest/issues/3467))  - 
by [@&#8203;xsjcTony](https://github.com/xsjcTony) in
[https://github.com/vitest-dev/vitest/issues/3473](https://github.com/vitest-dev/vitest/issues/3473)
and
[https://github.com/vitest-dev/vitest/issues/3467](https://github.com/vitest-dev/vitest/issues/3467)
[<samp>(9fb9d)</samp>](https://github.com/vitest-dev/vitest/commit/9fb9dacb)
- **vite-node**: Clear importers when invalidating module  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3475](https://github.com/vitest-dev/vitest/issues/3475)
[<samp>(add29)</samp>](https://github.com/vitest-dev/vitest/commit/add29c86)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.31.2...v0.31.3)

###
[`v0.31.2`](https://github.com/vitest-dev/vitest/releases/tag/v0.31.2)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.31.1...v0.31.2)

#####    🚀 Features

- Throw error if using inline snapshot inside of `test.each` or
`describe.each`  -  by
[@&#8203;fenghan34](https://github.com/fenghan34) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3360](https://github.com/vitest-dev/vitest/issues/3360)
[<samp>(7c2f7)</samp>](https://github.com/vitest-dev/vitest/commit/7c2f7088)
- Pass down meta information to Node.js process  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) and
[@&#8203;dammy001](https://github.com/dammy001) in
[https://github.com/vitest-dev/vitest/issues/3449](https://github.com/vitest-dev/vitest/issues/3449)
[<samp>(e39ad)</samp>](https://github.com/vitest-dev/vitest/commit/e39adea8)
- **coverage**: Add `reportOnFailure` option  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3453](https://github.com/vitest-dev/vitest/issues/3453)
[<samp>(1988f)</samp>](https://github.com/vitest-dev/vitest/commit/1988fcb4)
- **dev**: Add moduleDirectories option to the vitest config  -  by
[@&#8203;fooddilsn](https://github.com/fooddilsn) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3337](https://github.com/vitest-dev/vitest/issues/3337)
[<samp>(b3602)</samp>](https://github.com/vitest-dev/vitest/commit/b3602bcc)

#####    🐞 Bug Fixes

- Don't print empty diff  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3437](https://github.com/vitest-dev/vitest/issues/3437)
[<samp>(32b53)</samp>](https://github.com/vitest-dev/vitest/commit/32b5361f)
- Don't restore methods in automocked dependencies  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3438](https://github.com/vitest-dev/vitest/issues/3438)
[<samp>(d1afd)</samp>](https://github.com/vitest-dev/vitest/commit/d1afd262)
- Dot reporter scrollback buffer spam  -  by
[@&#8203;gtm-nayan](https://github.com/gtm-nayan) in
[https://github.com/vitest-dev/vitest/issues/3415](https://github.com/vitest-dev/vitest/issues/3415)
[<samp>(e6792)</samp>](https://github.com/vitest-dev/vitest/commit/e6792a94)
- Gracefully exit when first `SIGINT` is received  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3407](https://github.com/vitest-dev/vitest/issues/3407)
[<samp>(a2cc2)</samp>](https://github.com/vitest-dev/vitest/commit/a2cc2b38)
- `rejects` & `resolves` breaks with thenable objects  -  by
[@&#8203;fenghan34](https://github.com/fenghan34) in
[https://github.com/vitest-dev/vitest/issues/3456](https://github.com/vitest-dev/vitest/issues/3456)
[<samp>(4e996)</samp>](https://github.com/vitest-dev/vitest/commit/4e996ae5)
- Prevent `birpc` timeouts when `Math.random` mock is not restored  - 
by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3460](https://github.com/vitest-dev/vitest/issues/3460)
[<samp>(cd5d5)</samp>](https://github.com/vitest-dev/vitest/commit/cd5d58b7)
- Assertion diff message now handle non writable property correctly  - 
by [@&#8203;PCreations](https://github.com/PCreations) in
[https://github.com/vitest-dev/vitest/issues/3422](https://github.com/vitest-dev/vitest/issues/3422)
[<samp>(f75ab)</samp>](https://github.com/vitest-dev/vitest/commit/f75ab650)
- Extend logging of process timeout errors  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3452](https://github.com/vitest-dev/vitest/issues/3452)
[<samp>(42643)</samp>](https://github.com/vitest-dev/vitest/commit/42643904)
- Support requiring files with `less` extension  -  by
[@&#8203;rluvaton](https://github.com/rluvaton) in
[https://github.com/vitest-dev/vitest/issues/3465](https://github.com/vitest-dev/vitest/issues/3465)
[<samp>(4d045)</samp>](https://github.com/vitest-dev/vitest/commit/4d045695)
-   **cli**:
- Improve colors used when erroring  -  by
[@&#8203;ghiscoding](https://github.com/ghiscoding) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3349](https://github.com/vitest-dev/vitest/issues/3349)
[<samp>(16681)</samp>](https://github.com/vitest-dev/vitest/commit/16681791)
-   **runner**:
- Suite timeout does not take effect  -  by
[@&#8203;btea](https://github.com/btea) in
[https://github.com/vitest-dev/vitest/issues/3455](https://github.com/vitest-dev/vitest/issues/3455)
[<samp>(82547)</samp>](https://github.com/vitest-dev/vitest/commit/82547376)
-   **spy**:
- Don't print received calls if there are no calls  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3405](https://github.com/vitest-dev/vitest/issues/3405)
[<samp>(41e11)</samp>](https://github.com/vitest-dev/vitest/commit/41e11dad)
-   **typecheck**:
- Show tsc errors not related to test files  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3441](https://github.com/vitest-dev/vitest/issues/3441)
[<samp>(a1da5)</samp>](https://github.com/vitest-dev/vitest/commit/a1da5714)
-   **types**:
- Fix `PartialMock` with async TReturns  -  by
[@&#8203;ghry5](https://github.com/ghry5) in
[https://github.com/vitest-dev/vitest/issues/3462](https://github.com/vitest-dev/vitest/issues/3462)
[<samp>(b664d)</samp>](https://github.com/vitest-dev/vitest/commit/b664d42c)
-   **vite-node**:
- Circular import stuck  -  by
[@&#8203;Dunqing](https://github.com/Dunqing) in
[https://github.com/vitest-dev/vitest/issues/3418](https://github.com/vitest-dev/vitest/issues/3418)
[<samp>(632ee)</samp>](https://github.com/vitest-dev/vitest/commit/632eef40)
- Coerce to string in import(dep)  -  by
[@&#8203;jcbhmr](https://github.com/jcbhmr) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3430](https://github.com/vitest-dev/vitest/issues/3430)
[<samp>(b72eb)</samp>](https://github.com/vitest-dev/vitest/commit/b72ebdb9)
- Don't remove sourcemap string in source code  -  by
[@&#8203;rxliuli](https://github.com/rxliuli) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/2918](https://github.com/vitest-dev/vitest/issues/2918)
and
[https://github.com/vitest-dev/vitest/issues/3379](https://github.com/vitest-dev/vitest/issues/3379)
[<samp>(02dc9)</samp>](https://github.com/vitest-dev/vitest/commit/02dc9ea7)
- Don't externalize "dist" by default  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3446](https://github.com/vitest-dev/vitest/issues/3446)
[<samp>(306b2)</samp>](https://github.com/vitest-dev/vitest/commit/306b2337)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.31.1...v0.31.2)

###
[`v0.31.1`](https://github.com/vitest-dev/vitest/releases/tag/v0.31.1)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.31.0...v0.31.1)

#####    🚀 Features

- **watch**: Press `r` should rerun current pattern tests  -  by
[@&#8203;Dunqing](https://github.com/Dunqing) and
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3305](https://github.com/vitest-dev/vitest/issues/3305)
[<samp>(69d27)</samp>](https://github.com/vitest-dev/vitest/commit/69d27117)

#####    🐞 Bug Fixes

- Make sure thrown error is an object  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3298](https://github.com/vitest-dev/vitest/issues/3298)
[<samp>(a93be)</samp>](https://github.com/vitest-dev/vitest/commit/a93be56c)
- Remove duplicate type  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3303](https://github.com/vitest-dev/vitest/issues/3303)
[<samp>(5382e)</samp>](https://github.com/vitest-dev/vitest/commit/5382e8b6)
- Throw an error, if tests are collected with a different vitest version
 -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3301](https://github.com/vitest-dev/vitest/issues/3301)
[<samp>(708b1)</samp>](https://github.com/vitest-dev/vitest/commit/708b10fe)
- Support application/x-gzip metadata in html report  -  by
[@&#8203;mzanelee](https://github.com/mzanelee) and **Michael Lee** in
[https://github.com/vitest-dev/vitest/issues/3333](https://github.com/vitest-dev/vitest/issues/3333)
[<samp>(5bf7e)</samp>](https://github.com/vitest-dev/vitest/commit/5bf7eb6e)
- Correctly restore vi.fn implementation  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3341](https://github.com/vitest-dev/vitest/issues/3341)
[<samp>(2aff8)</samp>](https://github.com/vitest-dev/vitest/commit/2aff8c5f)
- Display error message correctly  -  by
[@&#8203;btea](https://github.com/btea) in
[https://github.com/vitest-dev/vitest/issues/3314](https://github.com/vitest-dev/vitest/issues/3314)
[<samp>(a5b3d)</samp>](https://github.com/vitest-dev/vitest/commit/a5b3d78e)
- Exclude `cwd` from test name filter  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3353](https://github.com/vitest-dev/vitest/issues/3353)
[<samp>(324a9)</samp>](https://github.com/vitest-dev/vitest/commit/324a9b54)
- Check error type before modifying it  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3385](https://github.com/vitest-dev/vitest/issues/3385)
[<samp>(c44d9)</samp>](https://github.com/vitest-dev/vitest/commit/c44d9912)
- `toMatchInlineSnapshot` fails when file path includes parentheses  - 
by [@&#8203;pacexy](https://github.com/pacexy) in
[https://github.com/vitest-dev/vitest/issues/3370](https://github.com/vitest-dev/vitest/issues/3370)
and
[https://github.com/vitest-dev/vitest/issues/3371](https://github.com/vitest-dev/vitest/issues/3371)
[<samp>(dcf13)</samp>](https://github.com/vitest-dev/vitest/commit/dcf1346a)
- Stop spying on a method, when it's restored  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3386](https://github.com/vitest-dev/vitest/issues/3386)
[<samp>(2cb1a)</samp>](https://github.com/vitest-dev/vitest/commit/2cb1a15a)
- Test repeats  -  by
[@&#8203;fenghan34](https://github.com/fenghan34) in
[https://github.com/vitest-dev/vitest/issues/3369](https://github.com/vitest-dev/vitest/issues/3369)
[<samp>(fb8fc)</samp>](https://github.com/vitest-dev/vitest/commit/fb8fc7ab)
-   **browser**:
- Throw an error if test failed to load  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3390](https://github.com/vitest-dev/vitest/issues/3390)
[<samp>(b354b)</samp>](https://github.com/vitest-dev/vitest/commit/b354bc1c)
- Keep default export when rewriting exports  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3389](https://github.com/vitest-dev/vitest/issues/3389)
[<samp>(6501d)</samp>](https://github.com/vitest-dev/vitest/commit/6501d2e3)
-   **cli**:
- Improve cac errors when mixing boolean and dot notation  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3302](https://github.com/vitest-dev/vitest/issues/3302)
[<samp>(93fbd)</samp>](https://github.com/vitest-dev/vitest/commit/93fbd02d)
-   **reporter**:
- Prevent deleting test reports stored in coverage directory  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3331](https://github.com/vitest-dev/vitest/issues/3331)
[<samp>(ddbba)</samp>](https://github.com/vitest-dev/vitest/commit/ddbba396)
-   **typecheck**:
- Correctly resolve custom tsconfig path  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3342](https://github.com/vitest-dev/vitest/issues/3342)
[<samp>(c53ae)</samp>](https://github.com/vitest-dev/vitest/commit/c53ae079)
-   **vite-node**:
- Allow returning id not wrapped in promise  -  by
[@&#8203;danielroe](https://github.com/danielroe) in
[https://github.com/vitest-dev/vitest/issues/3312](https://github.com/vitest-dev/vitest/issues/3312)
[<samp>(9836c)</samp>](https://github.com/vitest-dev/vitest/commit/9836ccb4)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.31.0...v0.31.1)

###
[`v0.31.0`](https://github.com/vitest-dev/vitest/releases/tag/v0.31.0)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.30.1...v0.31.0)

#####    🚨 Breaking Changes

- Remove `browser` from allowed pools inside `poolMatchGlob` config
option. Please, use Vitest workspaces for running tests in the browser.
- Move assertion declarations to expect package  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3294](https://github.com/vitest-dev/vitest/issues/3294)
[<samp>(cf3af)</samp>](https://github.com/vitest-dev/vitest/commit/cf3afe2b)

    -   The change should be minor:

    ```diff
    - declare namespace Vi {
    + declare module 'vitest' {
       interface Assertion<T = any> extends CustomMatchers<T> {}
       interface AsymmetricMatchersContaining extends CustomMatchers {}
    }
    ```

#####    🚀 Features

- Update mock implementation to support ESM runtime, introduce
"vi.hoisted"  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3258](https://github.com/vitest-dev/vitest/issues/3258)
[<samp>(0c09a)</samp>](https://github.com/vitest-dev/vitest/commit/0c09a40d)
- Bypass ESM import order restriction with `vi.hoisted` to run code
before imports are executed:
    ```ts
    vi.hoisted(() => vi.setSystemTime(new Date(2022, 1, 1)))
    ```
    You can also use it to pass variables to `vi.mock`:
    ```ts
    const { mockedMethod } = vi.hoisted(() => {
      return { mockedMethod: vi.fn() }
    })   
    vi.mock('./path/to/module.js', () => {
      return { originalMethod: mockedMethod }
    })
    ```
- Add repeat method to tests  -  by
[@&#8203;samkevin1](https://github.com/samkevin1) in
[https://github.com/vitest-dev/vitest/issues/2652](https://github.com/vitest-dev/vitest/issues/2652)
[<samp>(7c8f0)</samp>](https://github.com/vitest-dev/vitest/commit/7c8f0ba9)
- Add an option to hide skipped test lines  -  by
[@&#8203;g4rry420](https://github.com/g4rry420) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/2745](https://github.com/vitest-dev/vitest/issues/2745)
[<samp>(9bdb1)</samp>](https://github.com/vitest-dev/vitest/commit/9bdb1603)
- **coverage**: Watermarks for c8  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3254](https://github.com/vitest-dev/vitest/issues/3254)
[<samp>(730af)</samp>](https://github.com/vitest-dev/vitest/commit/730af0b4)
- **ui**: Add html coverage  -  by
[@&#8203;userquin](https://github.com/userquin) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3071](https://github.com/vitest-dev/vitest/issues/3071)
[<samp>(e24cd)</samp>](https://github.com/vitest-dev/vitest/commit/e24cd9b2)
- **watch**: Test run cancelling, feat: `--bail` option for cancelling
test run  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3163](https://github.com/vitest-dev/vitest/issues/3163)
[<samp>(8d460)</samp>](https://github.com/vitest-dev/vitest/commit/8d4606eb)

#####    🐞 Bug Fixes

- Don't call global setup teardown twice  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3188](https://github.com/vitest-dev/vitest/issues/3188)
[<samp>(ba3d1)</samp>](https://github.com/vitest-dev/vitest/commit/ba3d1338)
- Reporter to log version before provider initalizations  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3131](https://github.com/vitest-dev/vitest/issues/3131)
[<samp>(481b1)</samp>](https://github.com/vitest-dev/vitest/commit/481b1fd2)
- Throw an error if Vitest cannot access its internal state  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3250](https://github.com/vitest-dev/vitest/issues/3250)
[<samp>(fbb14)</samp>](https://github.com/vitest-dev/vitest/commit/fbb1468e)
- Warning suppression broken  -  by
[@&#8203;IceQub3](https://github.com/IceQub3) in
[https://github.com/vitest-dev/vitest/issues/3270](https://github.com/vitest-dev/vitest/issues/3270)
and
[https://github.com/vitest-dev/vitest/issues/3271](https://github.com/vitest-dev/vitest/issues/3271)
[<samp>(036de)</samp>](https://github.com/vitest-dev/vitest/commit/036de797)
- Show correct diff in "toHaveBeenCalledWith"  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3289](https://github.com/vitest-dev/vitest/issues/3289)
[<samp>(19fcd)</samp>](https://github.com/vitest-dev/vitest/commit/19fcd8df)
- Don't print esm warning, if package name is not found  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3292](https://github.com/vitest-dev/vitest/issues/3292)
[<samp>(62c14)</samp>](https://github.com/vitest-dev/vitest/commit/62c14cba)
- Support exactOptionalPropertyTypes  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3293](https://github.com/vitest-dev/vitest/issues/3293)
[<samp>(ba81d)</samp>](https://github.com/vitest-dev/vitest/commit/ba81d8a3)
- Don't inline vite hmr and rollup types  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3291](https://github.com/vitest-dev/vitest/issues/3291)
[<samp>(1f118)</samp>](https://github.com/vitest-dev/vitest/commit/1f1189bc)
-   **browser**:
- Failing to load vitest/utils  -  by
[@&#8203;userquin](https://github.com/userquin) in
[https://github.com/vitest-dev/vitest/issues/3190](https://github.com/vitest-dev/vitest/issues/3190)
[<samp>(78bad)</samp>](https://github.com/vitest-dev/vitest/commit/78bad4ab)
-   **coverage**:
- `thresholdAutoUpdate` to work with `perFile`  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3182](https://github.com/vitest-dev/vitest/issues/3182)
[<samp>(29eeb)</samp>](https://github.com/vitest-dev/vitest/commit/29eebf65)
- Throw error if fail to load built-in provider  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3217](https://github.com/vitest-dev/vitest/issues/3217)
[<samp>(0a287)</samp>](https://github.com/vitest-dev/vitest/commit/0a2875e3)
- Stackblitz hangs with c8  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3225](https://github.com/vitest-dev/vitest/issues/3225)
[<samp>(d9fda)</samp>](https://github.com/vitest-dev/vitest/commit/d9fda2a1)
- C8 to ignore vite's generated helpers  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3241](https://github.com/vitest-dev/vitest/issues/3241)
[<samp>(21942)</samp>](https://github.com/vitest-dev/vitest/commit/21942db0)
- Workspaces c8 source maps  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3226](https://github.com/vitest-dev/vitest/issues/3226)
[<samp>(efce3)</samp>](https://github.com/vitest-dev/vitest/commit/efce3b4d)
-   **docs**:
- Correct typo and broken link to WebdriverIO  -  by
[@&#8203;nathanbabcock](https://github.com/nathanbabcock) in
[https://github.com/vitest-dev/vitest/issues/3275](https://github.com/vitest-dev/vitest/issues/3275)
[<samp>(c7da1)</samp>](https://github.com/vitest-dev/vitest/commit/c7da155f)
-   **spy**:
- Update to set initial implementation through normal logic  -  by
[@&#8203;Codex-](https://github.com/Codex-) in
[https://github.com/vitest-dev/vitest/issues/3260](https://github.com/vitest-dev/vitest/issues/3260)
and
[https://github.com/vitest-dev/vitest/issues/3263](https://github.com/vitest-dev/vitest/issues/3263)
[<samp>(c759a)</samp>](https://github.com/vitest-dev/vitest/commit/c759a9aa)
-   **vite-node**:
- Circular imports  -  by [@&#8203;antfu](https://github.com/antfu) in
[https://github.com/vitest-dev/vitest/issues/3196](https://github.com/vitest-dev/vitest/issues/3196)
[<samp>(cbb59)</samp>](https://github.com/vitest-dev/vitest/commit/cbb593a8)
- Add missing `import.meta.hot.send` mock  -  by
[@&#8203;antfu](https://github.com/antfu)
[<samp>(b1624)</samp>](https://github.com/vitest-dev/vitest/commit/b1624db5)
-   **vitest**:
- Also check for vite relative to vitest package  -  by
[@&#8203;JoshuaKGoldberg](https://github.com/JoshuaKGoldberg) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3274](https://github.com/vitest-dev/vitest/issues/3274)
[<samp>(a3393)</samp>](https://github.com/vitest-dev/vitest/commit/a3393b15)
-   **watch**:
- Run test files when added to filesystem  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3189](https://github.com/vitest-dev/vitest/issues/3189)
[<samp>(7b2c8)</samp>](https://github.com/vitest-dev/vitest/commit/7b2c81bc)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.30.1...v0.31.0)

</details>

---

### Configuration

📅 **Schedule**: 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 this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/David-Duefrene/dataviewer).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS42OS4zIiwidXBkYXRlZEluVmVyIjoiMzUuMTEwLjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate bot referenced this pull request in creatorsgarten/contentsgarten Jun 6, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [vitest](https://github.com/vitest-dev/vitest) | [`^0.31.0` ->
`^0.32.0`](https://renovatebot.com/diffs/npm/vitest/0.31.0/0.32.0) |
[![age](https://badges.renovateapi.com/packages/npm/vitest/0.32.0/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/vitest/0.32.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/vitest/0.32.0/compatibility-slim/0.31.0)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/vitest/0.32.0/confidence-slim/0.31.0)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>vitest-dev/vitest</summary>

###
[`v0.32.0`](https://github.com/vitest-dev/vitest/releases/tag/v0.32.0)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.31.4...v0.32.0)

#####    🚨 Breaking Changes

- Throw an error, if the module cannot be resolved  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3307](https://github.com/vitest-dev/vitest/issues/3307)
[<samp>(1ad63)</samp>](https://github.com/vitest-dev/vitest/commit/1ad63b0c)
- Improve globs  -  by
[@&#8203;nickmccurdy](https://github.com/nickmccurdy) in
[https://github.com/vitest-dev/vitest/issues/3392](https://github.com/vitest-dev/vitest/issues/3392)
[<samp>(19ecc)</samp>](https://github.com/vitest-dev/vitest/commit/19ecc6c7)
- Add `@vitest/coverage-v8` package  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3339](https://github.com/vitest-dev/vitest/issues/3339)
[<samp>(82112)</samp>](https://github.com/vitest-dev/vitest/commit/821126f1)
- **mocker**: Don't restore mock to the original if the module is
automocked  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3518](https://github.com/vitest-dev/vitest/issues/3518)
[<samp>(c1004)</samp>](https://github.com/vitest-dev/vitest/commit/c1004e14)

#####    🚀 Features

- Support ssr optimizer  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3490](https://github.com/vitest-dev/vitest/issues/3490)
[<samp>(89842)</samp>](https://github.com/vitest-dev/vitest/commit/898422b0)
- Image type add apng  -  by [@&#8203;btea](https://github.com/btea)
in
[https://github.com/vitest-dev/vitest/issues/3498](https://github.com/vitest-dev/vitest/issues/3498)
[<samp>(a53c2)</samp>](https://github.com/vitest-dev/vitest/commit/a53c2151)
- **expect**: Support `expect.soft`  -  by
[@&#8203;Dunqing](https://github.com/Dunqing) in
[https://github.com/vitest-dev/vitest/issues/3507](https://github.com/vitest-dev/vitest/issues/3507)
[<samp>(7c687)</samp>](https://github.com/vitest-dev/vitest/commit/7c687ada)
- **runner**: Support using function/class as `describe`/`test` name  - 
by [@&#8203;fenghan34](https://github.com/fenghan34) in
[https://github.com/vitest-dev/vitest/issues/3497](https://github.com/vitest-dev/vitest/issues/3497)
[<samp>(15253)</samp>](https://github.com/vitest-dev/vitest/commit/15253890)

#####    🐞 Bug Fixes

- The cli option is passed to coverage.exclude  -  by
[@&#8203;btea](https://github.com/btea) in
[https://github.com/vitest-dev/vitest/issues/3506](https://github.com/vitest-dev/vitest/issues/3506)
[<samp>(c37cd)</samp>](https://github.com/vitest-dev/vitest/commit/c37cdebe)
- **optimizer**: Always respect optimizeDeps even if include/exclude is
overridden  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3488](https://github.com/vitest-dev/vitest/issues/3488)
[<samp>(eb285)</samp>](https://github.com/vitest-dev/vitest/commit/eb285ea0)
- **runner**: Ensure Vitest is deduped  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3489](https://github.com/vitest-dev/vitest/issues/3489)
[<samp>(2deb7)</samp>](https://github.com/vitest-dev/vitest/commit/2deb70ab)
- **ui**: Don't cache coverage assets  -  by
[@&#8203;userquin](https://github.com/userquin) in
[https://github.com/vitest-dev/vitest/issues/3508](https://github.com/vitest-dev/vitest/issues/3508)
[<samp>(952b5)</samp>](https://github.com/vitest-dev/vitest/commit/952b5be6)
- **vite-node**: Circular import stuck  -  by
[@&#8203;Dunqing](https://github.com/Dunqing) in
[https://github.com/vitest-dev/vitest/issues/3480](https://github.com/vitest-dev/vitest/issues/3480)
[<samp>(50f07)</samp>](https://github.com/vitest-dev/vitest/commit/50f0700d)
- **watch**: Junit reporter fails to re-generate report  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3496](https://github.com/vitest-dev/vitest/issues/3496)
[<samp>(5b73c)</samp>](https://github.com/vitest-dev/vitest/commit/5b73cbf8)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.31.4...v0.32.0)

###
[`v0.31.4`](https://github.com/vitest-dev/vitest/releases/tag/v0.31.4)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.31.3...v0.31.4)

#####    🚀 Features

- Enable experimentalOptimizer  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3413](https://github.com/vitest-dev/vitest/issues/3413)
[<samp>(5a894)</samp>](https://github.com/vitest-dev/vitest/commit/5a894aa2)

#####    🐞 Bug Fixes

- **vite-node**: Deps.inline doesn't work  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3485](https://github.com/vitest-dev/vitest/issues/3485)
[<samp>(be930)</samp>](https://github.com/vitest-dev/vitest/commit/be93032f)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.31.3...v0.31.4)

###
[`v0.31.3`](https://github.com/vitest-dev/vitest/releases/tag/v0.31.3)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.31.2...v0.31.3)

#####    🚀 Features

- Support `VITE_NODE_DEPS_MODULE_DIRECTORIES` from .npmrc  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3471](https://github.com/vitest-dev/vitest/issues/3471)
[<samp>(393bf)</samp>](https://github.com/vitest-dev/vitest/commit/393bf60c)

#####    🐞 Bug Fixes

- **logger**: Print unhandled errors before summary  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3474](https://github.com/vitest-dev/vitest/issues/3474)
[<samp>(4c9a7)</samp>](https://github.com/vitest-dev/vitest/commit/4c9a7d58)
- **runner**: Suite options do not propagate to nested suites (fix:
[#&#8203;3467](https://github.com/vitest-dev/vitest/issues/3467))  - 
by [@&#8203;xsjcTony](https://github.com/xsjcTony) in
[https://github.com/vitest-dev/vitest/issues/3473](https://github.com/vitest-dev/vitest/issues/3473)
and
[https://github.com/vitest-dev/vitest/issues/3467](https://github.com/vitest-dev/vitest/issues/3467)
[<samp>(9fb9d)</samp>](https://github.com/vitest-dev/vitest/commit/9fb9dacb)
- **vite-node**: Clear importers when invalidating module  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3475](https://github.com/vitest-dev/vitest/issues/3475)
[<samp>(add29)</samp>](https://github.com/vitest-dev/vitest/commit/add29c86)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.31.2...v0.31.3)

###
[`v0.31.2`](https://github.com/vitest-dev/vitest/releases/tag/v0.31.2)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.31.1...v0.31.2)

#####    🚀 Features

- Throw error if using inline snapshot inside of `test.each` or
`describe.each`  -  by
[@&#8203;fenghan34](https://github.com/fenghan34) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3360](https://github.com/vitest-dev/vitest/issues/3360)
[<samp>(7c2f7)</samp>](https://github.com/vitest-dev/vitest/commit/7c2f7088)
- Pass down meta information to Node.js process  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) and
[@&#8203;dammy001](https://github.com/dammy001) in
[https://github.com/vitest-dev/vitest/issues/3449](https://github.com/vitest-dev/vitest/issues/3449)
[<samp>(e39ad)</samp>](https://github.com/vitest-dev/vitest/commit/e39adea8)
- **coverage**: Add `reportOnFailure` option  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3453](https://github.com/vitest-dev/vitest/issues/3453)
[<samp>(1988f)</samp>](https://github.com/vitest-dev/vitest/commit/1988fcb4)
- **dev**: Add moduleDirectories option to the vitest config  -  by
[@&#8203;fooddilsn](https://github.com/fooddilsn) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3337](https://github.com/vitest-dev/vitest/issues/3337)
[<samp>(b3602)</samp>](https://github.com/vitest-dev/vitest/commit/b3602bcc)

#####    🐞 Bug Fixes

- Don't print empty diff  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3437](https://github.com/vitest-dev/vitest/issues/3437)
[<samp>(32b53)</samp>](https://github.com/vitest-dev/vitest/commit/32b5361f)
- Don't restore methods in automocked dependencies  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3438](https://github.com/vitest-dev/vitest/issues/3438)
[<samp>(d1afd)</samp>](https://github.com/vitest-dev/vitest/commit/d1afd262)
- Dot reporter scrollback buffer spam  -  by
[@&#8203;gtm-nayan](https://github.com/gtm-nayan) in
[https://github.com/vitest-dev/vitest/issues/3415](https://github.com/vitest-dev/vitest/issues/3415)
[<samp>(e6792)</samp>](https://github.com/vitest-dev/vitest/commit/e6792a94)
- Gracefully exit when first `SIGINT` is received  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3407](https://github.com/vitest-dev/vitest/issues/3407)
[<samp>(a2cc2)</samp>](https://github.com/vitest-dev/vitest/commit/a2cc2b38)
- `rejects` & `resolves` breaks with thenable objects  -  by
[@&#8203;fenghan34](https://github.com/fenghan34) in
[https://github.com/vitest-dev/vitest/issues/3456](https://github.com/vitest-dev/vitest/issues/3456)
[<samp>(4e996)</samp>](https://github.com/vitest-dev/vitest/commit/4e996ae5)
- Prevent `birpc` timeouts when `Math.random` mock is not restored  - 
by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3460](https://github.com/vitest-dev/vitest/issues/3460)
[<samp>(cd5d5)</samp>](https://github.com/vitest-dev/vitest/commit/cd5d58b7)
- Assertion diff message now handle non writable property correctly  - 
by [@&#8203;PCreations](https://github.com/PCreations) in
[https://github.com/vitest-dev/vitest/issues/3422](https://github.com/vitest-dev/vitest/issues/3422)
[<samp>(f75ab)</samp>](https://github.com/vitest-dev/vitest/commit/f75ab650)
- Extend logging of process timeout errors  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3452](https://github.com/vitest-dev/vitest/issues/3452)
[<samp>(42643)</samp>](https://github.com/vitest-dev/vitest/commit/42643904)
- Support requiring files with `less` extension  -  by
[@&#8203;rluvaton](https://github.com/rluvaton) in
[https://github.com/vitest-dev/vitest/issues/3465](https://github.com/vitest-dev/vitest/issues/3465)
[<samp>(4d045)</samp>](https://github.com/vitest-dev/vitest/commit/4d045695)
-   **cli**:
- Improve colors used when erroring  -  by
[@&#8203;ghiscoding](https://github.com/ghiscoding) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3349](https://github.com/vitest-dev/vitest/issues/3349)
[<samp>(16681)</samp>](https://github.com/vitest-dev/vitest/commit/16681791)
-   **runner**:
- Suite timeout does not take effect  -  by
[@&#8203;btea](https://github.com/btea) in
[https://github.com/vitest-dev/vitest/issues/3455](https://github.com/vitest-dev/vitest/issues/3455)
[<samp>(82547)</samp>](https://github.com/vitest-dev/vitest/commit/82547376)
-   **spy**:
- Don't print received calls if there are no calls  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3405](https://github.com/vitest-dev/vitest/issues/3405)
[<samp>(41e11)</samp>](https://github.com/vitest-dev/vitest/commit/41e11dad)
-   **typecheck**:
- Show tsc errors not related to test files  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3441](https://github.com/vitest-dev/vitest/issues/3441)
[<samp>(a1da5)</samp>](https://github.com/vitest-dev/vitest/commit/a1da5714)
-   **types**:
- Fix `PartialMock` with async TReturns  -  by
[@&#8203;ghry5](https://github.com/ghry5) in
[https://github.com/vitest-dev/vitest/issues/3462](https://github.com/vitest-dev/vitest/issues/3462)
[<samp>(b664d)</samp>](https://github.com/vitest-dev/vitest/commit/b664d42c)
-   **vite-node**:
- Circular import stuck  -  by
[@&#8203;Dunqing](https://github.com/Dunqing) in
[https://github.com/vitest-dev/vitest/issues/3418](https://github.com/vitest-dev/vitest/issues/3418)
[<samp>(632ee)</samp>](https://github.com/vitest-dev/vitest/commit/632eef40)
- Coerce to string in import(dep)  -  by
[@&#8203;jcbhmr](https://github.com/jcbhmr) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3430](https://github.com/vitest-dev/vitest/issues/3430)
[<samp>(b72eb)</samp>](https://github.com/vitest-dev/vitest/commit/b72ebdb9)
- Don't remove sourcemap string in source code  -  by
[@&#8203;rxliuli](https://github.com/rxliuli) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/2918](https://github.com/vitest-dev/vitest/issues/2918)
and
[https://github.com/vitest-dev/vitest/issues/3379](https://github.com/vitest-dev/vitest/issues/3379)
[<samp>(02dc9)</samp>](https://github.com/vitest-dev/vitest/commit/02dc9ea7)
- Don't externalize "dist" by default  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3446](https://github.com/vitest-dev/vitest/issues/3446)
[<samp>(306b2)</samp>](https://github.com/vitest-dev/vitest/commit/306b2337)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.31.1...v0.31.2)

###
[`v0.31.1`](https://github.com/vitest-dev/vitest/releases/tag/v0.31.1)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.31.0...v0.31.1)

#####    🚀 Features

- **watch**: Press `r` should rerun current pattern tests  -  by
[@&#8203;Dunqing](https://github.com/Dunqing) and
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3305](https://github.com/vitest-dev/vitest/issues/3305)
[<samp>(69d27)</samp>](https://github.com/vitest-dev/vitest/commit/69d27117)

#####    🐞 Bug Fixes

- Make sure thrown error is an object  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3298](https://github.com/vitest-dev/vitest/issues/3298)
[<samp>(a93be)</samp>](https://github.com/vitest-dev/vitest/commit/a93be56c)
- Remove duplicate type  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3303](https://github.com/vitest-dev/vitest/issues/3303)
[<samp>(5382e)</samp>](https://github.com/vitest-dev/vitest/commit/5382e8b6)
- Throw an error, if tests are collected with a different vitest version
 -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3301](https://github.com/vitest-dev/vitest/issues/3301)
[<samp>(708b1)</samp>](https://github.com/vitest-dev/vitest/commit/708b10fe)
- Support application/x-gzip metadata in html report  -  by
[@&#8203;mzanelee](https://github.com/mzanelee) and **Michael Lee** in
[https://github.com/vitest-dev/vitest/issues/3333](https://github.com/vitest-dev/vitest/issues/3333)
[<samp>(5bf7e)</samp>](https://github.com/vitest-dev/vitest/commit/5bf7eb6e)
- Correctly restore vi.fn implementation  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3341](https://github.com/vitest-dev/vitest/issues/3341)
[<samp>(2aff8)</samp>](https://github.com/vitest-dev/vitest/commit/2aff8c5f)
- Display error message correctly  -  by
[@&#8203;btea](https://github.com/btea) in
[https://github.com/vitest-dev/vitest/issues/3314](https://github.com/vitest-dev/vitest/issues/3314)
[<samp>(a5b3d)</samp>](https://github.com/vitest-dev/vitest/commit/a5b3d78e)
- Exclude `cwd` from test name filter  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3353](https://github.com/vitest-dev/vitest/issues/3353)
[<samp>(324a9)</samp>](https://github.com/vitest-dev/vitest/commit/324a9b54)
- Check error type before modifying it  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3385](https://github.com/vitest-dev/vitest/issues/3385)
[<samp>(c44d9)</samp>](https://github.com/vitest-dev/vitest/commit/c44d9912)
- `toMatchInlineSnapshot` fails when file path includes parentheses  - 
by [@&#8203;pacexy](https://github.com/pacexy) in
[https://github.com/vitest-dev/vitest/issues/3370](https://github.com/vitest-dev/vitest/issues/3370)
and
[https://github.com/vitest-dev/vitest/issues/3371](https://github.com/vitest-dev/vitest/issues/3371)
[<samp>(dcf13)</samp>](https://github.com/vitest-dev/vitest/commit/dcf1346a)
- Stop spying on a method, when it's restored  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3386](https://github.com/vitest-dev/vitest/issues/3386)
[<samp>(2cb1a)</samp>](https://github.com/vitest-dev/vitest/commit/2cb1a15a)
- Test repeats  -  by
[@&#8203;fenghan34](https://github.com/fenghan34) in
[https://github.com/vitest-dev/vitest/issues/3369](https://github.com/vitest-dev/vitest/issues/3369)
[<samp>(fb8fc)</samp>](https://github.com/vitest-dev/vitest/commit/fb8fc7ab)
-   **browser**:
- Throw an error if test failed to load  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3390](https://github.com/vitest-dev/vitest/issues/3390)
[<samp>(b354b)</samp>](https://github.com/vitest-dev/vitest/commit/b354bc1c)
- Keep default export when rewriting exports  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3389](https://github.com/vitest-dev/vitest/issues/3389)
[<samp>(6501d)</samp>](https://github.com/vitest-dev/vitest/commit/6501d2e3)
-   **cli**:
- Improve cac errors when mixing boolean and dot notation  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3302](https://github.com/vitest-dev/vitest/issues/3302)
[<samp>(93fbd)</samp>](https://github.com/vitest-dev/vitest/commit/93fbd02d)
-   **reporter**:
- Prevent deleting test reports stored in coverage directory  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3331](https://github.com/vitest-dev/vitest/issues/3331)
[<samp>(ddbba)</samp>](https://github.com/vitest-dev/vitest/commit/ddbba396)
-   **typecheck**:
- Correctly resolve custom tsconfig path  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3342](https://github.com/vitest-dev/vitest/issues/3342)
[<samp>(c53ae)</samp>](https://github.com/vitest-dev/vitest/commit/c53ae079)
-   **vite-node**:
- Allow returning id not wrapped in promise  -  by
[@&#8203;danielroe](https://github.com/danielroe) in
[https://github.com/vitest-dev/vitest/issues/3312](https://github.com/vitest-dev/vitest/issues/3312)
[<samp>(9836c)</samp>](https://github.com/vitest-dev/vitest/commit/9836ccb4)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.31.0...v0.31.1)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/creatorsgarten/contentsgarten).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMTAuMCIsInVwZGF0ZWRJblZlciI6IjM1LjExMC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate bot referenced this pull request in Unleash/unleash Jun 9, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [vitest](https://github.com/vitest-dev/vitest) | [`0.31.1` ->
`0.31.4`](https://renovatebot.com/diffs/npm/vitest/0.31.1/0.31.4) |
[![age](https://badges.renovateapi.com/packages/npm/vitest/0.31.4/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/vitest/0.31.4/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/vitest/0.31.4/compatibility-slim/0.31.1)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/vitest/0.31.4/confidence-slim/0.31.1)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>vitest-dev/vitest</summary>

###
[`v0.31.4`](https://github.com/vitest-dev/vitest/releases/tag/v0.31.4)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.31.3...v0.31.4)

#####    🚀 Features

- Enable experimentalOptimizer  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3413](https://github.com/vitest-dev/vitest/issues/3413)
[<samp>(5a894)</samp>](https://github.com/vitest-dev/vitest/commit/5a894aa2)

#####    🐞 Bug Fixes

- **vite-node**: Deps.inline doesn't work  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3485](https://github.com/vitest-dev/vitest/issues/3485)
[<samp>(be930)</samp>](https://github.com/vitest-dev/vitest/commit/be93032f)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.31.3...v0.31.4)

###
[`v0.31.3`](https://github.com/vitest-dev/vitest/releases/tag/v0.31.3)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.31.2...v0.31.3)

#####    🚀 Features

- Support `VITE_NODE_DEPS_MODULE_DIRECTORIES` from .npmrc  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3471](https://github.com/vitest-dev/vitest/issues/3471)
[<samp>(393bf)</samp>](https://github.com/vitest-dev/vitest/commit/393bf60c)

#####    🐞 Bug Fixes

- **logger**: Print unhandled errors before summary  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3474](https://github.com/vitest-dev/vitest/issues/3474)
[<samp>(4c9a7)</samp>](https://github.com/vitest-dev/vitest/commit/4c9a7d58)
- **runner**: Suite options do not propagate to nested suites (fix:
[#&#8203;3467](https://github.com/vitest-dev/vitest/issues/3467))  - 
by [@&#8203;xsjcTony](https://github.com/xsjcTony) in
[https://github.com/vitest-dev/vitest/issues/3473](https://github.com/vitest-dev/vitest/issues/3473)
and
[https://github.com/vitest-dev/vitest/issues/3467](https://github.com/vitest-dev/vitest/issues/3467)
[<samp>(9fb9d)</samp>](https://github.com/vitest-dev/vitest/commit/9fb9dacb)
- **vite-node**: Clear importers when invalidating module  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3475](https://github.com/vitest-dev/vitest/issues/3475)
[<samp>(add29)</samp>](https://github.com/vitest-dev/vitest/commit/add29c86)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.31.2...v0.31.3)

###
[`v0.31.2`](https://github.com/vitest-dev/vitest/releases/tag/v0.31.2)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.31.1...v0.31.2)

#####    🚀 Features

- Throw error if using inline snapshot inside of `test.each` or
`describe.each`  -  by
[@&#8203;fenghan34](https://github.com/fenghan34) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3360](https://github.com/vitest-dev/vitest/issues/3360)
[<samp>(7c2f7)</samp>](https://github.com/vitest-dev/vitest/commit/7c2f7088)
- Pass down meta information to Node.js process  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) and
[@&#8203;dammy001](https://github.com/dammy001) in
[https://github.com/vitest-dev/vitest/issues/3449](https://github.com/vitest-dev/vitest/issues/3449)
[<samp>(e39ad)</samp>](https://github.com/vitest-dev/vitest/commit/e39adea8)
- **coverage**: Add `reportOnFailure` option  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3453](https://github.com/vitest-dev/vitest/issues/3453)
[<samp>(1988f)</samp>](https://github.com/vitest-dev/vitest/commit/1988fcb4)
- **dev**: Add moduleDirectories option to the vitest config  -  by
[@&#8203;fooddilsn](https://github.com/fooddilsn) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3337](https://github.com/vitest-dev/vitest/issues/3337)
[<samp>(b3602)</samp>](https://github.com/vitest-dev/vitest/commit/b3602bcc)

#####    🐞 Bug Fixes

- Don't print empty diff  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3437](https://github.com/vitest-dev/vitest/issues/3437)
[<samp>(32b53)</samp>](https://github.com/vitest-dev/vitest/commit/32b5361f)
- Don't restore methods in automocked dependencies  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3438](https://github.com/vitest-dev/vitest/issues/3438)
[<samp>(d1afd)</samp>](https://github.com/vitest-dev/vitest/commit/d1afd262)
- Dot reporter scrollback buffer spam  -  by
[@&#8203;gtm-nayan](https://github.com/gtm-nayan) in
[https://github.com/vitest-dev/vitest/issues/3415](https://github.com/vitest-dev/vitest/issues/3415)
[<samp>(e6792)</samp>](https://github.com/vitest-dev/vitest/commit/e6792a94)
- Gracefully exit when first `SIGINT` is received  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3407](https://github.com/vitest-dev/vitest/issues/3407)
[<samp>(a2cc2)</samp>](https://github.com/vitest-dev/vitest/commit/a2cc2b38)
- `rejects` & `resolves` breaks with thenable objects  -  by
[@&#8203;fenghan34](https://github.com/fenghan34) in
[https://github.com/vitest-dev/vitest/issues/3456](https://github.com/vitest-dev/vitest/issues/3456)
[<samp>(4e996)</samp>](https://github.com/vitest-dev/vitest/commit/4e996ae5)
- Prevent `birpc` timeouts when `Math.random` mock is not restored  - 
by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3460](https://github.com/vitest-dev/vitest/issues/3460)
[<samp>(cd5d5)</samp>](https://github.com/vitest-dev/vitest/commit/cd5d58b7)
- Assertion diff message now handle non writable property correctly  - 
by [@&#8203;PCreations](https://github.com/PCreations) in
[https://github.com/vitest-dev/vitest/issues/3422](https://github.com/vitest-dev/vitest/issues/3422)
[<samp>(f75ab)</samp>](https://github.com/vitest-dev/vitest/commit/f75ab650)
- Extend logging of process timeout errors  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3452](https://github.com/vitest-dev/vitest/issues/3452)
[<samp>(42643)</samp>](https://github.com/vitest-dev/vitest/commit/42643904)
- Support requiring files with `less` extension  -  by
[@&#8203;rluvaton](https://github.com/rluvaton) in
[https://github.com/vitest-dev/vitest/issues/3465](https://github.com/vitest-dev/vitest/issues/3465)
[<samp>(4d045)</samp>](https://github.com/vitest-dev/vitest/commit/4d045695)
-   **cli**:
- Improve colors used when erroring  -  by
[@&#8203;ghiscoding](https://github.com/ghiscoding) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3349](https://github.com/vitest-dev/vitest/issues/3349)
[<samp>(16681)</samp>](https://github.com/vitest-dev/vitest/commit/16681791)
-   **runner**:
- Suite timeout does not take effect  -  by
[@&#8203;btea](https://github.com/btea) in
[https://github.com/vitest-dev/vitest/issues/3455](https://github.com/vitest-dev/vitest/issues/3455)
[<samp>(82547)</samp>](https://github.com/vitest-dev/vitest/commit/82547376)
-   **spy**:
- Don't print received calls if there are no calls  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3405](https://github.com/vitest-dev/vitest/issues/3405)
[<samp>(41e11)</samp>](https://github.com/vitest-dev/vitest/commit/41e11dad)
-   **typecheck**:
- Show tsc errors not related to test files  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3441](https://github.com/vitest-dev/vitest/issues/3441)
[<samp>(a1da5)</samp>](https://github.com/vitest-dev/vitest/commit/a1da5714)
-   **types**:
- Fix `PartialMock` with async TReturns  -  by
[@&#8203;ghry5](https://github.com/ghry5) in
[https://github.com/vitest-dev/vitest/issues/3462](https://github.com/vitest-dev/vitest/issues/3462)
[<samp>(b664d)</samp>](https://github.com/vitest-dev/vitest/commit/b664d42c)
-   **vite-node**:
- Circular import stuck  -  by
[@&#8203;Dunqing](https://github.com/Dunqing) in
[https://github.com/vitest-dev/vitest/issues/3418](https://github.com/vitest-dev/vitest/issues/3418)
[<samp>(632ee)</samp>](https://github.com/vitest-dev/vitest/commit/632eef40)
- Coerce to string in import(dep)  -  by
[@&#8203;jcbhmr](https://github.com/jcbhmr) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3430](https://github.com/vitest-dev/vitest/issues/3430)
[<samp>(b72eb)</samp>](https://github.com/vitest-dev/vitest/commit/b72ebdb9)
- Don't remove sourcemap string in source code  -  by
[@&#8203;rxliuli](https://github.com/rxliuli) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/2918](https://github.com/vitest-dev/vitest/issues/2918)
and
[https://github.com/vitest-dev/vitest/issues/3379](https://github.com/vitest-dev/vitest/issues/3379)
[<samp>(02dc9)</samp>](https://github.com/vitest-dev/vitest/commit/02dc9ea7)
- Don't externalize "dist" by default  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3446](https://github.com/vitest-dev/vitest/issues/3446)
[<samp>(306b2)</samp>](https://github.com/vitest-dev/vitest/commit/306b2337)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.31.1...v0.31.2)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/Unleash/unleash).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMTAuMCIsInVwZGF0ZWRJblZlciI6IjM1LjExMC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate bot referenced this pull request in JoshuaKGoldberg/ts-api-utils Jun 10, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [vitest](https://github.com/vitest-dev/vitest) | [`^0.31.0` ->
`^0.32.0`](https://renovatebot.com/diffs/npm/vitest/0.31.0/0.32.0) |
[![age](https://badges.renovateapi.com/packages/npm/vitest/0.32.0/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/vitest/0.32.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/vitest/0.32.0/compatibility-slim/0.31.0)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/vitest/0.32.0/confidence-slim/0.31.0)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>vitest-dev/vitest</summary>

###
[`v0.32.0`](https://github.com/vitest-dev/vitest/releases/tag/v0.32.0)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.31.4...v0.32.0)

#####    🚨 Breaking Changes

- Throw an error, if the module cannot be resolved  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3307](https://github.com/vitest-dev/vitest/issues/3307)
[<samp>(1ad63)</samp>](https://github.com/vitest-dev/vitest/commit/1ad63b0c)
- Vitest used to fall back to the original import when it could not
resolve it to the file path or the virtual module. This leads to
hard-to-find module graph mismatches if you had incorrect alias or
relied on relative imports to be resolved to the project root (which is
usual behavior in TypeScript) because the code accidentally "worked".
With this release, Vitest will now throw an error if it cannot resolve
the module - there are possible edge cases that are not covered yet, so
if you have any problems with this, please open a separate issue with
reproduction.
- Improve globs  -  by
[@&#8203;nickmccurdy](https://github.com/nickmccurdy) in
[https://github.com/vitest-dev/vitest/issues/3392](https://github.com/vitest-dev/vitest/issues/3392)
[<samp>(19ecc)</samp>](https://github.com/vitest-dev/vitest/commit/19ecc6c7)
- Vitest now has glob patterns similar to Jest for better compatibility.
It's possible that some files will be considered test files when
previously they were not. For example, Vitest now considers `test.js` to
be a test file. Also any file in `__tests__` is now considered to be a
test, not just files with `test` or `spec` suffix.
- Add `@vitest/coverage-v8` package  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3339](https://github.com/vitest-dev/vitest/issues/3339)
[<samp>(82112)</samp>](https://github.com/vitest-dev/vitest/commit/821126f1)
- Vitest now uses v8 code coverage directly for better performance.
`@vitest/coverage-c8` is deprecated as Vitest no longer uses c8 package
for coverage output. It will not be updated anymore, and Vitest will
fail in the next version if the user has `c8` as their coverage
provider. Please, install the new `@vitest/coverage-v8` package if you
previously used `@vitest/coverage-c8`.
- **mocker**: Don't restore mock to the original if the module is
automocked  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3518](https://github.com/vitest-dev/vitest/issues/3518)
[<samp>(c1004)</samp>](https://github.com/vitest-dev/vitest/commit/c1004e14)
- `spy.mockRestore` on auto-mocked named exports will no longer restore
their implementation to the actual function. This behavior better
matches what Jest does.

#####    🚀 Features

- Support ssr optimizer  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3490](https://github.com/vitest-dev/vitest/issues/3490)
[<samp>(89842)</samp>](https://github.com/vitest-dev/vitest/commit/898422b0)
- Image type add apng  -  by [@&#8203;btea](https://github.com/btea)
in
[https://github.com/vitest-dev/vitest/issues/3498](https://github.com/vitest-dev/vitest/issues/3498)
[<samp>(a53c2)</samp>](https://github.com/vitest-dev/vitest/commit/a53c2151)
- **expect**: Support `expect.soft`  -  by
[@&#8203;Dunqing](https://github.com/Dunqing) in
[https://github.com/vitest-dev/vitest/issues/3507](https://github.com/vitest-dev/vitest/issues/3507)
[<samp>(7c687)</samp>](https://github.com/vitest-dev/vitest/commit/7c687ada)
- **runner**: Support using function/class as `describe`/`test` name  - 
by [@&#8203;fenghan34](https://github.com/fenghan34) in
[https://github.com/vitest-dev/vitest/issues/3497](https://github.com/vitest-dev/vitest/issues/3497)
[<samp>(15253)</samp>](https://github.com/vitest-dev/vitest/commit/15253890)

#####    🐞 Bug Fixes

- The cli option is passed to coverage.exclude  -  by
[@&#8203;btea](https://github.com/btea) in
[https://github.com/vitest-dev/vitest/issues/3506](https://github.com/vitest-dev/vitest/issues/3506)
[<samp>(c37cd)</samp>](https://github.com/vitest-dev/vitest/commit/c37cdebe)
- **optimizer**: Always respect optimizeDeps even if include/exclude is
overridden  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3488](https://github.com/vitest-dev/vitest/issues/3488)
[<samp>(eb285)</samp>](https://github.com/vitest-dev/vitest/commit/eb285ea0)
- **runner**: Ensure Vitest is deduped  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3489](https://github.com/vitest-dev/vitest/issues/3489)
[<samp>(2deb7)</samp>](https://github.com/vitest-dev/vitest/commit/2deb70ab)
- **ui**: Don't cache coverage assets  -  by
[@&#8203;userquin](https://github.com/userquin) in
[https://github.com/vitest-dev/vitest/issues/3508](https://github.com/vitest-dev/vitest/issues/3508)
[<samp>(952b5)</samp>](https://github.com/vitest-dev/vitest/commit/952b5be6)
- **vite-node**: Circular import stuck  -  by
[@&#8203;Dunqing](https://github.com/Dunqing) in
[https://github.com/vitest-dev/vitest/issues/3480](https://github.com/vitest-dev/vitest/issues/3480)
[<samp>(50f07)</samp>](https://github.com/vitest-dev/vitest/commit/50f0700d)
- **watch**: Junit reporter fails to re-generate report  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3496](https://github.com/vitest-dev/vitest/issues/3496)
[<samp>(5b73c)</samp>](https://github.com/vitest-dev/vitest/commit/5b73cbf8)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.31.4...v0.32.0)

###
[`v0.31.4`](https://github.com/vitest-dev/vitest/releases/tag/v0.31.4)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.31.3...v0.31.4)

#####    🚀 Features

- Enable experimentalOptimizer  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3413](https://github.com/vitest-dev/vitest/issues/3413)
[<samp>(5a894)</samp>](https://github.com/vitest-dev/vitest/commit/5a894aa2)

#####    🐞 Bug Fixes

- **vite-node**: Deps.inline doesn't work  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3485](https://github.com/vitest-dev/vitest/issues/3485)
[<samp>(be930)</samp>](https://github.com/vitest-dev/vitest/commit/be93032f)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.31.3...v0.31.4)

###
[`v0.31.3`](https://github.com/vitest-dev/vitest/releases/tag/v0.31.3)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.31.2...v0.31.3)

#####    🚀 Features

- Support `VITE_NODE_DEPS_MODULE_DIRECTORIES` from .npmrc  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3471](https://github.com/vitest-dev/vitest/issues/3471)
[<samp>(393bf)</samp>](https://github.com/vitest-dev/vitest/commit/393bf60c)

#####    🐞 Bug Fixes

- **logger**: Print unhandled errors before summary  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3474](https://github.com/vitest-dev/vitest/issues/3474)
[<samp>(4c9a7)</samp>](https://github.com/vitest-dev/vitest/commit/4c9a7d58)
- **runner**: Suite options do not propagate to nested suites (fix:
[#&#8203;3467](https://github.com/vitest-dev/vitest/issues/3467))  - 
by [@&#8203;xsjcTony](https://github.com/xsjcTony) in
[https://github.com/vitest-dev/vitest/issues/3473](https://github.com/vitest-dev/vitest/issues/3473)
and
[https://github.com/vitest-dev/vitest/issues/3467](https://github.com/vitest-dev/vitest/issues/3467)
[<samp>(9fb9d)</samp>](https://github.com/vitest-dev/vitest/commit/9fb9dacb)
- **vite-node**: Clear importers when invalidating module  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3475](https://github.com/vitest-dev/vitest/issues/3475)
[<samp>(add29)</samp>](https://github.com/vitest-dev/vitest/commit/add29c86)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.31.2...v0.31.3)

###
[`v0.31.2`](https://github.com/vitest-dev/vitest/releases/tag/v0.31.2)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.31.1...v0.31.2)

#####    🚀 Features

- Throw error if using inline snapshot inside of `test.each` or
`describe.each`  -  by
[@&#8203;fenghan34](https://github.com/fenghan34) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3360](https://github.com/vitest-dev/vitest/issues/3360)
[<samp>(7c2f7)</samp>](https://github.com/vitest-dev/vitest/commit/7c2f7088)
- Pass down meta information to Node.js process  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) and
[@&#8203;dammy001](https://github.com/dammy001) in
[https://github.com/vitest-dev/vitest/issues/3449](https://github.com/vitest-dev/vitest/issues/3449)
[<samp>(e39ad)</samp>](https://github.com/vitest-dev/vitest/commit/e39adea8)
- **coverage**: Add `reportOnFailure` option  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3453](https://github.com/vitest-dev/vitest/issues/3453)
[<samp>(1988f)</samp>](https://github.com/vitest-dev/vitest/commit/1988fcb4)
- **dev**: Add moduleDirectories option to the vitest config  -  by
[@&#8203;fooddilsn](https://github.com/fooddilsn) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3337](https://github.com/vitest-dev/vitest/issues/3337)
[<samp>(b3602)</samp>](https://github.com/vitest-dev/vitest/commit/b3602bcc)

#####    🐞 Bug Fixes

- Don't print empty diff  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3437](https://github.com/vitest-dev/vitest/issues/3437)
[<samp>(32b53)</samp>](https://github.com/vitest-dev/vitest/commit/32b5361f)
- Don't restore methods in automocked dependencies  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3438](https://github.com/vitest-dev/vitest/issues/3438)
[<samp>(d1afd)</samp>](https://github.com/vitest-dev/vitest/commit/d1afd262)
- Dot reporter scrollback buffer spam  -  by
[@&#8203;gtm-nayan](https://github.com/gtm-nayan) in
[https://github.com/vitest-dev/vitest/issues/3415](https://github.com/vitest-dev/vitest/issues/3415)
[<samp>(e6792)</samp>](https://github.com/vitest-dev/vitest/commit/e6792a94)
- Gracefully exit when first `SIGINT` is received  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3407](https://github.com/vitest-dev/vitest/issues/3407)
[<samp>(a2cc2)</samp>](https://github.com/vitest-dev/vitest/commit/a2cc2b38)
- `rejects` & `resolves` breaks with thenable objects  -  by
[@&#8203;fenghan34](https://github.com/fenghan34) in
[https://github.com/vitest-dev/vitest/issues/3456](https://github.com/vitest-dev/vitest/issues/3456)
[<samp>(4e996)</samp>](https://github.com/vitest-dev/vitest/commit/4e996ae5)
- Prevent `birpc` timeouts when `Math.random` mock is not restored  - 
by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3460](https://github.com/vitest-dev/vitest/issues/3460)
[<samp>(cd5d5)</samp>](https://github.com/vitest-dev/vitest/commit/cd5d58b7)
- Assertion diff message now handle non writable property correctly  - 
by [@&#8203;PCreations](https://github.com/PCreations) in
[https://github.com/vitest-dev/vitest/issues/3422](https://github.com/vitest-dev/vitest/issues/3422)
[<samp>(f75ab)</samp>](https://github.com/vitest-dev/vitest/commit/f75ab650)
- Extend logging of process timeout errors  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3452](https://github.com/vitest-dev/vitest/issues/3452)
[<samp>(42643)</samp>](https://github.com/vitest-dev/vitest/commit/42643904)
- Support requiring files with `less` extension  -  by
[@&#8203;rluvaton](https://github.com/rluvaton) in
[https://github.com/vitest-dev/vitest/issues/3465](https://github.com/vitest-dev/vitest/issues/3465)
[<samp>(4d045)</samp>](https://github.com/vitest-dev/vitest/commit/4d045695)
-   **cli**:
- Improve colors used when erroring  -  by
[@&#8203;ghiscoding](https://github.com/ghiscoding) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3349](https://github.com/vitest-dev/vitest/issues/3349)
[<samp>(16681)</samp>](https://github.com/vitest-dev/vitest/commit/16681791)
-   **runner**:
- Suite timeout does not take effect  -  by
[@&#8203;btea](https://github.com/btea) in
[https://github.com/vitest-dev/vitest/issues/3455](https://github.com/vitest-dev/vitest/issues/3455)
[<samp>(82547)</samp>](https://github.com/vitest-dev/vitest/commit/82547376)
-   **spy**:
- Don't print received calls if there are no calls  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3405](https://github.com/vitest-dev/vitest/issues/3405)
[<samp>(41e11)</samp>](https://github.com/vitest-dev/vitest/commit/41e11dad)
-   **typecheck**:
- Show tsc errors not related to test files  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3441](https://github.com/vitest-dev/vitest/issues/3441)
[<samp>(a1da5)</samp>](https://github.com/vitest-dev/vitest/commit/a1da5714)
-   **types**:
- Fix `PartialMock` with async TReturns  -  by
[@&#8203;ghry5](https://github.com/ghry5) in
[https://github.com/vitest-dev/vitest/issues/3462](https://github.com/vitest-dev/vitest/issues/3462)
[<samp>(b664d)</samp>](https://github.com/vitest-dev/vitest/commit/b664d42c)
-   **vite-node**:
- Circular import stuck  -  by
[@&#8203;Dunqing](https://github.com/Dunqing) in
[https://github.com/vitest-dev/vitest/issues/3418](https://github.com/vitest-dev/vitest/issues/3418)
[<samp>(632ee)</samp>](https://github.com/vitest-dev/vitest/commit/632eef40)
- Coerce to string in import(dep)  -  by
[@&#8203;jcbhmr](https://github.com/jcbhmr) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3430](https://github.com/vitest-dev/vitest/issues/3430)
[<samp>(b72eb)</samp>](https://github.com/vitest-dev/vitest/commit/b72ebdb9)
- Don't remove sourcemap string in source code  -  by
[@&#8203;rxliuli](https://github.com/rxliuli) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/2918](https://github.com/vitest-dev/vitest/issues/2918)
and
[https://github.com/vitest-dev/vitest/issues/3379](https://github.com/vitest-dev/vitest/issues/3379)
[<samp>(02dc9)</samp>](https://github.com/vitest-dev/vitest/commit/02dc9ea7)
- Don't externalize "dist" by default  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3446](https://github.com/vitest-dev/vitest/issues/3446)
[<samp>(306b2)</samp>](https://github.com/vitest-dev/vitest/commit/306b2337)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.31.1...v0.31.2)

###
[`v0.31.1`](https://github.com/vitest-dev/vitest/releases/tag/v0.31.1)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.31.0...v0.31.1)

#####    🚀 Features

- **watch**: Press `r` should rerun current pattern tests  -  by
[@&#8203;Dunqing](https://github.com/Dunqing) and
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3305](https://github.com/vitest-dev/vitest/issues/3305)
[<samp>(69d27)</samp>](https://github.com/vitest-dev/vitest/commit/69d27117)

#####    🐞 Bug Fixes

- Make sure thrown error is an object  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3298](https://github.com/vitest-dev/vitest/issues/3298)
[<samp>(a93be)</samp>](https://github.com/vitest-dev/vitest/commit/a93be56c)
- Remove duplicate type  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3303](https://github.com/vitest-dev/vitest/issues/3303)
[<samp>(5382e)</samp>](https://github.com/vitest-dev/vitest/commit/5382e8b6)
- Throw an error, if tests are collected with a different vitest version
 -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3301](https://github.com/vitest-dev/vitest/issues/3301)
[<samp>(708b1)</samp>](https://github.com/vitest-dev/vitest/commit/708b10fe)
- Support application/x-gzip metadata in html report  -  by
[@&#8203;mzanelee](https://github.com/mzanelee) and **Michael Lee** in
[https://github.com/vitest-dev/vitest/issues/3333](https://github.com/vitest-dev/vitest/issues/3333)
[<samp>(5bf7e)</samp>](https://github.com/vitest-dev/vitest/commit/5bf7eb6e)
- Correctly restore vi.fn implementation  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3341](https://github.com/vitest-dev/vitest/issues/3341)
[<samp>(2aff8)</samp>](https://github.com/vitest-dev/vitest/commit/2aff8c5f)
- Display error message correctly  -  by
[@&#8203;btea](https://github.com/btea) in
[https://github.com/vitest-dev/vitest/issues/3314](https://github.com/vitest-dev/vitest/issues/3314)
[<samp>(a5b3d)</samp>](https://github.com/vitest-dev/vitest/commit/a5b3d78e)
- Exclude `cwd` from test name filter  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3353](https://github.com/vitest-dev/vitest/issues/3353)
[<samp>(324a9)</samp>](https://github.com/vitest-dev/vitest/commit/324a9b54)
- Check error type before modifying it  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3385](https://github.com/vitest-dev/vitest/issues/3385)
[<samp>(c44d9)</samp>](https://github.com/vitest-dev/vitest/commit/c44d9912)
- `toMatchInlineSnapshot` fails when file path includes parentheses  - 
by [@&#8203;pacexy](https://github.com/pacexy) in
[https://github.com/vitest-dev/vitest/issues/3370](https://github.com/vitest-dev/vitest/issues/3370)
and
[https://github.com/vitest-dev/vitest/issues/3371](https://github.com/vitest-dev/vitest/issues/3371)
[<samp>(dcf13)</samp>](https://github.com/vitest-dev/vitest/commit/dcf1346a)
- Stop spying on a method, when it's restored  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3386](https://github.com/vitest-dev/vitest/issues/3386)
[<samp>(2cb1a)</samp>](https://github.com/vitest-dev/vitest/commit/2cb1a15a)
- Test repeats  -  by
[@&#8203;fenghan34](https://github.com/fenghan34) in
[https://github.com/vitest-dev/vitest/issues/3369](https://github.com/vitest-dev/vitest/issues/3369)
[<samp>(fb8fc)</samp>](https://github.com/vitest-dev/vitest/commit/fb8fc7ab)
-   **browser**:
- Throw an error if test failed to load  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3390](https://github.com/vitest-dev/vitest/issues/3390)
[<samp>(b354b)</samp>](https://github.com/vitest-dev/vitest/commit/b354bc1c)
- Keep default export when rewriting exports  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3389](https://github.com/vitest-dev/vitest/issues/3389)
[<samp>(6501d)</samp>](https://github.com/vitest-dev/vitest/commit/6501d2e3)
-   **cli**:
- Improve cac errors when mixing boolean and dot notation  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3302](https://github.com/vitest-dev/vitest/issues/3302)
[<samp>(93fbd)</samp>](https://github.com/vitest-dev/vitest/commit/93fbd02d)
-   **reporter**:
- Prevent deleting test reports stored in coverage directory  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3331](https://github.com/vitest-dev/vitest/issues/3331)
[<samp>(ddbba)</samp>](https://github.com/vitest-dev/vitest/commit/ddbba396)
-   **typecheck**:
- Correctly resolve custom tsconfig path  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3342](https://github.com/vitest-dev/vitest/issues/3342)
[<samp>(c53ae)</samp>](https://github.com/vitest-dev/vitest/commit/c53ae079)
-   **vite-node**:
- Allow returning id not wrapped in promise  -  by
[@&#8203;danielroe](https://github.com/danielroe) in
[https://github.com/vitest-dev/vitest/issues/3312](https://github.com/vitest-dev/vitest/issues/3312)
[<samp>(9836c)</samp>](https://github.com/vitest-dev/vitest/commit/9836ccb4)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.31.0...v0.31.1)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/JoshuaKGoldberg/ts-api-utils).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMTAuMCIsInVwZGF0ZWRJblZlciI6IjM1LjExMC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
fwouts referenced this pull request in fwouts/previewjs Jun 11, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [vitest](https://github.com/vitest-dev/vitest) | [`^0.31.1` ->
`^0.32.0`](https://renovatebot.com/diffs/npm/vitest/0.31.1/0.32.0) |
[![age](https://badges.renovateapi.com/packages/npm/vitest/0.32.0/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/vitest/0.32.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/vitest/0.32.0/compatibility-slim/0.31.1)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/vitest/0.32.0/confidence-slim/0.31.1)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>vitest-dev/vitest</summary>

###
[`v0.32.0`](https://github.com/vitest-dev/vitest/releases/tag/v0.32.0)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.31.4...v0.32.0)

#####    🚨 Breaking Changes

- Throw an error, if the module cannot be resolved  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3307](https://github.com/vitest-dev/vitest/issues/3307)
[<samp>(1ad63)</samp>](https://github.com/vitest-dev/vitest/commit/1ad63b0c)
- Vitest used to fall back to the original import when it could not
resolve it to the file path or the virtual module. This leads to
hard-to-find module graph mismatches if you had incorrect alias or
relied on relative imports to be resolved to the project root (which is
usual behavior in TypeScript) because the code accidentally "worked".
With this release, Vitest will now throw an error if it cannot resolve
the module - there are possible edge cases that are not covered yet, so
if you have any problems with this, please open a separate issue with
reproduction.
- Improve globs  -  by
[@&#8203;nickmccurdy](https://github.com/nickmccurdy) in
[https://github.com/vitest-dev/vitest/issues/3392](https://github.com/vitest-dev/vitest/issues/3392)
[<samp>(19ecc)</samp>](https://github.com/vitest-dev/vitest/commit/19ecc6c7)
- Vitest now has glob patterns similar to Jest for better compatibility.
It's possible that some files will be considered test files when
previously they were not. For example, Vitest now considers `test.js` to
be a test file. Also any file in `__tests__` is now considered to be a
test, not just files with `test` or `spec` suffix.
- Add `@vitest/coverage-v8` package  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3339](https://github.com/vitest-dev/vitest/issues/3339)
[<samp>(82112)</samp>](https://github.com/vitest-dev/vitest/commit/821126f1)
- Vitest now uses v8 code coverage directly for better performance.
`@vitest/coverage-c8` is deprecated as Vitest no longer uses c8 package
for coverage output. It will not be updated anymore, and Vitest will
fail in the next version if the user has `c8` as their coverage
provider. Please, install the new `@vitest/coverage-v8` package if you
previously used `@vitest/coverage-c8`.
- **mocker**: Don't restore mock to the original if the module is
automocked  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3518](https://github.com/vitest-dev/vitest/issues/3518)
[<samp>(c1004)</samp>](https://github.com/vitest-dev/vitest/commit/c1004e14)
- `spy.mockRestore` on auto-mocked named exports will no longer restore
their implementation to the actual function. This behavior better
matches what Jest does.

#####    🚀 Features

- Support ssr optimizer  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3490](https://github.com/vitest-dev/vitest/issues/3490)
[<samp>(89842)</samp>](https://github.com/vitest-dev/vitest/commit/898422b0)
- Image type add apng  -  by [@&#8203;btea](https://github.com/btea)
in
[https://github.com/vitest-dev/vitest/issues/3498](https://github.com/vitest-dev/vitest/issues/3498)
[<samp>(a53c2)</samp>](https://github.com/vitest-dev/vitest/commit/a53c2151)
- **expect**: Support `expect.soft`  -  by
[@&#8203;Dunqing](https://github.com/Dunqing) in
[https://github.com/vitest-dev/vitest/issues/3507](https://github.com/vitest-dev/vitest/issues/3507)
[<samp>(7c687)</samp>](https://github.com/vitest-dev/vitest/commit/7c687ada)
- **runner**: Support using function/class as `describe`/`test` name  - 
by [@&#8203;fenghan34](https://github.com/fenghan34) in
[https://github.com/vitest-dev/vitest/issues/3497](https://github.com/vitest-dev/vitest/issues/3497)
[<samp>(15253)</samp>](https://github.com/vitest-dev/vitest/commit/15253890)

#####    🐞 Bug Fixes

- The cli option is passed to coverage.exclude  -  by
[@&#8203;btea](https://github.com/btea) in
[https://github.com/vitest-dev/vitest/issues/3506](https://github.com/vitest-dev/vitest/issues/3506)
[<samp>(c37cd)</samp>](https://github.com/vitest-dev/vitest/commit/c37cdebe)
- **optimizer**: Always respect optimizeDeps even if include/exclude is
overridden  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3488](https://github.com/vitest-dev/vitest/issues/3488)
[<samp>(eb285)</samp>](https://github.com/vitest-dev/vitest/commit/eb285ea0)
- **runner**: Ensure Vitest is deduped  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3489](https://github.com/vitest-dev/vitest/issues/3489)
[<samp>(2deb7)</samp>](https://github.com/vitest-dev/vitest/commit/2deb70ab)
- **ui**: Don't cache coverage assets  -  by
[@&#8203;userquin](https://github.com/userquin) in
[https://github.com/vitest-dev/vitest/issues/3508](https://github.com/vitest-dev/vitest/issues/3508)
[<samp>(952b5)</samp>](https://github.com/vitest-dev/vitest/commit/952b5be6)
- **vite-node**: Circular import stuck  -  by
[@&#8203;Dunqing](https://github.com/Dunqing) in
[https://github.com/vitest-dev/vitest/issues/3480](https://github.com/vitest-dev/vitest/issues/3480)
[<samp>(50f07)</samp>](https://github.com/vitest-dev/vitest/commit/50f0700d)
- **watch**: Junit reporter fails to re-generate report  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3496](https://github.com/vitest-dev/vitest/issues/3496)
[<samp>(5b73c)</samp>](https://github.com/vitest-dev/vitest/commit/5b73cbf8)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.31.4...v0.32.0)

###
[`v0.31.4`](https://github.com/vitest-dev/vitest/releases/tag/v0.31.4)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.31.3...v0.31.4)

#####    🚀 Features

- Enable experimentalOptimizer  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3413](https://github.com/vitest-dev/vitest/issues/3413)
[<samp>(5a894)</samp>](https://github.com/vitest-dev/vitest/commit/5a894aa2)

#####    🐞 Bug Fixes

- **vite-node**: Deps.inline doesn't work  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3485](https://github.com/vitest-dev/vitest/issues/3485)
[<samp>(be930)</samp>](https://github.com/vitest-dev/vitest/commit/be93032f)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.31.3...v0.31.4)

###
[`v0.31.3`](https://github.com/vitest-dev/vitest/releases/tag/v0.31.3)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.31.2...v0.31.3)

#####    🚀 Features

- Support `VITE_NODE_DEPS_MODULE_DIRECTORIES` from .npmrc  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3471](https://github.com/vitest-dev/vitest/issues/3471)
[<samp>(393bf)</samp>](https://github.com/vitest-dev/vitest/commit/393bf60c)

#####    🐞 Bug Fixes

- **logger**: Print unhandled errors before summary  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3474](https://github.com/vitest-dev/vitest/issues/3474)
[<samp>(4c9a7)</samp>](https://github.com/vitest-dev/vitest/commit/4c9a7d58)
- **runner**: Suite options do not propagate to nested suites (fix:
[#&#8203;3467](https://github.com/vitest-dev/vitest/issues/3467))  - 
by [@&#8203;xsjcTony](https://github.com/xsjcTony) in
[https://github.com/vitest-dev/vitest/issues/3473](https://github.com/vitest-dev/vitest/issues/3473)
and
[https://github.com/vitest-dev/vitest/issues/3467](https://github.com/vitest-dev/vitest/issues/3467)
[<samp>(9fb9d)</samp>](https://github.com/vitest-dev/vitest/commit/9fb9dacb)
- **vite-node**: Clear importers when invalidating module  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3475](https://github.com/vitest-dev/vitest/issues/3475)
[<samp>(add29)</samp>](https://github.com/vitest-dev/vitest/commit/add29c86)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.31.2...v0.31.3)

###
[`v0.31.2`](https://github.com/vitest-dev/vitest/releases/tag/v0.31.2)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.31.1...v0.31.2)

#####    🚀 Features

- Throw error if using inline snapshot inside of `test.each` or
`describe.each`  -  by
[@&#8203;fenghan34](https://github.com/fenghan34) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3360](https://github.com/vitest-dev/vitest/issues/3360)
[<samp>(7c2f7)</samp>](https://github.com/vitest-dev/vitest/commit/7c2f7088)
- Pass down meta information to Node.js process  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) and
[@&#8203;dammy001](https://github.com/dammy001) in
[https://github.com/vitest-dev/vitest/issues/3449](https://github.com/vitest-dev/vitest/issues/3449)
[<samp>(e39ad)</samp>](https://github.com/vitest-dev/vitest/commit/e39adea8)
- **coverage**: Add `reportOnFailure` option  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3453](https://github.com/vitest-dev/vitest/issues/3453)
[<samp>(1988f)</samp>](https://github.com/vitest-dev/vitest/commit/1988fcb4)
- **dev**: Add moduleDirectories option to the vitest config  -  by
[@&#8203;fooddilsn](https://github.com/fooddilsn) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3337](https://github.com/vitest-dev/vitest/issues/3337)
[<samp>(b3602)</samp>](https://github.com/vitest-dev/vitest/commit/b3602bcc)

#####    🐞 Bug Fixes

- Don't print empty diff  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3437](https://github.com/vitest-dev/vitest/issues/3437)
[<samp>(32b53)</samp>](https://github.com/vitest-dev/vitest/commit/32b5361f)
- Don't restore methods in automocked dependencies  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3438](https://github.com/vitest-dev/vitest/issues/3438)
[<samp>(d1afd)</samp>](https://github.com/vitest-dev/vitest/commit/d1afd262)
- Dot reporter scrollback buffer spam  -  by
[@&#8203;gtm-nayan](https://github.com/gtm-nayan) in
[https://github.com/vitest-dev/vitest/issues/3415](https://github.com/vitest-dev/vitest/issues/3415)
[<samp>(e6792)</samp>](https://github.com/vitest-dev/vitest/commit/e6792a94)
- Gracefully exit when first `SIGINT` is received  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3407](https://github.com/vitest-dev/vitest/issues/3407)
[<samp>(a2cc2)</samp>](https://github.com/vitest-dev/vitest/commit/a2cc2b38)
- `rejects` & `resolves` breaks with thenable objects  -  by
[@&#8203;fenghan34](https://github.com/fenghan34) in
[https://github.com/vitest-dev/vitest/issues/3456](https://github.com/vitest-dev/vitest/issues/3456)
[<samp>(4e996)</samp>](https://github.com/vitest-dev/vitest/commit/4e996ae5)
- Prevent `birpc` timeouts when `Math.random` mock is not restored  - 
by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3460](https://github.com/vitest-dev/vitest/issues/3460)
[<samp>(cd5d5)</samp>](https://github.com/vitest-dev/vitest/commit/cd5d58b7)
- Assertion diff message now handle non writable property correctly  - 
by [@&#8203;PCreations](https://github.com/PCreations) in
[https://github.com/vitest-dev/vitest/issues/3422](https://github.com/vitest-dev/vitest/issues/3422)
[<samp>(f75ab)</samp>](https://github.com/vitest-dev/vitest/commit/f75ab650)
- Extend logging of process timeout errors  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3452](https://github.com/vitest-dev/vitest/issues/3452)
[<samp>(42643)</samp>](https://github.com/vitest-dev/vitest/commit/42643904)
- Support requiring files with `less` extension  -  by
[@&#8203;rluvaton](https://github.com/rluvaton) in
[https://github.com/vitest-dev/vitest/issues/3465](https://github.com/vitest-dev/vitest/issues/3465)
[<samp>(4d045)</samp>](https://github.com/vitest-dev/vitest/commit/4d045695)
-   **cli**:
- Improve colors used when erroring  -  by
[@&#8203;ghiscoding](https://github.com/ghiscoding) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3349](https://github.com/vitest-dev/vitest/issues/3349)
[<samp>(16681)</samp>](https://github.com/vitest-dev/vitest/commit/16681791)
-   **runner**:
- Suite timeout does not take effect  -  by
[@&#8203;btea](https://github.com/btea) in
[https://github.com/vitest-dev/vitest/issues/3455](https://github.com/vitest-dev/vitest/issues/3455)
[<samp>(82547)</samp>](https://github.com/vitest-dev/vitest/commit/82547376)
-   **spy**:
- Don't print received calls if there are no calls  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3405](https://github.com/vitest-dev/vitest/issues/3405)
[<samp>(41e11)</samp>](https://github.com/vitest-dev/vitest/commit/41e11dad)
-   **typecheck**:
- Show tsc errors not related to test files  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3441](https://github.com/vitest-dev/vitest/issues/3441)
[<samp>(a1da5)</samp>](https://github.com/vitest-dev/vitest/commit/a1da5714)
-   **types**:
- Fix `PartialMock` with async TReturns  -  by
[@&#8203;ghry5](https://github.com/ghry5) in
[https://github.com/vitest-dev/vitest/issues/3462](https://github.com/vitest-dev/vitest/issues/3462)
[<samp>(b664d)</samp>](https://github.com/vitest-dev/vitest/commit/b664d42c)
-   **vite-node**:
- Circular import stuck  -  by
[@&#8203;Dunqing](https://github.com/Dunqing) in
[https://github.com/vitest-dev/vitest/issues/3418](https://github.com/vitest-dev/vitest/issues/3418)
[<samp>(632ee)</samp>](https://github.com/vitest-dev/vitest/commit/632eef40)
- Coerce to string in import(dep)  -  by
[@&#8203;jcbhmr](https://github.com/jcbhmr) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3430](https://github.com/vitest-dev/vitest/issues/3430)
[<samp>(b72eb)</samp>](https://github.com/vitest-dev/vitest/commit/b72ebdb9)
- Don't remove sourcemap string in source code  -  by
[@&#8203;rxliuli](https://github.com/rxliuli) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/2918](https://github.com/vitest-dev/vitest/issues/2918)
and
[https://github.com/vitest-dev/vitest/issues/3379](https://github.com/vitest-dev/vitest/issues/3379)
[<samp>(02dc9)</samp>](https://github.com/vitest-dev/vitest/commit/02dc9ea7)
- Don't externalize "dist" by default  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3446](https://github.com/vitest-dev/vitest/issues/3446)
[<samp>(306b2)</samp>](https://github.com/vitest-dev/vitest/commit/306b2337)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.31.1...v0.31.2)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/fwouts/previewjs).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMTAuMCIsInVwZGF0ZWRJblZlciI6IjM1LjExMC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate bot referenced this pull request in JoshuaKGoldberg/create-typescript-app Jun 14, 2023
…516)

[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@vitest/coverage-istanbul](https://github.com/vitest-dev/vitest/tree/main/packages/coverage-istanbul#readme)
([source](https://github.com/vitest-dev/vitest)) | [`^0.31.0` ->
`^0.32.0`](https://renovatebot.com/diffs/npm/@vitest%2fcoverage-istanbul/0.31.0/0.32.0)
|
[![age](https://badges.renovateapi.com/packages/npm/@vitest%2fcoverage-istanbul/0.32.0/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/@vitest%2fcoverage-istanbul/0.32.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/@vitest%2fcoverage-istanbul/0.32.0/compatibility-slim/0.31.0)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/@vitest%2fcoverage-istanbul/0.32.0/confidence-slim/0.31.0)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>vitest-dev/vitest</summary>

###
[`v0.32.0`](https://github.com/vitest-dev/vitest/releases/tag/v0.32.0)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.31.4...v0.32.0)

#####    🚨 Breaking Changes

- Throw an error, if the module cannot be resolved  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3307](https://github.com/vitest-dev/vitest/issues/3307)
[<samp>(1ad63)</samp>](https://github.com/vitest-dev/vitest/commit/1ad63b0c)
- Vitest used to fall back to the original import when it could not
resolve it to the file path or the virtual module. This leads to
hard-to-find module graph mismatches if you had incorrect alias or
relied on relative imports to be resolved to the project root (which is
usual behavior in TypeScript) because the code accidentally "worked".
With this release, Vitest will now throw an error if it cannot resolve
the module - there are possible edge cases that are not covered yet, so
if you have any problems with this, please open a separate issue with
reproduction.
- Improve globs  -  by
[@&#8203;nickmccurdy](https://github.com/nickmccurdy) in
[https://github.com/vitest-dev/vitest/issues/3392](https://github.com/vitest-dev/vitest/issues/3392)
[<samp>(19ecc)</samp>](https://github.com/vitest-dev/vitest/commit/19ecc6c7)
- Vitest now has glob patterns similar to Jest for better compatibility.
It's possible that some files will be considered test files when
previously they were not. For example, Vitest now considers `test.js` to
be a test file. Also any file in `__tests__` is now considered to be a
test, not just files with `test` or `spec` suffix.
- Add `@vitest/coverage-v8` package  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3339](https://github.com/vitest-dev/vitest/issues/3339)
[<samp>(82112)</samp>](https://github.com/vitest-dev/vitest/commit/821126f1)
- Vitest now uses v8 code coverage directly for better performance.
`@vitest/coverage-c8` is deprecated as Vitest no longer uses c8 package
for coverage output. It will not be updated anymore, and Vitest will
fail in the next version if the user has `c8` as their coverage
provider. Please, install the new `@vitest/coverage-v8` package if you
previously used `@vitest/coverage-c8`.
- **mocker**: Don't restore mock to the original if the module is
automocked  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3518](https://github.com/vitest-dev/vitest/issues/3518)
[<samp>(c1004)</samp>](https://github.com/vitest-dev/vitest/commit/c1004e14)
- `spy.mockRestore` on auto-mocked named exports will no longer restore
their implementation to the actual function. This behavior better
matches what Jest does.

#####    🚀 Features

- Support ssr optimizer  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3490](https://github.com/vitest-dev/vitest/issues/3490)
[<samp>(89842)</samp>](https://github.com/vitest-dev/vitest/commit/898422b0)
- Image type add apng  -  by [@&#8203;btea](https://github.com/btea)
in
[https://github.com/vitest-dev/vitest/issues/3498](https://github.com/vitest-dev/vitest/issues/3498)
[<samp>(a53c2)</samp>](https://github.com/vitest-dev/vitest/commit/a53c2151)
- **expect**: Support `expect.soft`  -  by
[@&#8203;Dunqing](https://github.com/Dunqing) in
[https://github.com/vitest-dev/vitest/issues/3507](https://github.com/vitest-dev/vitest/issues/3507)
[<samp>(7c687)</samp>](https://github.com/vitest-dev/vitest/commit/7c687ada)
- **runner**: Support using function/class as `describe`/`test` name  - 
by [@&#8203;fenghan34](https://github.com/fenghan34) in
[https://github.com/vitest-dev/vitest/issues/3497](https://github.com/vitest-dev/vitest/issues/3497)
[<samp>(15253)</samp>](https://github.com/vitest-dev/vitest/commit/15253890)

#####    🐞 Bug Fixes

- The cli option is passed to coverage.exclude  -  by
[@&#8203;btea](https://github.com/btea) in
[https://github.com/vitest-dev/vitest/issues/3506](https://github.com/vitest-dev/vitest/issues/3506)
[<samp>(c37cd)</samp>](https://github.com/vitest-dev/vitest/commit/c37cdebe)
- **optimizer**: Always respect optimizeDeps even if include/exclude is
overridden  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3488](https://github.com/vitest-dev/vitest/issues/3488)
[<samp>(eb285)</samp>](https://github.com/vitest-dev/vitest/commit/eb285ea0)
- **runner**: Ensure Vitest is deduped  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3489](https://github.com/vitest-dev/vitest/issues/3489)
[<samp>(2deb7)</samp>](https://github.com/vitest-dev/vitest/commit/2deb70ab)
- **ui**: Don't cache coverage assets  -  by
[@&#8203;userquin](https://github.com/userquin) in
[https://github.com/vitest-dev/vitest/issues/3508](https://github.com/vitest-dev/vitest/issues/3508)
[<samp>(952b5)</samp>](https://github.com/vitest-dev/vitest/commit/952b5be6)
- **vite-node**: Circular import stuck  -  by
[@&#8203;Dunqing](https://github.com/Dunqing) in
[https://github.com/vitest-dev/vitest/issues/3480](https://github.com/vitest-dev/vitest/issues/3480)
[<samp>(50f07)</samp>](https://github.com/vitest-dev/vitest/commit/50f0700d)
- **watch**: Junit reporter fails to re-generate report  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3496](https://github.com/vitest-dev/vitest/issues/3496)
[<samp>(5b73c)</samp>](https://github.com/vitest-dev/vitest/commit/5b73cbf8)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.31.4...v0.32.0)

###
[`v0.31.4`](https://github.com/vitest-dev/vitest/releases/tag/v0.31.4)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.31.3...v0.31.4)

#####    🚀 Features

- Enable experimentalOptimizer  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3413](https://github.com/vitest-dev/vitest/issues/3413)
[<samp>(5a894)</samp>](https://github.com/vitest-dev/vitest/commit/5a894aa2)

#####    🐞 Bug Fixes

- **vite-node**: Deps.inline doesn't work  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3485](https://github.com/vitest-dev/vitest/issues/3485)
[<samp>(be930)</samp>](https://github.com/vitest-dev/vitest/commit/be93032f)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.31.3...v0.31.4)

###
[`v0.31.3`](https://github.com/vitest-dev/vitest/releases/tag/v0.31.3)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.31.2...v0.31.3)

#####    🚀 Features

- Support `VITE_NODE_DEPS_MODULE_DIRECTORIES` from .npmrc  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3471](https://github.com/vitest-dev/vitest/issues/3471)
[<samp>(393bf)</samp>](https://github.com/vitest-dev/vitest/commit/393bf60c)

#####    🐞 Bug Fixes

- **logger**: Print unhandled errors before summary  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3474](https://github.com/vitest-dev/vitest/issues/3474)
[<samp>(4c9a7)</samp>](https://github.com/vitest-dev/vitest/commit/4c9a7d58)
- **runner**: Suite options do not propagate to nested suites (fix:
[#&#8203;3467](https://github.com/vitest-dev/vitest/issues/3467))  - 
by [@&#8203;xsjcTony](https://github.com/xsjcTony) in
[https://github.com/vitest-dev/vitest/issues/3473](https://github.com/vitest-dev/vitest/issues/3473)
and
[https://github.com/vitest-dev/vitest/issues/3467](https://github.com/vitest-dev/vitest/issues/3467)
[<samp>(9fb9d)</samp>](https://github.com/vitest-dev/vitest/commit/9fb9dacb)
- **vite-node**: Clear importers when invalidating module  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3475](https://github.com/vitest-dev/vitest/issues/3475)
[<samp>(add29)</samp>](https://github.com/vitest-dev/vitest/commit/add29c86)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.31.2...v0.31.3)

###
[`v0.31.2`](https://github.com/vitest-dev/vitest/releases/tag/v0.31.2)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.31.1...v0.31.2)

#####    🚀 Features

- Throw error if using inline snapshot inside of `test.each` or
`describe.each`  -  by
[@&#8203;fenghan34](https://github.com/fenghan34) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3360](https://github.com/vitest-dev/vitest/issues/3360)
[<samp>(7c2f7)</samp>](https://github.com/vitest-dev/vitest/commit/7c2f7088)
- Pass down meta information to Node.js process  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) and
[@&#8203;dammy001](https://github.com/dammy001) in
[https://github.com/vitest-dev/vitest/issues/3449](https://github.com/vitest-dev/vitest/issues/3449)
[<samp>(e39ad)</samp>](https://github.com/vitest-dev/vitest/commit/e39adea8)
- **coverage**: Add `reportOnFailure` option  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3453](https://github.com/vitest-dev/vitest/issues/3453)
[<samp>(1988f)</samp>](https://github.com/vitest-dev/vitest/commit/1988fcb4)
- **dev**: Add moduleDirectories option to the vitest config  -  by
[@&#8203;fooddilsn](https://github.com/fooddilsn) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3337](https://github.com/vitest-dev/vitest/issues/3337)
[<samp>(b3602)</samp>](https://github.com/vitest-dev/vitest/commit/b3602bcc)

#####    🐞 Bug Fixes

- Don't print empty diff  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3437](https://github.com/vitest-dev/vitest/issues/3437)
[<samp>(32b53)</samp>](https://github.com/vitest-dev/vitest/commit/32b5361f)
- Don't restore methods in automocked dependencies  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3438](https://github.com/vitest-dev/vitest/issues/3438)
[<samp>(d1afd)</samp>](https://github.com/vitest-dev/vitest/commit/d1afd262)
- Dot reporter scrollback buffer spam  -  by
[@&#8203;gtm-nayan](https://github.com/gtm-nayan) in
[https://github.com/vitest-dev/vitest/issues/3415](https://github.com/vitest-dev/vitest/issues/3415)
[<samp>(e6792)</samp>](https://github.com/vitest-dev/vitest/commit/e6792a94)
- Gracefully exit when first `SIGINT` is received  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3407](https://github.com/vitest-dev/vitest/issues/3407)
[<samp>(a2cc2)</samp>](https://github.com/vitest-dev/vitest/commit/a2cc2b38)
- `rejects` & `resolves` breaks with thenable objects  -  by
[@&#8203;fenghan34](https://github.com/fenghan34) in
[https://github.com/vitest-dev/vitest/issues/3456](https://github.com/vitest-dev/vitest/issues/3456)
[<samp>(4e996)</samp>](https://github.com/vitest-dev/vitest/commit/4e996ae5)
- Prevent `birpc` timeouts when `Math.random` mock is not restored  - 
by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3460](https://github.com/vitest-dev/vitest/issues/3460)
[<samp>(cd5d5)</samp>](https://github.com/vitest-dev/vitest/commit/cd5d58b7)
- Assertion diff message now handle non writable property correctly  - 
by [@&#8203;PCreations](https://github.com/PCreations) in
[https://github.com/vitest-dev/vitest/issues/3422](https://github.com/vitest-dev/vitest/issues/3422)
[<samp>(f75ab)</samp>](https://github.com/vitest-dev/vitest/commit/f75ab650)
- Extend logging of process timeout errors  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3452](https://github.com/vitest-dev/vitest/issues/3452)
[<samp>(42643)</samp>](https://github.com/vitest-dev/vitest/commit/42643904)
- Support requiring files with `less` extension  -  by
[@&#8203;rluvaton](https://github.com/rluvaton) in
[https://github.com/vitest-dev/vitest/issues/3465](https://github.com/vitest-dev/vitest/issues/3465)
[<samp>(4d045)</samp>](https://github.com/vitest-dev/vitest/commit/4d045695)
-   **cli**:
- Improve colors used when erroring  -  by
[@&#8203;ghiscoding](https://github.com/ghiscoding) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3349](https://github.com/vitest-dev/vitest/issues/3349)
[<samp>(16681)</samp>](https://github.com/vitest-dev/vitest/commit/16681791)
-   **runner**:
- Suite timeout does not take effect  -  by
[@&#8203;btea](https://github.com/btea) in
[https://github.com/vitest-dev/vitest/issues/3455](https://github.com/vitest-dev/vitest/issues/3455)
[<samp>(82547)</samp>](https://github.com/vitest-dev/vitest/commit/82547376)
-   **spy**:
- Don't print received calls if there are no calls  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3405](https://github.com/vitest-dev/vitest/issues/3405)
[<samp>(41e11)</samp>](https://github.com/vitest-dev/vitest/commit/41e11dad)
-   **typecheck**:
- Show tsc errors not related to test files  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3441](https://github.com/vitest-dev/vitest/issues/3441)
[<samp>(a1da5)</samp>](https://github.com/vitest-dev/vitest/commit/a1da5714)
-   **types**:
- Fix `PartialMock` with async TReturns  -  by
[@&#8203;ghry5](https://github.com/ghry5) in
[https://github.com/vitest-dev/vitest/issues/3462](https://github.com/vitest-dev/vitest/issues/3462)
[<samp>(b664d)</samp>](https://github.com/vitest-dev/vitest/commit/b664d42c)
-   **vite-node**:
- Circular import stuck  -  by
[@&#8203;Dunqing](https://github.com/Dunqing) in
[https://github.com/vitest-dev/vitest/issues/3418](https://github.com/vitest-dev/vitest/issues/3418)
[<samp>(632ee)</samp>](https://github.com/vitest-dev/vitest/commit/632eef40)
- Coerce to string in import(dep)  -  by
[@&#8203;jcbhmr](https://github.com/jcbhmr) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3430](https://github.com/vitest-dev/vitest/issues/3430)
[<samp>(b72eb)</samp>](https://github.com/vitest-dev/vitest/commit/b72ebdb9)
- Don't remove sourcemap string in source code  -  by
[@&#8203;rxliuli](https://github.com/rxliuli) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/2918](https://github.com/vitest-dev/vitest/issues/2918)
and
[https://github.com/vitest-dev/vitest/issues/3379](https://github.com/vitest-dev/vitest/issues/3379)
[<samp>(02dc9)</samp>](https://github.com/vitest-dev/vitest/commit/02dc9ea7)
- Don't externalize "dist" by default  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3446](https://github.com/vitest-dev/vitest/issues/3446)
[<samp>(306b2)</samp>](https://github.com/vitest-dev/vitest/commit/306b2337)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.31.1...v0.31.2)

###
[`v0.31.1`](https://github.com/vitest-dev/vitest/releases/tag/v0.31.1)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.31.0...v0.31.1)

#####    🚀 Features

- **watch**: Press `r` should rerun current pattern tests  -  by
[@&#8203;Dunqing](https://github.com/Dunqing) and
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3305](https://github.com/vitest-dev/vitest/issues/3305)
[<samp>(69d27)</samp>](https://github.com/vitest-dev/vitest/commit/69d27117)

#####    🐞 Bug Fixes

- Make sure thrown error is an object  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3298](https://github.com/vitest-dev/vitest/issues/3298)
[<samp>(a93be)</samp>](https://github.com/vitest-dev/vitest/commit/a93be56c)
- Remove duplicate type  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3303](https://github.com/vitest-dev/vitest/issues/3303)
[<samp>(5382e)</samp>](https://github.com/vitest-dev/vitest/commit/5382e8b6)
- Throw an error, if tests are collected with a different vitest version
 -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3301](https://github.com/vitest-dev/vitest/issues/3301)
[<samp>(708b1)</samp>](https://github.com/vitest-dev/vitest/commit/708b10fe)
- Support application/x-gzip metadata in html report  -  by
[@&#8203;mzanelee](https://github.com/mzanelee) and **Michael Lee** in
[https://github.com/vitest-dev/vitest/issues/3333](https://github.com/vitest-dev/vitest/issues/3333)
[<samp>(5bf7e)</samp>](https://github.com/vitest-dev/vitest/commit/5bf7eb6e)
- Correctly restore vi.fn implementation  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3341](https://github.com/vitest-dev/vitest/issues/3341)
[<samp>(2aff8)</samp>](https://github.com/vitest-dev/vitest/commit/2aff8c5f)
- Display error message correctly  -  by
[@&#8203;btea](https://github.com/btea) in
[https://github.com/vitest-dev/vitest/issues/3314](https://github.com/vitest-dev/vitest/issues/3314)
[<samp>(a5b3d)</samp>](https://github.com/vitest-dev/vitest/commit/a5b3d78e)
- Exclude `cwd` from test name filter  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3353](https://github.com/vitest-dev/vitest/issues/3353)
[<samp>(324a9)</samp>](https://github.com/vitest-dev/vitest/commit/324a9b54)
- Check error type before modifying it  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3385](https://github.com/vitest-dev/vitest/issues/3385)
[<samp>(c44d9)</samp>](https://github.com/vitest-dev/vitest/commit/c44d9912)
- `toMatchInlineSnapshot` fails when file path includes parentheses  - 
by [@&#8203;pacexy](https://github.com/pacexy) in
[https://github.com/vitest-dev/vitest/issues/3370](https://github.com/vitest-dev/vitest/issues/3370)
and
[https://github.com/vitest-dev/vitest/issues/3371](https://github.com/vitest-dev/vitest/issues/3371)
[<samp>(dcf13)</samp>](https://github.com/vitest-dev/vitest/commit/dcf1346a)
- Stop spying on a method, when it's restored  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3386](https://github.com/vitest-dev/vitest/issues/3386)
[<samp>(2cb1a)</samp>](https://github.com/vitest-dev/vitest/commit/2cb1a15a)
- Test repeats  -  by
[@&#8203;fenghan34](https://github.com/fenghan34) in
[https://github.com/vitest-dev/vitest/issues/3369](https://github.com/vitest-dev/vitest/issues/3369)
[<samp>(fb8fc)</samp>](https://github.com/vitest-dev/vitest/commit/fb8fc7ab)
-   **browser**:
- Throw an error if test failed to load  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3390](https://github.com/vitest-dev/vitest/issues/3390)
[<samp>(b354b)</samp>](https://github.com/vitest-dev/vitest/commit/b354bc1c)
- Keep default export when rewriting exports  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3389](https://github.com/vitest-dev/vitest/issues/3389)
[<samp>(6501d)</samp>](https://github.com/vitest-dev/vitest/commit/6501d2e3)
-   **cli**:
- Improve cac errors when mixing boolean and dot notation  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3302](https://github.com/vitest-dev/vitest/issues/3302)
[<samp>(93fbd)</samp>](https://github.com/vitest-dev/vitest/commit/93fbd02d)
-   **reporter**:
- Prevent deleting test reports stored in coverage directory  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3331](https://github.com/vitest-dev/vitest/issues/3331)
[<samp>(ddbba)</samp>](https://github.com/vitest-dev/vitest/commit/ddbba396)
-   **typecheck**:
- Correctly resolve custom tsconfig path  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3342](https://github.com/vitest-dev/vitest/issues/3342)
[<samp>(c53ae)</samp>](https://github.com/vitest-dev/vitest/commit/c53ae079)
-   **vite-node**:
- Allow returning id not wrapped in promise  -  by
[@&#8203;danielroe](https://github.com/danielroe) in
[https://github.com/vitest-dev/vitest/issues/3312](https://github.com/vitest-dev/vitest/issues/3312)
[<samp>(9836c)</samp>](https://github.com/vitest-dev/vitest/commit/9836ccb4)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.31.0...v0.31.1)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/JoshuaKGoldberg/template-typescript-node-package).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMTAuMCIsInVwZGF0ZWRJblZlciI6IjM1LjExMC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate bot referenced this pull request in JoshuaKGoldberg/create-typescript-app Jun 14, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [vitest](https://github.com/vitest-dev/vitest) | [`^0.31.0` ->
`^0.32.0`](https://renovatebot.com/diffs/npm/vitest/0.31.0/0.32.0) |
[![age](https://badges.renovateapi.com/packages/npm/vitest/0.32.0/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/vitest/0.32.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/vitest/0.32.0/compatibility-slim/0.31.0)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/vitest/0.32.0/confidence-slim/0.31.0)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>vitest-dev/vitest</summary>

###
[`v0.32.0`](https://github.com/vitest-dev/vitest/releases/tag/v0.32.0)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.31.4...v0.32.0)

#####    🚨 Breaking Changes

- Throw an error, if the module cannot be resolved  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3307](https://github.com/vitest-dev/vitest/issues/3307)
[<samp>(1ad63)</samp>](https://github.com/vitest-dev/vitest/commit/1ad63b0c)
- Vitest used to fall back to the original import when it could not
resolve it to the file path or the virtual module. This leads to
hard-to-find module graph mismatches if you had incorrect alias or
relied on relative imports to be resolved to the project root (which is
usual behavior in TypeScript) because the code accidentally "worked".
With this release, Vitest will now throw an error if it cannot resolve
the module - there are possible edge cases that are not covered yet, so
if you have any problems with this, please open a separate issue with
reproduction.
- Improve globs  -  by
[@&#8203;nickmccurdy](https://github.com/nickmccurdy) in
[https://github.com/vitest-dev/vitest/issues/3392](https://github.com/vitest-dev/vitest/issues/3392)
[<samp>(19ecc)</samp>](https://github.com/vitest-dev/vitest/commit/19ecc6c7)
- Vitest now has glob patterns similar to Jest for better compatibility.
It's possible that some files will be considered test files when
previously they were not. For example, Vitest now considers `test.js` to
be a test file. Also any file in `__tests__` is now considered to be a
test, not just files with `test` or `spec` suffix.
- Add `@vitest/coverage-v8` package  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3339](https://github.com/vitest-dev/vitest/issues/3339)
[<samp>(82112)</samp>](https://github.com/vitest-dev/vitest/commit/821126f1)
- Vitest now uses v8 code coverage directly for better performance.
`@vitest/coverage-c8` is deprecated as Vitest no longer uses c8 package
for coverage output. It will not be updated anymore, and Vitest will
fail in the next version if the user has `c8` as their coverage
provider. Please, install the new `@vitest/coverage-v8` package if you
previously used `@vitest/coverage-c8`.
- **mocker**: Don't restore mock to the original if the module is
automocked  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3518](https://github.com/vitest-dev/vitest/issues/3518)
[<samp>(c1004)</samp>](https://github.com/vitest-dev/vitest/commit/c1004e14)
- `spy.mockRestore` on auto-mocked named exports will no longer restore
their implementation to the actual function. This behavior better
matches what Jest does.

#####    🚀 Features

- Support ssr optimizer  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3490](https://github.com/vitest-dev/vitest/issues/3490)
[<samp>(89842)</samp>](https://github.com/vitest-dev/vitest/commit/898422b0)
- Image type add apng  -  by [@&#8203;btea](https://github.com/btea)
in
[https://github.com/vitest-dev/vitest/issues/3498](https://github.com/vitest-dev/vitest/issues/3498)
[<samp>(a53c2)</samp>](https://github.com/vitest-dev/vitest/commit/a53c2151)
- **expect**: Support `expect.soft`  -  by
[@&#8203;Dunqing](https://github.com/Dunqing) in
[https://github.com/vitest-dev/vitest/issues/3507](https://github.com/vitest-dev/vitest/issues/3507)
[<samp>(7c687)</samp>](https://github.com/vitest-dev/vitest/commit/7c687ada)
- **runner**: Support using function/class as `describe`/`test` name  - 
by [@&#8203;fenghan34](https://github.com/fenghan34) in
[https://github.com/vitest-dev/vitest/issues/3497](https://github.com/vitest-dev/vitest/issues/3497)
[<samp>(15253)</samp>](https://github.com/vitest-dev/vitest/commit/15253890)

#####    🐞 Bug Fixes

- The cli option is passed to coverage.exclude  -  by
[@&#8203;btea](https://github.com/btea) in
[https://github.com/vitest-dev/vitest/issues/3506](https://github.com/vitest-dev/vitest/issues/3506)
[<samp>(c37cd)</samp>](https://github.com/vitest-dev/vitest/commit/c37cdebe)
- **optimizer**: Always respect optimizeDeps even if include/exclude is
overridden  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3488](https://github.com/vitest-dev/vitest/issues/3488)
[<samp>(eb285)</samp>](https://github.com/vitest-dev/vitest/commit/eb285ea0)
- **runner**: Ensure Vitest is deduped  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3489](https://github.com/vitest-dev/vitest/issues/3489)
[<samp>(2deb7)</samp>](https://github.com/vitest-dev/vitest/commit/2deb70ab)
- **ui**: Don't cache coverage assets  -  by
[@&#8203;userquin](https://github.com/userquin) in
[https://github.com/vitest-dev/vitest/issues/3508](https://github.com/vitest-dev/vitest/issues/3508)
[<samp>(952b5)</samp>](https://github.com/vitest-dev/vitest/commit/952b5be6)
- **vite-node**: Circular import stuck  -  by
[@&#8203;Dunqing](https://github.com/Dunqing) in
[https://github.com/vitest-dev/vitest/issues/3480](https://github.com/vitest-dev/vitest/issues/3480)
[<samp>(50f07)</samp>](https://github.com/vitest-dev/vitest/commit/50f0700d)
- **watch**: Junit reporter fails to re-generate report  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3496](https://github.com/vitest-dev/vitest/issues/3496)
[<samp>(5b73c)</samp>](https://github.com/vitest-dev/vitest/commit/5b73cbf8)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.31.4...v0.32.0)

###
[`v0.31.4`](https://github.com/vitest-dev/vitest/releases/tag/v0.31.4)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.31.3...v0.31.4)

#####    🚀 Features

- Enable experimentalOptimizer  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3413](https://github.com/vitest-dev/vitest/issues/3413)
[<samp>(5a894)</samp>](https://github.com/vitest-dev/vitest/commit/5a894aa2)

#####    🐞 Bug Fixes

- **vite-node**: Deps.inline doesn't work  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3485](https://github.com/vitest-dev/vitest/issues/3485)
[<samp>(be930)</samp>](https://github.com/vitest-dev/vitest/commit/be93032f)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.31.3...v0.31.4)

###
[`v0.31.3`](https://github.com/vitest-dev/vitest/releases/tag/v0.31.3)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.31.2...v0.31.3)

#####    🚀 Features

- Support `VITE_NODE_DEPS_MODULE_DIRECTORIES` from .npmrc  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3471](https://github.com/vitest-dev/vitest/issues/3471)
[<samp>(393bf)</samp>](https://github.com/vitest-dev/vitest/commit/393bf60c)

#####    🐞 Bug Fixes

- **logger**: Print unhandled errors before summary  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3474](https://github.com/vitest-dev/vitest/issues/3474)
[<samp>(4c9a7)</samp>](https://github.com/vitest-dev/vitest/commit/4c9a7d58)
- **runner**: Suite options do not propagate to nested suites (fix:
[#&#8203;3467](https://github.com/vitest-dev/vitest/issues/3467))  - 
by [@&#8203;xsjcTony](https://github.com/xsjcTony) in
[https://github.com/vitest-dev/vitest/issues/3473](https://github.com/vitest-dev/vitest/issues/3473)
and
[https://github.com/vitest-dev/vitest/issues/3467](https://github.com/vitest-dev/vitest/issues/3467)
[<samp>(9fb9d)</samp>](https://github.com/vitest-dev/vitest/commit/9fb9dacb)
- **vite-node**: Clear importers when invalidating module  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3475](https://github.com/vitest-dev/vitest/issues/3475)
[<samp>(add29)</samp>](https://github.com/vitest-dev/vitest/commit/add29c86)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.31.2...v0.31.3)

###
[`v0.31.2`](https://github.com/vitest-dev/vitest/releases/tag/v0.31.2)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.31.1...v0.31.2)

#####    🚀 Features

- Throw error if using inline snapshot inside of `test.each` or
`describe.each`  -  by
[@&#8203;fenghan34](https://github.com/fenghan34) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3360](https://github.com/vitest-dev/vitest/issues/3360)
[<samp>(7c2f7)</samp>](https://github.com/vitest-dev/vitest/commit/7c2f7088)
- Pass down meta information to Node.js process  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) and
[@&#8203;dammy001](https://github.com/dammy001) in
[https://github.com/vitest-dev/vitest/issues/3449](https://github.com/vitest-dev/vitest/issues/3449)
[<samp>(e39ad)</samp>](https://github.com/vitest-dev/vitest/commit/e39adea8)
- **coverage**: Add `reportOnFailure` option  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3453](https://github.com/vitest-dev/vitest/issues/3453)
[<samp>(1988f)</samp>](https://github.com/vitest-dev/vitest/commit/1988fcb4)
- **dev**: Add moduleDirectories option to the vitest config  -  by
[@&#8203;fooddilsn](https://github.com/fooddilsn) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3337](https://github.com/vitest-dev/vitest/issues/3337)
[<samp>(b3602)</samp>](https://github.com/vitest-dev/vitest/commit/b3602bcc)

#####    🐞 Bug Fixes

- Don't print empty diff  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3437](https://github.com/vitest-dev/vitest/issues/3437)
[<samp>(32b53)</samp>](https://github.com/vitest-dev/vitest/commit/32b5361f)
- Don't restore methods in automocked dependencies  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3438](https://github.com/vitest-dev/vitest/issues/3438)
[<samp>(d1afd)</samp>](https://github.com/vitest-dev/vitest/commit/d1afd262)
- Dot reporter scrollback buffer spam  -  by
[@&#8203;gtm-nayan](https://github.com/gtm-nayan) in
[https://github.com/vitest-dev/vitest/issues/3415](https://github.com/vitest-dev/vitest/issues/3415)
[<samp>(e6792)</samp>](https://github.com/vitest-dev/vitest/commit/e6792a94)
- Gracefully exit when first `SIGINT` is received  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3407](https://github.com/vitest-dev/vitest/issues/3407)
[<samp>(a2cc2)</samp>](https://github.com/vitest-dev/vitest/commit/a2cc2b38)
- `rejects` & `resolves` breaks with thenable objects  -  by
[@&#8203;fenghan34](https://github.com/fenghan34) in
[https://github.com/vitest-dev/vitest/issues/3456](https://github.com/vitest-dev/vitest/issues/3456)
[<samp>(4e996)</samp>](https://github.com/vitest-dev/vitest/commit/4e996ae5)
- Prevent `birpc` timeouts when `Math.random` mock is not restored  - 
by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3460](https://github.com/vitest-dev/vitest/issues/3460)
[<samp>(cd5d5)</samp>](https://github.com/vitest-dev/vitest/commit/cd5d58b7)
- Assertion diff message now handle non writable property correctly  - 
by [@&#8203;PCreations](https://github.com/PCreations) in
[https://github.com/vitest-dev/vitest/issues/3422](https://github.com/vitest-dev/vitest/issues/3422)
[<samp>(f75ab)</samp>](https://github.com/vitest-dev/vitest/commit/f75ab650)
- Extend logging of process timeout errors  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3452](https://github.com/vitest-dev/vitest/issues/3452)
[<samp>(42643)</samp>](https://github.com/vitest-dev/vitest/commit/42643904)
- Support requiring files with `less` extension  -  by
[@&#8203;rluvaton](https://github.com/rluvaton) in
[https://github.com/vitest-dev/vitest/issues/3465](https://github.com/vitest-dev/vitest/issues/3465)
[<samp>(4d045)</samp>](https://github.com/vitest-dev/vitest/commit/4d045695)
-   **cli**:
- Improve colors used when erroring  -  by
[@&#8203;ghiscoding](https://github.com/ghiscoding) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3349](https://github.com/vitest-dev/vitest/issues/3349)
[<samp>(16681)</samp>](https://github.com/vitest-dev/vitest/commit/16681791)
-   **runner**:
- Suite timeout does not take effect  -  by
[@&#8203;btea](https://github.com/btea) in
[https://github.com/vitest-dev/vitest/issues/3455](https://github.com/vitest-dev/vitest/issues/3455)
[<samp>(82547)</samp>](https://github.com/vitest-dev/vitest/commit/82547376)
-   **spy**:
- Don't print received calls if there are no calls  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3405](https://github.com/vitest-dev/vitest/issues/3405)
[<samp>(41e11)</samp>](https://github.com/vitest-dev/vitest/commit/41e11dad)
-   **typecheck**:
- Show tsc errors not related to test files  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3441](https://github.com/vitest-dev/vitest/issues/3441)
[<samp>(a1da5)</samp>](https://github.com/vitest-dev/vitest/commit/a1da5714)
-   **types**:
- Fix `PartialMock` with async TReturns  -  by
[@&#8203;ghry5](https://github.com/ghry5) in
[https://github.com/vitest-dev/vitest/issues/3462](https://github.com/vitest-dev/vitest/issues/3462)
[<samp>(b664d)</samp>](https://github.com/vitest-dev/vitest/commit/b664d42c)
-   **vite-node**:
- Circular import stuck  -  by
[@&#8203;Dunqing](https://github.com/Dunqing) in
[https://github.com/vitest-dev/vitest/issues/3418](https://github.com/vitest-dev/vitest/issues/3418)
[<samp>(632ee)</samp>](https://github.com/vitest-dev/vitest/commit/632eef40)
- Coerce to string in import(dep)  -  by
[@&#8203;jcbhmr](https://github.com/jcbhmr) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3430](https://github.com/vitest-dev/vitest/issues/3430)
[<samp>(b72eb)</samp>](https://github.com/vitest-dev/vitest/commit/b72ebdb9)
- Don't remove sourcemap string in source code  -  by
[@&#8203;rxliuli](https://github.com/rxliuli) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/2918](https://github.com/vitest-dev/vitest/issues/2918)
and
[https://github.com/vitest-dev/vitest/issues/3379](https://github.com/vitest-dev/vitest/issues/3379)
[<samp>(02dc9)</samp>](https://github.com/vitest-dev/vitest/commit/02dc9ea7)
- Don't externalize "dist" by default  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3446](https://github.com/vitest-dev/vitest/issues/3446)
[<samp>(306b2)</samp>](https://github.com/vitest-dev/vitest/commit/306b2337)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.31.1...v0.31.2)

###
[`v0.31.1`](https://github.com/vitest-dev/vitest/releases/tag/v0.31.1)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.31.0...v0.31.1)

#####    🚀 Features

- **watch**: Press `r` should rerun current pattern tests  -  by
[@&#8203;Dunqing](https://github.com/Dunqing) and
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3305](https://github.com/vitest-dev/vitest/issues/3305)
[<samp>(69d27)</samp>](https://github.com/vitest-dev/vitest/commit/69d27117)

#####    🐞 Bug Fixes

- Make sure thrown error is an object  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3298](https://github.com/vitest-dev/vitest/issues/3298)
[<samp>(a93be)</samp>](https://github.com/vitest-dev/vitest/commit/a93be56c)
- Remove duplicate type  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3303](https://github.com/vitest-dev/vitest/issues/3303)
[<samp>(5382e)</samp>](https://github.com/vitest-dev/vitest/commit/5382e8b6)
- Throw an error, if tests are collected with a different vitest version
 -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3301](https://github.com/vitest-dev/vitest/issues/3301)
[<samp>(708b1)</samp>](https://github.com/vitest-dev/vitest/commit/708b10fe)
- Support application/x-gzip metadata in html report  -  by
[@&#8203;mzanelee](https://github.com/mzanelee) and **Michael Lee** in
[https://github.com/vitest-dev/vitest/issues/3333](https://github.com/vitest-dev/vitest/issues/3333)
[<samp>(5bf7e)</samp>](https://github.com/vitest-dev/vitest/commit/5bf7eb6e)
- Correctly restore vi.fn implementation  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3341](https://github.com/vitest-dev/vitest/issues/3341)
[<samp>(2aff8)</samp>](https://github.com/vitest-dev/vitest/commit/2aff8c5f)
- Display error message correctly  -  by
[@&#8203;btea](https://github.com/btea) in
[https://github.com/vitest-dev/vitest/issues/3314](https://github.com/vitest-dev/vitest/issues/3314)
[<samp>(a5b3d)</samp>](https://github.com/vitest-dev/vitest/commit/a5b3d78e)
- Exclude `cwd` from test name filter  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3353](https://github.com/vitest-dev/vitest/issues/3353)
[<samp>(324a9)</samp>](https://github.com/vitest-dev/vitest/commit/324a9b54)
- Check error type before modifying it  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3385](https://github.com/vitest-dev/vitest/issues/3385)
[<samp>(c44d9)</samp>](https://github.com/vitest-dev/vitest/commit/c44d9912)
- `toMatchInlineSnapshot` fails when file path includes parentheses  - 
by [@&#8203;pacexy](https://github.com/pacexy) in
[https://github.com/vitest-dev/vitest/issues/3370](https://github.com/vitest-dev/vitest/issues/3370)
and
[https://github.com/vitest-dev/vitest/issues/3371](https://github.com/vitest-dev/vitest/issues/3371)
[<samp>(dcf13)</samp>](https://github.com/vitest-dev/vitest/commit/dcf1346a)
- Stop spying on a method, when it's restored  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3386](https://github.com/vitest-dev/vitest/issues/3386)
[<samp>(2cb1a)</samp>](https://github.com/vitest-dev/vitest/commit/2cb1a15a)
- Test repeats  -  by
[@&#8203;fenghan34](https://github.com/fenghan34) in
[https://github.com/vitest-dev/vitest/issues/3369](https://github.com/vitest-dev/vitest/issues/3369)
[<samp>(fb8fc)</samp>](https://github.com/vitest-dev/vitest/commit/fb8fc7ab)
-   **browser**:
- Throw an error if test failed to load  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3390](https://github.com/vitest-dev/vitest/issues/3390)
[<samp>(b354b)</samp>](https://github.com/vitest-dev/vitest/commit/b354bc1c)
- Keep default export when rewriting exports  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3389](https://github.com/vitest-dev/vitest/issues/3389)
[<samp>(6501d)</samp>](https://github.com/vitest-dev/vitest/commit/6501d2e3)
-   **cli**:
- Improve cac errors when mixing boolean and dot notation  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3302](https://github.com/vitest-dev/vitest/issues/3302)
[<samp>(93fbd)</samp>](https://github.com/vitest-dev/vitest/commit/93fbd02d)
-   **reporter**:
- Prevent deleting test reports stored in coverage directory  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3331](https://github.com/vitest-dev/vitest/issues/3331)
[<samp>(ddbba)</samp>](https://github.com/vitest-dev/vitest/commit/ddbba396)
-   **typecheck**:
- Correctly resolve custom tsconfig path  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3342](https://github.com/vitest-dev/vitest/issues/3342)
[<samp>(c53ae)</samp>](https://github.com/vitest-dev/vitest/commit/c53ae079)
-   **vite-node**:
- Allow returning id not wrapped in promise  -  by
[@&#8203;danielroe](https://github.com/danielroe) in
[https://github.com/vitest-dev/vitest/issues/3312](https://github.com/vitest-dev/vitest/issues/3312)
[<samp>(9836c)</samp>](https://github.com/vitest-dev/vitest/commit/9836ccb4)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.31.0...v0.31.1)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/JoshuaKGoldberg/template-typescript-node-package).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMTAuMCIsInVwZGF0ZWRJblZlciI6IjM1LjExMC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
andipaetzold referenced this pull request in andipaetzold/react-firehooks Jun 14, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react)
([source](https://github.com/DefinitelyTyped/DefinitelyTyped)) |
[`18.2.0` ->
`18.2.12`](https://renovatebot.com/diffs/npm/@types%2freact/18.2.0/18.2.12)
|
[![age](https://badges.renovateapi.com/packages/npm/@types%2freact/18.2.12/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/@types%2freact/18.2.12/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/@types%2freact/18.2.12/compatibility-slim/18.2.0)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/@types%2freact/18.2.12/confidence-slim/18.2.0)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@vitest/coverage-c8](https://github.com/vitest-dev/vitest/tree/main/packages/coverage-c8#readme)
([source](https://github.com/vitest-dev/vitest)) | [`0.30.1` ->
`0.32.0`](https://renovatebot.com/diffs/npm/@vitest%2fcoverage-c8/0.30.1/0.32.0)
|
[![age](https://badges.renovateapi.com/packages/npm/@vitest%2fcoverage-c8/0.32.0/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/@vitest%2fcoverage-c8/0.32.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/@vitest%2fcoverage-c8/0.32.0/compatibility-slim/0.30.1)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/@vitest%2fcoverage-c8/0.32.0/confidence-slim/0.30.1)](https://docs.renovatebot.com/merge-confidence/)
|
| [happy-dom](https://github.com/capricorn86/happy-dom) | [`9.9.2` ->
`9.20.3`](https://renovatebot.com/diffs/npm/happy-dom/9.9.2/9.20.3) |
[![age](https://badges.renovateapi.com/packages/npm/happy-dom/9.20.3/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/happy-dom/9.20.3/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/happy-dom/9.20.3/compatibility-slim/9.9.2)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/happy-dom/9.20.3/confidence-slim/9.9.2)](https://docs.renovatebot.com/merge-confidence/)
|
| [rimraf](https://github.com/isaacs/rimraf) | [`5.0.0` ->
`5.0.1`](https://renovatebot.com/diffs/npm/rimraf/5.0.0/5.0.1) |
[![age](https://badges.renovateapi.com/packages/npm/rimraf/5.0.1/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/rimraf/5.0.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/rimraf/5.0.1/compatibility-slim/5.0.0)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/rimraf/5.0.1/confidence-slim/5.0.0)](https://docs.renovatebot.com/merge-confidence/)
|
|
[semantic-release](https://github.com/semantic-release/semantic-release)
| [`21.0.1` ->
`21.0.5`](https://renovatebot.com/diffs/npm/semantic-release/21.0.1/21.0.5)
|
[![age](https://badges.renovateapi.com/packages/npm/semantic-release/21.0.5/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/semantic-release/21.0.5/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/semantic-release/21.0.5/compatibility-slim/21.0.1)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/semantic-release/21.0.5/confidence-slim/21.0.1)](https://docs.renovatebot.com/merge-confidence/)
|
| [typedoc](https://typedoc.org)
([source](https://github.com/TypeStrong/TypeDoc)) | [`0.24.6` ->
`0.24.8`](https://renovatebot.com/diffs/npm/typedoc/0.24.6/0.24.8) |
[![age](https://badges.renovateapi.com/packages/npm/typedoc/0.24.8/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/typedoc/0.24.8/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/typedoc/0.24.8/compatibility-slim/0.24.6)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/typedoc/0.24.8/confidence-slim/0.24.6)](https://docs.renovatebot.com/merge-confidence/)
|
| [typescript](https://www.typescriptlang.org/)
([source](https://github.com/Microsoft/TypeScript)) | [`5.0.4` ->
`5.1.3`](https://renovatebot.com/diffs/npm/typescript/5.0.4/5.1.3) |
[![age](https://badges.renovateapi.com/packages/npm/typescript/5.1.3/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/typescript/5.1.3/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/typescript/5.1.3/compatibility-slim/5.0.4)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/typescript/5.1.3/confidence-slim/5.0.4)](https://docs.renovatebot.com/merge-confidence/)
|
| [vitest](https://github.com/vitest-dev/vitest) | [`0.30.1` ->
`0.32.0`](https://renovatebot.com/diffs/npm/vitest/0.30.1/0.32.0) |
[![age](https://badges.renovateapi.com/packages/npm/vitest/0.32.0/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/vitest/0.32.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/vitest/0.32.0/compatibility-slim/0.30.1)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/vitest/0.32.0/confidence-slim/0.30.1)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>vitest-dev/vitest</summary>

###
[`v0.32.0`](https://github.com/vitest-dev/vitest/releases/tag/v0.32.0)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.31.4...v0.32.0)

#####    🚨 Breaking Changes

- Throw an error, if the module cannot be resolved  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3307](https://github.com/vitest-dev/vitest/issues/3307)
[<samp>(1ad63)</samp>](https://github.com/vitest-dev/vitest/commit/1ad63b0c)
- Vitest used to fall back to the original import when it could not
resolve it to the file path or the virtual module. This leads to
hard-to-find module graph mismatches if you had incorrect alias or
relied on relative imports to be resolved to the project root (which is
usual behavior in TypeScript) because the code accidentally "worked".
With this release, Vitest will now throw an error if it cannot resolve
the module - there are possible edge cases that are not covered yet, so
if you have any problems with this, please open a separate issue with
reproduction.
- Improve globs  -  by
[@&#8203;nickmccurdy](https://github.com/nickmccurdy) in
[https://github.com/vitest-dev/vitest/issues/3392](https://github.com/vitest-dev/vitest/issues/3392)
[<samp>(19ecc)</samp>](https://github.com/vitest-dev/vitest/commit/19ecc6c7)
- Vitest now has glob patterns similar to Jest for better compatibility.
It's possible that some files will be considered test files when
previously they were not. For example, Vitest now considers `test.js` to
be a test file. Also any file in `__tests__` is now considered to be a
test, not just files with `test` or `spec` suffix.
- Add `@vitest/coverage-v8` package  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3339](https://github.com/vitest-dev/vitest/issues/3339)
[<samp>(82112)</samp>](https://github.com/vitest-dev/vitest/commit/821126f1)
- Vitest now uses v8 code coverage directly for better performance.
`@vitest/coverage-c8` is deprecated as Vitest no longer uses c8 package
for coverage output. It will not be updated anymore, and Vitest will
fail in the next version if the user has `c8` as their coverage
provider. Please, install the new `@vitest/coverage-v8` package if you
previously used `@vitest/coverage-c8`.
- **mocker**: Don't restore mock to the original if the module is
automocked  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3518](https://github.com/vitest-dev/vitest/issues/3518)
[<samp>(c1004)</samp>](https://github.com/vitest-dev/vitest/commit/c1004e14)
- `spy.mockRestore` on auto-mocked named exports will no longer restore
their implementation to the actual function. This behavior better
matches what Jest does.

#####    🚀 Features

- Support ssr optimizer  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3490](https://github.com/vitest-dev/vitest/issues/3490)
[<samp>(89842)</samp>](https://github.com/vitest-dev/vitest/commit/898422b0)
- Image type add apng  -  by [@&#8203;btea](https://github.com/btea)
in
[https://github.com/vitest-dev/vitest/issues/3498](https://github.com/vitest-dev/vitest/issues/3498)
[<samp>(a53c2)</samp>](https://github.com/vitest-dev/vitest/commit/a53c2151)
- **expect**: Support `expect.soft`  -  by
[@&#8203;Dunqing](https://github.com/Dunqing) in
[https://github.com/vitest-dev/vitest/issues/3507](https://github.com/vitest-dev/vitest/issues/3507)
[<samp>(7c687)</samp>](https://github.com/vitest-dev/vitest/commit/7c687ada)
- **runner**: Support using function/class as `describe`/`test` name  - 
by [@&#8203;fenghan34](https://github.com/fenghan34) in
[https://github.com/vitest-dev/vitest/issues/3497](https://github.com/vitest-dev/vitest/issues/3497)
[<samp>(15253)</samp>](https://github.com/vitest-dev/vitest/commit/15253890)

#####    🐞 Bug Fixes

- The cli option is passed to coverage.exclude  -  by
[@&#8203;btea](https://github.com/btea) in
[https://github.com/vitest-dev/vitest/issues/3506](https://github.com/vitest-dev/vitest/issues/3506)
[<samp>(c37cd)</samp>](https://github.com/vitest-dev/vitest/commit/c37cdebe)
- **optimizer**: Always respect optimizeDeps even if include/exclude is
overridden  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3488](https://github.com/vitest-dev/vitest/issues/3488)
[<samp>(eb285)</samp>](https://github.com/vitest-dev/vitest/commit/eb285ea0)
- **runner**: Ensure Vitest is deduped  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3489](https://github.com/vitest-dev/vitest/issues/3489)
[<samp>(2deb7)</samp>](https://github.com/vitest-dev/vitest/commit/2deb70ab)
- **ui**: Don't cache coverage assets  -  by
[@&#8203;userquin](https://github.com/userquin) in
[https://github.com/vitest-dev/vitest/issues/3508](https://github.com/vitest-dev/vitest/issues/3508)
[<samp>(952b5)</samp>](https://github.com/vitest-dev/vitest/commit/952b5be6)
- **vite-node**: Circular import stuck  -  by
[@&#8203;Dunqing](https://github.com/Dunqing) in
[https://github.com/vitest-dev/vitest/issues/3480](https://github.com/vitest-dev/vitest/issues/3480)
[<samp>(50f07)</samp>](https://github.com/vitest-dev/vitest/commit/50f0700d)
- **watch**: Junit reporter fails to re-generate report  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3496](https://github.com/vitest-dev/vitest/issues/3496)
[<samp>(5b73c)</samp>](https://github.com/vitest-dev/vitest/commit/5b73cbf8)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.31.4...v0.32.0)

###
[`v0.31.4`](https://github.com/vitest-dev/vitest/releases/tag/v0.31.4)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.31.3...v0.31.4)

#####    🚀 Features

- Enable experimentalOptimizer  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3413](https://github.com/vitest-dev/vitest/issues/3413)
[<samp>(5a894)</samp>](https://github.com/vitest-dev/vitest/commit/5a894aa2)

#####    🐞 Bug Fixes

- **vite-node**: Deps.inline doesn't work  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3485](https://github.com/vitest-dev/vitest/issues/3485)
[<samp>(be930)</samp>](https://github.com/vitest-dev/vitest/commit/be93032f)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.31.3...v0.31.4)

###
[`v0.31.3`](https://github.com/vitest-dev/vitest/releases/tag/v0.31.3)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.31.2...v0.31.3)

#####    🚀 Features

- Support `VITE_NODE_DEPS_MODULE_DIRECTORIES` from .npmrc  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3471](https://github.com/vitest-dev/vitest/issues/3471)
[<samp>(393bf)</samp>](https://github.com/vitest-dev/vitest/commit/393bf60c)

#####    🐞 Bug Fixes

- **logger**: Print unhandled errors before summary  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3474](https://github.com/vitest-dev/vitest/issues/3474)
[<samp>(4c9a7)</samp>](https://github.com/vitest-dev/vitest/commit/4c9a7d58)
- **runner**: Suite options do not propagate to nested suites (fix:
[#&#8203;3467](https://github.com/vitest-dev/vitest/issues/3467))  - 
by [@&#8203;xsjcTony](https://github.com/xsjcTony) in
[https://github.com/vitest-dev/vitest/issues/3473](https://github.com/vitest-dev/vitest/issues/3473)
and
[https://github.com/vitest-dev/vitest/issues/3467](https://github.com/vitest-dev/vitest/issues/3467)
[<samp>(9fb9d)</samp>](https://github.com/vitest-dev/vitest/commit/9fb9dacb)
- **vite-node**: Clear importers when invalidating module  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3475](https://github.com/vitest-dev/vitest/issues/3475)
[<samp>(add29)</samp>](https://github.com/vitest-dev/vitest/commit/add29c86)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.31.2...v0.31.3)

###
[`v0.31.2`](https://github.com/vitest-dev/vitest/releases/tag/v0.31.2)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.31.1...v0.31.2)

#####    🚀 Features

- Throw error if using inline snapshot inside of `test.each` or
`describe.each`  -  by
[@&#8203;fenghan34](https://github.com/fenghan34) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3360](https://github.com/vitest-dev/vitest/issues/3360)
[<samp>(7c2f7)</samp>](https://github.com/vitest-dev/vitest/commit/7c2f7088)
- Pass down meta information to Node.js process  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) and
[@&#8203;dammy001](https://github.com/dammy001) in
[https://github.com/vitest-dev/vitest/issues/3449](https://github.com/vitest-dev/vitest/issues/3449)
[<samp>(e39ad)</samp>](https://github.com/vitest-dev/vitest/commit/e39adea8)
- **coverage**: Add `reportOnFailure` option  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3453](https://github.com/vitest-dev/vitest/issues/3453)
[<samp>(1988f)</samp>](https://github.com/vitest-dev/vitest/commit/1988fcb4)
- **dev**: Add moduleDirectories option to the vitest config  -  by
[@&#8203;fooddilsn](https://github.com/fooddilsn) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3337](https://github.com/vitest-dev/vitest/issues/3337)
[<samp>(b3602)</samp>](https://github.com/vitest-dev/vitest/commit/b3602bcc)

#####    🐞 Bug Fixes

- Don't print empty diff  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3437](https://github.com/vitest-dev/vitest/issues/3437)
[<samp>(32b53)</samp>](https://github.com/vitest-dev/vitest/commit/32b5361f)
- Don't restore methods in automocked dependencies  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3438](https://github.com/vitest-dev/vitest/issues/3438)
[<samp>(d1afd)</samp>](https://github.com/vitest-dev/vitest/commit/d1afd262)
- Dot reporter scrollback buffer spam  -  by
[@&#8203;gtm-nayan](https://github.com/gtm-nayan) in
[https://github.com/vitest-dev/vitest/issues/3415](https://github.com/vitest-dev/vitest/issues/3415)
[<samp>(e6792)</samp>](https://github.com/vitest-dev/vitest/commit/e6792a94)
- Gracefully exit when first `SIGINT` is received  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3407](https://github.com/vitest-dev/vitest/issues/3407)
[<samp>(a2cc2)</samp>](https://github.com/vitest-dev/vitest/commit/a2cc2b38)
- `rejects` & `resolves` breaks with thenable objects  -  by
[@&#8203;fenghan34](https://github.com/fenghan34) in
[https://github.com/vitest-dev/vitest/issues/3456](https://github.com/vitest-dev/vitest/issues/3456)
[<samp>(4e996)</samp>](https://github.com/vitest-dev/vitest/commit/4e996ae5)
- Prevent `birpc` timeouts when `Math.random` mock is not restored  - 
by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3460](https://github.com/vitest-dev/vitest/issues/3460)
[<samp>(cd5d5)</samp>](https://github.com/vitest-dev/vitest/commit/cd5d58b7)
- Assertion diff message now handle non writable property correctly  - 
by [@&#8203;PCreations](https://github.com/PCreations) in
[https://github.com/vitest-dev/vitest/issues/3422](https://github.com/vitest-dev/vitest/issues/3422)
[<samp>(f75ab)</samp>](https://github.com/vitest-dev/vitest/commit/f75ab650)
- Extend logging of process timeout errors  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3452](https://github.com/vitest-dev/vitest/issues/3452)
[<samp>(42643)</samp>](https://github.com/vitest-dev/vitest/commit/42643904)
- Support requiring files with `less` extension  -  by
[@&#8203;rluvaton](https://github.com/rluvaton) in
[https://github.com/vitest-dev/vitest/issues/3465](https://github.com/vitest-dev/vitest/issues/3465)
[<samp>(4d045)</samp>](https://github.com/vitest-dev/vitest/commit/4d045695)
-   **cli**:
- Improve colors used when erroring  -  by
[@&#8203;ghiscoding](https://github.com/ghiscoding) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3349](https://github.com/vitest-dev/vitest/issues/3349)
[<samp>(16681)</samp>](https://github.com/vitest-dev/vitest/commit/16681791)
-   **runner**:
- Suite timeout does not take effect  -  by
[@&#8203;btea](https://github.com/btea) in
[https://github.com/vitest-dev/vitest/issues/3455](https://github.com/vitest-dev/vitest/issues/3455)
[<samp>(82547)</samp>](https://github.com/vitest-dev/vitest/commit/82547376)
-   **spy**:
- Don't print received calls if there are no calls  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3405](https://github.com/vitest-dev/vitest/issues/3405)
[<samp>(41e11)</samp>](https://github.com/vitest-dev/vitest/commit/41e11dad)
-   **typecheck**:
- Show tsc errors not related to test files  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3441](https://github.com/vitest-dev/vitest/issues/3441)
[<samp>(a1da5)</samp>](https://github.com/vitest-dev/vitest/commit/a1da5714)
-   **types**:
- Fix `PartialMock` with async TReturns  -  by
[@&#8203;ghry5](https://github.com/ghry5) in
[https://github.com/vitest-dev/vitest/issues/3462](https://github.com/vitest-dev/vitest/issues/3462)
[<samp>(b664d)</samp>](https://github.com/vitest-dev/vitest/commit/b664d42c)
-   **vite-node**:
- Circular import stuck  -  by
[@&#8203;Dunqing](https://github.com/Dunqing) in
[https://github.com/vitest-dev/vitest/issues/3418](https://github.com/vitest-dev/vitest/issues/3418)
[<samp>(632ee)</samp>](https://github.com/vitest-dev/vitest/commit/632eef40)
- Coerce to string in import(dep)  -  by
[@&#8203;jcbhmr](https://github.com/jcbhmr) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3430](https://github.com/vitest-dev/vitest/issues/3430)
[<samp>(b72eb)</samp>](https://github.com/vitest-dev/vitest/commit/b72ebdb9)
- Don't remove sourcemap string in source code  -  by
[@&#8203;rxliuli](https://github.com/rxliuli) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/2918](https://github.com/vitest-dev/vitest/issues/2918)
and
[https://github.com/vitest-dev/vitest/issues/3379](https://github.com/vitest-dev/vitest/issues/3379)
[<samp>(02dc9)</samp>](https://github.com/vitest-dev/vitest/commit/02dc9ea7)
- Don't externalize "dist" by default  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3446](https://github.com/vitest-dev/vitest/issues/3446)
[<samp>(306b2)</samp>](https://github.com/vitest-dev/vitest/commit/306b2337)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.31.1...v0.31.2)

###
[`v0.31.1`](https://github.com/vitest-dev/vitest/releases/tag/v0.31.1)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.31.0...v0.31.1)

#####    🚀 Features

- **watch**: Press `r` should rerun current pattern tests  -  by
[@&#8203;Dunqing](https://github.com/Dunqing) and
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3305](https://github.com/vitest-dev/vitest/issues/3305)
[<samp>(69d27)</samp>](https://github.com/vitest-dev/vitest/commit/69d27117)

#####    🐞 Bug Fixes

- Make sure thrown error is an object  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3298](https://github.com/vitest-dev/vitest/issues/3298)
[<samp>(a93be)</samp>](https://github.com/vitest-dev/vitest/commit/a93be56c)
- Remove duplicate type  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3303](https://github.com/vitest-dev/vitest/issues/3303)
[<samp>(5382e)</samp>](https://github.com/vitest-dev/vitest/commit/5382e8b6)
- Throw an error, if tests are collected with a different vitest version
 -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3301](https://github.com/vitest-dev/vitest/issues/3301)
[<samp>(708b1)</samp>](https://github.com/vitest-dev/vitest/commit/708b10fe)
- Support application/x-gzip metadata in html report  -  by
[@&#8203;mzanelee](https://github.com/mzanelee) and **Michael Lee** in
[https://github.com/vitest-dev/vitest/issues/3333](https://github.com/vitest-dev/vitest/issues/3333)
[<samp>(5bf7e)</samp>](https://github.com/vitest-dev/vitest/commit/5bf7eb6e)
- Correctly restore vi.fn implementation  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3341](https://github.com/vitest-dev/vitest/issues/3341)
[<samp>(2aff8)</samp>](https://github.com/vitest-dev/vitest/commit/2aff8c5f)
- Display error message correctly  -  by
[@&#8203;btea](https://github.com/btea) in
[https://github.com/vitest-dev/vitest/issues/3314](https://github.com/vitest-dev/vitest/issues/3314)
[<samp>(a5b3d)</samp>](https://github.com/vitest-dev/vitest/commit/a5b3d78e)
- Exclude `cwd` from test name filter  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3353](https://github.com/vitest-dev/vitest/issues/3353)
[<samp>(324a9)</samp>](https://github.com/vitest-dev/vitest/commit/324a9b54)
- Check error type before modifying it  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3385](https://github.com/vitest-dev/vitest/issues/3385)
[<samp>(c44d9)</samp>](https://github.com/vitest-dev/vitest/commit/c44d9912)
- `toMatchInlineSnapshot` fails when file path includes parentheses  - 
by [@&#8203;pacexy](https://github.com/pacexy) in
[https://github.com/vitest-dev/vitest/issues/3370](https://github.com/vitest-dev/vitest/issues/3370)
and
[https://github.com/vitest-dev/vitest/issues/3371](https://github.com/vitest-dev/vitest/issues/3371)
[<samp>(dcf13)</samp>](https://github.com/vitest-dev/vitest/commit/dcf1346a)
- Stop spying on a method, when it's restored  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3386](https://github.com/vitest-dev/vitest/issues/3386)
[<samp>(2cb1a)</samp>](https://github.com/vitest-dev/vitest/commit/2cb1a15a)
- Test repeats  -  by
[@&#8203;fenghan34](https://github.com/fenghan34) in
[https://github.com/vitest-dev/vitest/issues/3369](https://github.com/vitest-dev/vitest/issues/3369)
[<samp>(fb8fc)</samp>](https://github.com/vitest-dev/vitest/commit/fb8fc7ab)
-   **browser**:
- Throw an error if test failed to load  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3390](https://github.com/vitest-dev/vitest/issues/3390)
[<samp>(b354b)</samp>](https://github.com/vitest-dev/vitest/commit/b354bc1c)
- Keep default export when rewriting exports  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3389](https://github.com/vitest-dev/vitest/issues/3389)
[<samp>(6501d)</samp>](https://github.com/vitest-dev/vitest/commit/6501d2e3)
-   **cli**:
- Improve cac errors when mixing boolean and dot notation  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3302](https://github.com/vitest-dev/vitest/issues/3302)
[<samp>(93fbd)</samp>](https://github.com/vitest-dev/vitest/commit/93fbd02d)
-   **reporter**:
- Prevent deleting test reports stored in coverage directory  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3331](https://github.com/vitest-dev/vitest/issues/3331)
[<samp>(ddbba)</samp>](https://github.com/vitest-dev/vitest/commit/ddbba396)
-   **typecheck**:
- Correctly resolve custom tsconfig path  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3342](https://github.com/vitest-dev/vitest/issues/3342)
[<samp>(c53ae)</samp>](https://github.com/vitest-dev/vitest/commit/c53ae079)
-   **vite-node**:
- Allow returning id not wrapped in promise  -  by
[@&#8203;danielroe](https://github.com/danielroe) in
[https://github.com/vitest-dev/vitest/issues/3312](https://github.com/vitest-dev/vitest/issues/3312)
[<samp>(9836c)</samp>](https://github.com/vitest-dev/vitest/commit/9836ccb4)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.31.0...v0.31.1)

###
[`v0.31.0`](https://github.com/vitest-dev/vitest/releases/tag/v0.31.0)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.30.1...v0.31.0)

#####    🚨 Breaking Changes

- Remove `browser` from allowed pools inside `poolMatchGlob` config
option. Please, use Vitest workspaces for running tests in the browser.
- Move assertion declarations to expect package  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3294](https://github.com/vitest-dev/vitest/issues/3294)
[<samp>(cf3af)</samp>](https://github.com/vitest-dev/vitest/commit/cf3afe2b)

    -   The change should be minor:

    ```diff
    - declare namespace Vi {
    + declare module 'vitest' {
       interface Assertion<T = any> extends CustomMatchers<T> {}
       interface AsymmetricMatchersContaining extends CustomMatchers {}
    }
    ```

#####    🚀 Features

- Update mock implementation to support ESM runtime, introduce
"vi.hoisted"  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3258](https://github.com/vitest-dev/vitest/issues/3258)
[<samp>(0c09a)</samp>](https://github.com/vitest-dev/vitest/commit/0c09a40d)
- Bypass ESM import order restriction with `vi.hoisted` to run code
before imports are executed:
    ```ts
    vi.hoisted(() => vi.setSystemTime(new Date(2022, 1, 1)))
    ```
    You can also use it to pass variables to `vi.mock`:
    ```ts
    const { mockedMethod } = vi.hoisted(() => {
      return { mockedMethod: vi.fn() }
    })   
    vi.mock('./path/to/module.js', () => {
      return { originalMethod: mockedMethod }
    })
    ```
- Add repeat method to tests  -  by
[@&#8203;samkevin1](https://github.com/samkevin1) in
[https://github.com/vitest-dev/vitest/issues/2652](https://github.com/vitest-dev/vitest/issues/2652)
[<samp>(7c8f0)</samp>](https://github.com/vitest-dev/vitest/commit/7c8f0ba9)
- Add an option to hide skipped test lines  -  by
[@&#8203;g4rry420](https://github.com/g4rry420) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/2745](https://github.com/vitest-dev/vitest/issues/2745)
[<samp>(9bdb1)</samp>](https://github.com/vitest-dev/vitest/commit/9bdb1603)
- **coverage**: Watermarks for c8  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3254](https://github.com/vitest-dev/vitest/issues/3254)
[<samp>(730af)</samp>](https://github.com/vitest-dev/vitest/commit/730af0b4)
- **ui**: Add html coverage  -  by
[@&#8203;userquin](https://github.com/userquin) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3071](https://github.com/vitest-dev/vitest/issues/3071)
[<samp>(e24cd)</samp>](https://github.com/vitest-dev/vitest/commit/e24cd9b2)
- **watch**: Test run cancelling, feat: `--bail` option for cancelling
test run  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3163](https://github.com/vitest-dev/vitest/issues/3163)
[<samp>(8d460)</samp>](https://github.com/vitest-dev/vitest/commit/8d4606eb)

#####    🐞 Bug Fixes

- Don't call global setup teardown twice  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3188](https://github.com/vitest-dev/vitest/issues/3188)
[<samp>(ba3d1)</samp>](https://github.com/vitest-dev/vitest/commit/ba3d1338)
- Reporter to log version before provider initalizations  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3131](https://github.com/vitest-dev/vitest/issues/3131)
[<samp>(481b1)</samp>](https://github.com/vitest-dev/vitest/commit/481b1fd2)
- Throw an error if Vitest cannot access its internal state  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3250](https://github.com/vitest-dev/vitest/issues/3250)
[<samp>(fbb14)</samp>](https://github.com/vitest-dev/vitest/commit/fbb1468e)
- Warning suppression broken  -  by
[@&#8203;IceQub3](https://github.com/IceQub3) in
[https://github.com/vitest-dev/vitest/issues/3270](https://github.com/vitest-dev/vitest/issues/3270)
and
[https://github.com/vitest-dev/vitest/issues/3271](https://github.com/vitest-dev/vitest/issues/3271)
[<samp>(036de)</samp>](https://github.com/vitest-dev/vitest/commit/036de797)
- Show correct diff in "toHaveBeenCalledWith"  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3289](https://github.com/vitest-dev/vitest/issues/3289)
[<samp>(19fcd)</samp>](https://github.com/vitest-dev/vitest/commit/19fcd8df)
- Don't print esm warning, if package name is not found  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3292](https://github.com/vitest-dev/vitest/issues/3292)
[<samp>(62c14)</samp>](https://github.com/vitest-dev/vitest/commit/62c14cba)
- Support exactOptionalPropertyTypes  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3293](https://github.com/vitest-dev/vitest/issues/3293)
[<samp>(ba81d)</samp>](https://github.com/vitest-dev/vitest/commit/ba81d8a3)
- Don't inline vite hmr and rollup types  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3291](https://github.com/vitest-dev/vitest/issues/3291)
[<samp>(1f118)</samp>](https://github.com/vitest-dev/vitest/commit/1f1189bc)
-   **browser**:
- Failing to load vitest/utils  -  by
[@&#8203;userquin](https://github.com/userquin) in
[https://github.com/vitest-dev/vitest/issues/3190](https://github.com/vitest-dev/vitest/issues/3190)
[<samp>(78bad)</samp>](https://github.com/vitest-dev/vitest/commit/78bad4ab)
-   **coverage**:
- `thresholdAutoUpdate` to work with `perFile`  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3182](https://github.com/vitest-dev/vitest/issues/3182)
[<samp>(29eeb)</samp>](https://github.com/vitest-dev/vitest/commit/29eebf65)
- Throw error if fail to load built-in provider  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3217](https://github.com/vitest-dev/vitest/issues/3217)
[<samp>(0a287)</samp>](https://github.com/vitest-dev/vitest/commit/0a2875e3)
- Stackblitz hangs with c8  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3225](https://github.com/vitest-dev/vitest/issues/3225)
[<samp>(d9fda)</samp>](https://github.com/vitest-dev/vitest/commit/d9fda2a1)
- C8 to ignore vite's generated helpers  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3241](https://github.com/vitest-dev/vitest/issues/3241)
[<samp>(21942)</samp>](https://github.com/vitest-dev/vitest/commit/21942db0)
- Workspaces c8 source maps  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3226](https://github.com/vitest-dev/vitest/issues/3226)
[<samp>(efce3)</samp>](https://github.com/vitest-dev/vitest/commit/efce3b4d)
-   **docs**:
- Correct typo and broken link to WebdriverIO  -  by
[@&#8203;nathanbabcock](https://github.com/nathanbabcock) in
[https://github.com/vitest-dev/vitest/issues/3275](https://github.com/vitest-dev/vitest/issues/3275)
[<samp>(c7da1)</samp>](https://github.com/vitest-dev/vitest/commit/c7da155f)
-   **spy**:
- Update to set initial implementation through normal logic  -  by
[@&#8203;Codex-](https://github.com/Codex-) in
[https://github.com/vitest-dev/vitest/issues/3260](https://github.com/vitest-dev/vitest/issues/3260)
and
[https://github.com/vitest-dev/vitest/issues/3263](https://github.com/vitest-dev/vitest/issues/3263)
[<samp>(c759a)</samp>](https://github.com/vitest-dev/vitest/commit/c759a9aa)
-   **vite-node**:
- Circular imports  -  by [@&#8203;antfu](https://github.com/antfu) in
[https://github.com/vitest-dev/vitest/issues/3196](https://github.com/vitest-dev/vitest/issues/3196)
[<samp>(cbb59)</samp>](https://github.com/vitest-dev/vitest/commit/cbb593a8)
- Add missing `import.meta.hot.send` mock  -  by
[@&#8203;antfu](https://github.com/antfu)
[<samp>(b1624)</samp>](https://github.com/vitest-dev/vitest/commit/b1624db5)
-   **vitest**:
- Also check for vite relative to vitest package  -  by
[@&#8203;JoshuaKGoldberg](https://github.com/JoshuaKGoldberg) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3274](https://github.com/vitest-dev/vitest/issues/3274)
[<samp>(a3393)</samp>](https://github.com/vitest-dev/vitest/commit/a3393b15)
-   **watch**:
- Run test files when added to filesystem  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3189](https://github.com/vitest-dev/vitest/issues/3189)
[<samp>(7b2c8)</samp>](https://github.com/vitest-dev/vitest/commit/7b2c81bc)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.30.1...v0.31.0)

</details>

<details>
<summary>capricorn86/happy-dom</summary>

###
[`v9.20.3`](https://github.com/capricorn86/happy-dom/releases/tag/v9.20.3)

[Compare
Source](https://github.com/capricorn86/happy-dom/compare/v9.20.2...v9.20.3)

##### :construction_worker_man: Patch fixes

- Fixes issue where all properties didn't get copied from
`HTMLUnknownElement` to a custom element that is replacing it when it is
defined.
([#&#8203;668](https://github.com/capricorn86/happy-dom/issues/668))

###
[`v9.20.2`](https://github.com/capricorn86/happy-dom/releases/tag/v9.20.2)

[Compare
Source](https://github.com/capricorn86/happy-dom/compare/v9.20.1...v9.20.2)

##### :construction_worker_man: Patch fixes

- Fixes issue where CSS variable values where not returned by
`Window.getComputedStyle()` when calling
`CSSStyleDeclaration.getPropertyValue()`.
([#&#8203;932](https://github.com/capricorn86/happy-dom/issues/932))

###
[`v9.20.1`](https://github.com/capricorn86/happy-dom/releases/tag/v9.20.1)

[Compare
Source](https://github.com/capricorn86/happy-dom/compare/v9.20.0...v9.20.1)

##### :construction_worker_man: Patch fixes

- Fixes problem with `querySelectorAll()` where it didn't always return
elements in document order.
([#&#8203;928](https://github.com/capricorn86/happy-dom/issues/928))

###
[`v9.20.0`](https://github.com/capricorn86/happy-dom/releases/tag/v9.20.0)

[Compare
Source](https://github.com/capricorn86/happy-dom/compare/v9.19.2...v9.20.0)

##### :art: Features

- Adds support for disabling the simulation of rendering when
calculating computed style. The rendering process converts units such as
rem, em and cm to pixels, but it is very limited.
([#&#8203;929](https://github.com/capricorn86/happy-dom/issues/929))
- Changes the behavior of converting percentage values to "0px" when
calculating computed style (as it fails to convert) to just leave the
values.

###
[`v9.19.2`](https://github.com/capricorn86/happy-dom/releases/tag/v9.19.2)

[Compare
Source](https://github.com/capricorn86/happy-dom/compare/v9.19.1...v9.19.2)

##### :construction_worker_man: Patch fixes

- Fixes issue where attribute selectors with an operator and with a
value without quatation marks no longer worked (e.g. "\[attr^=value]").
([#&#8203;923](https://github.com/capricorn86/happy-dom/issues/923))

###
[`v9.19.1`](https://github.com/capricorn86/happy-dom/releases/tag/v9.19.1)

[Compare
Source](https://github.com/capricorn86/happy-dom/compare/v9.19.0...v9.19.1)

##### :construction_worker_man: Patch fixes

-   Adds support for the mime type "apng" to `XMLHttpRequest`

***

Thank you [@&#8203;btea](https://github.com/btea) for your
contribution!

###
[`v9.19.0`](https://github.com/capricorn86/happy-dom/releases/tag/v9.19.0)

[Compare
Source](https://github.com/capricorn86/happy-dom/compare/v9.18.3...v9.19.0)

##### :art: Features

- Adds support for "rem", "em", "vw", "vh", "vmin", "vmax", "cm", "mm",
"in", "pt", "pc", "Q" measurement values to `Window.getComputedStyle()`
and `Window.matchMedia()`
([#&#8203;921](https://github.com/capricorn86/happy-dom/issues/921))
- Adds support for "%" measurement values to `Window.getComputedStyle()`
and `Window.matchMedia()` when setting font size (other properties will
be set to "0px")
([#&#8203;921](https://github.com/capricorn86/happy-dom/issues/921))
- Sets "font: 16px "Times new Roman"" as default font on the `<html>`
when using `Window.getComputedStyle()`
([#&#8203;921](https://github.com/capricorn86/happy-dom/issues/921))
- Adds support for "outline", "outline-color", "outline-style",
"outline-width", "outline-offset", "letter-spacing", "word-spacing" and
"text-indent" to `CSSStyleDeclaration`.
([#&#8203;921](https://github.com/capricorn86/happy-dom/issues/921))
- Adds support for the media query rules "orientation",
"prefers-color-scheme", "any-hover", "hover", "any-pointer", "pointer",
"display-mode", "width", "height", "min-aspect-ratio",
"max-aspect-ratio" and "aspect-ratio"
([#&#8203;921](https://github.com/capricorn86/happy-dom/issues/921))
- Improves support for the media query rules "min-width", "max-width",
"min-height" and "max-height"
([#&#8203;921](https://github.com/capricorn86/happy-dom/issues/921))
- Adds support for media types "all", "screen" and "print" to media
queries
([#&#8203;921](https://github.com/capricorn86/happy-dom/issues/921))
- Adds support for the "only", "not", "and" and "or" operators to media
queries
([#&#8203;921](https://github.com/capricorn86/happy-dom/issues/921))
- Adds support for ranges to media queries
([#&#8203;921](https://github.com/capricorn86/happy-dom/issues/921))
- Adds support for "@&#8203;-webkit-keyframes",
"@&#8203;-webkit-container" and "@&#8203;-webkit-supports" to CSS parser
([#&#8203;921](https://github.com/capricorn86/happy-dom/issues/921))

##### :construction_worker_man: Patch fixes

- Adds support for ignoring unknown "@&#8203;" rules to the CSS parser.
([#&#8203;921](https://github.com/capricorn86/happy-dom/issues/921))
- Adds support for the "height" property to `CSSStyleDeclaration`. Not
having support for "height" was missed somehow, as we have support for
"width".
([#&#8203;922](https://github.com/capricorn86/happy-dom/issues/922))

###
[`v9.18.3`](https://github.com/capricorn86/happy-dom/releases/tag/v9.18.3)

[Compare
Source](https://github.com/capricorn86/happy-dom/compare/v9.18.2...v9.18.3)

##### :construction_worker_man: Patch fixes

- Fixes issue where non-string values did not get converted to strings
in `CharacterData.data`, `CharacterData.nodeValue` or
`CharacterData.textContent`.
([#&#8203;819](https://github.com/capricorn86/happy-dom/issues/819))

###
[`v9.18.2`](https://github.com/capricorn86/happy-dom/releases/tag/v9.18.2)

[Compare
Source](https://github.com/capricorn86/happy-dom/compare/v9.18.1...v9.18.2)

##### :construction_worker_man: Patch fixes

- Fixes issue in the XML parser where it failed to parse comments
including dash characters (-).
([#&#8203;916](https://github.com/capricorn86/happy-dom/issues/916))

***

Thank you [@&#8203;gtm-nayan](https://github.com/gtm-nayan) for your
contribution!

###
[`v9.18.1`](https://github.com/capricorn86/happy-dom/releases/tag/v9.18.1)

[Compare
Source](https://github.com/capricorn86/happy-dom/compare/v9.18.0...v9.18.1)

##### :construction_worker_man: Patch fixes

- Fixes issue where attribute query selectors using "~" or "|" as
operators for finding attributes containing a word did not match when
there was only one word.
([#&#8203;914](https://github.com/capricorn86/happy-dom/issues/914))

###
[`v9.18.0`](https://github.com/capricorn86/happy-dom/releases/tag/v9.18.0)

[Compare
Source](https://github.com/capricorn86/happy-dom/compare/v9.17.0...v9.18.0)

##### :art: Features

- Adds support for triggering an error event when attempting to fetch a
CSS file or Javascript file when it has been disabled using
"window.happyDOM.settings.\*".
([#&#8203;849](https://github.com/capricorn86/happy-dom/issues/849))

###
[`v9.17.0`](https://github.com/capricorn86/happy-dom/releases/tag/v9.17.0)

[Compare
Source](https://github.com/capricorn86/happy-dom/compare/v9.16.0...v9.17.0)

##### :art: Features

- Adds support for "i" and "s" modifiers to attribute query selectors.
([#&#8203;911](https://github.com/capricorn86/happy-dom/issues/911))

###
[`v9.16.0`](https://github.com/capricorn86/happy-dom/releases/tag/v9.16.0)

[Compare
Source](https://github.com/capricorn86/happy-dom/compare/v9.15.0...v9.16.0)

##### :art: Features

- Adds support for encoding HTML entities to the XML parser.
([#&#8203;908](https://github.com/capricorn86/happy-dom/issues/908))
- Adds support for escaping text to `XMLSerializer.serializeToString()`.
([#&#8203;908](https://github.com/capricorn86/happy-dom/issues/908))

###
[`v9.15.0`](https://github.com/capricorn86/happy-dom/releases/tag/v9.15.0)

[Compare
Source](https://github.com/capricorn86/happy-dom/compare/v9.14.0...v9.15.0)

##### :art: Features

- Changes deprecated "shadowroot" attribute to "shadowrootmode" in
[Declarative Shadow
DOM](https://developer.chrome.com/articles/declarative-shadow-dom/)
generated by `Element.getInnerHTML()`.
([#&#8203;898](https://github.com/capricorn86/happy-dom/issues/898))

***

Thank you [@&#8203;crypto-scythe](https://github.com/crypto-scythe)
for your contribution!

###
[`v9.14.0`](https://github.com/capricorn86/happy-dom/releases/tag/v9.14.0)

[Compare
Source](https://github.com/capricorn86/happy-dom/compare/v9.13.1...v9.14.0)

##### :art: Features

- Adds support for `Document.links`.
([#&#8203;896](https://github.com/capricorn86/happy-dom/issues/896))

***

Thank you [@&#8203;btea](https://github.com/btea) for your
contribution!

###
[`v9.13.1`](https://github.com/capricorn86/happy-dom/releases/tag/v9.13.1)

[Compare
Source](https://github.com/capricorn86/happy-dom/compare/v9.13.0...v9.13.1)

##### :construction_worker_man: Patch fixes

- Fixes issue related to "@&#8203;" CSS rules in (e.g.
"@&#8203;-webkit-keyframes") causing an exception to be thrown in
`CSSStyleDeclaration`.
([#&#8203;889](https://github.com/capricorn86/happy-dom/issues/889))

***

Thank you [@&#8203;btea](https://github.com/btea) for your
contribution!

###
[`v9.13.0`](https://github.com/capricorn86/happy-dom/releases/tag/v9.13.0)

[Compare
Source](https://github.com/capricorn86/happy-dom/compare/v9.12.0...v9.13.0)

##### :art: Features

- Improves performance of `Element.querySelectorAll()`. The performance
was decreased after the implementation of document sorting order, due to
the fact that it relied on `Object.assign()` for each match, which is
slower than iterating through all matches in the end.
([#&#8203;909](https://github.com/capricorn86/happy-dom/issues/909))

###
[`v9.12.0`](https://github.com/capricorn86/happy-dom/releases/tag/v9.12.0)

[Compare
Source](https://github.com/capricorn86/happy-dom/compare/v9.11.0...v9.12.0)

##### :art: Features

- Adds support for the "of selector" to ":nth-child" and
":nth-last-child" query selectors.
([#&#8203;905](https://github.com/capricorn86/happy-dom/issues/905))

##### :construction_worker_man: Patch fixes

- Fixes bug but where "nth-\*" query selectors didn't return the correct
elements when prefixing "n" with "-".
([#&#8203;905](https://github.com/capricorn86/happy-dom/issues/905))

###
[`v9.11.0`](https://github.com/capricorn86/happy-dom/releases/tag/v9.11.0)

[Compare
Source](https://github.com/capricorn86/happy-dom/compare/v9.10.9...v9.11.0)

##### :art: Features

- Refactors the XML parser, which fixes several issues related to
parsing complex HTML (e.g. attributes containing ">").
([#&#8203;578](https://github.com/capricorn86/happy-dom/issues/578))
- Improves performance of XML parsing significantly.
([#&#8203;578](https://github.com/capricorn86/happy-dom/issues/578))

###
[`v9.10.9`](https://github.com/capricorn86/happy-dom/releases/tag/v9.10.9)

[Compare
Source](https://github.com/capricorn86/happy-dom/compare/v9.10.8...v9.10.9)

##### :construction_worker_man: Patch fixes

- Adds support for `Request.formData()`.
([#&#8203;892](https://github.com/capricorn86/happy-dom/issues/892))

***

Thank you [@&#8203;rolandjohann](https://github.com/rolandjohann) for
your contribution!

###
[`v9.10.8`](https://github.com/capricorn86/happy-dom/releases/tag/v9.10.8)

[Compare
Source](https://github.com/capricorn86/happy-dom/compare/v9.10.7...v9.10.8)

##### :construction_worker_man: Patch fixes

- Fixes an issue where `HTMLAnchorElement.toString()` returned
"HTMLElement.outerHTML", but should return "HTMLAnchorElement.href"
according to spec.
([#&#8203;890](https://github.com/capricorn86/happy-dom/issues/890))

***

Thank you [@&#8203;Schleuse](https://github.com/Schleuse) for your
contribution!

###
[`v9.10.7`](https://github.com/capricorn86/happy-dom/releases/tag/v9.10.7)

[Compare
Source](https://github.com/capricorn86/happy-dom/compare/v9.10.6...v9.10.7)

##### :construction_worker_man: Patch fixes

- Fix for parsing CSS comments with asterisks.
([#&#8203;887](https://github.com/capricorn86/happy-dom/issues/887))

***

Thank you for your contribution
[@&#8203;htuomola](https://github.com/htuomola)!

###
[`v9.10.6`](https://github.com/capricorn86/happy-dom/releases/tag/v9.10.6)

[Compare
Source](https://github.com/capricorn86/happy-dom/compare/v9.10.5...v9.10.6)

##### :construction_worker_man: Patch fixes

- Fixes bug where errors where not handled correctly when performing a
synchronous request with `XMLHttpRequest`.
([#&#8203;795](https://github.com/capricorn86/happy-dom/issues/795))
- Adds support for `XMLHttpRequest.response`.
([#&#8203;788](https://github.com/capricorn86/happy-dom/issues/788))

***

Thank you [@&#8203;Mas0nShi](https://github.com/Mas0nShi) for your
contribution!

###
[`v9.10.5`](https://github.com/capricorn86/happy-dom/releases/tag/v9.10.5)

[Compare
Source](https://github.com/capricorn86/happy-dom/compare/v9.10.4...v9.10.5)

##### :construction_worker_man: Patch fixes

- Fixes issue in `HTMLCollection` and `HTMLFormControlsCollection`
related to id/name of elements colliding with class properties and
methods.
([#&#8203;875](https://github.com/capricorn86/happy-dom/issues/875))

###
[`v9.10.4`](https://github.com/capricorn86/happy-dom/releases/tag/v9.10.4)

[Compare
Source](https://github.com/capricorn86/happy-dom/compare/v9.10.3...v9.10.4)

##### :construction_worker_man: Patch fixes

- Fixes issue related to query selection for attributes not using
apostrophe for the value. This caused an issue with finding elements by
text in Testing Library.
([#&#8203;883](https://github.com/capricorn86/happy-dom/issues/883))

###
[`v9.10.3`](https://github.com/capricorn86/happy-dom/releases/tag/v9.10.3)

[Compare
Source](https://github.com/capricorn86/happy-dom/compare/v9.10.2...v9.10.3)

##### :construction_worker_man: Patch fixes

- Fixes issue where React "onChange" listeners never got executed when
triggering a `click()`.
([#&#8203;880](https://github.com/capricorn86/happy-dom/issues/880))
- Fixes issue where it was not possible to use multiple pseudo query
selectors (e.g. "input:not(\[type]):not(\[list])"). This solves a
problem in Testing Library where it failed to find elements by role
"checkbox".
([#&#8203;880](https://github.com/capricorn86/happy-dom/issues/880))

###
[`v9.10.2`](https://github.com/capricorn86/happy-dom/releases/tag/v9.10.2)

[Compare
Source](https://github.com/capricorn86/happy-dom/compare/v9.10.1...v9.10.2)

##### :construction_worker_man: Patch fixes

- Fixes issue related to query selection for attributes with empty value
(e.g. '\[attr1=""]').
([#&#8203;881](https://github.com/capricorn86/happy-dom/issues/881))

###
[`v9.10.1`](https://github.com/capricorn86/happy-dom/releases/tag/v9.10.1)

[Compare
Source](https://github.com/capricorn86/happy-dom/compare/v9.10.0...v9.10.1)

##### :construction_worker_man: Patch fixes

- Adds support for using escaped characters to ID:s in query selectors
(e.g. "#\\\\:id").
([#&#8203;877](https://github.com/capricorn86/happy-dom/issues/877))

###
[`v9.10.0`](https://github.com/capricorn86/happy-dom/releases/tag/v9.10.0)

[Compare
Source](https://github.com/capricorn86/happy-dom/compare/v9.9.2...v9.10.0)

##### :art: Features

- Refactors the internal logic of how query selection works to improve
performance and make maintenance easier.
([#&#8203;792](https://github.com/capricorn86/happy-dom/issues/792))
- Adds support for adjacent sibling to query selectors (e.g. ".a + .b").
([#&#8203;792](https://github.com/capricorn86/happy-dom/issues/792))

##### :construction_worker_man: Patch fixes

- Fixes issue where `*.querySelectorAll()` did not return elements in
document order.
([#&#8203;285](https://github.com/capricorn86/happy-dom/issues/285))

</details>

<details>
<summary>isaacs/rimraf</summary>

###
[`v5.0.1`](https://github.com/isaacs/rimraf/compare/v5.0.0...v5.0.1)

[Compare
Source](https://github.com/isaacs/rimraf/compare/v5.0.0...v5.0.1)

</details>

<details>
<summary>semantic-release/semantic-release</summary>

###
[`v21.0.5`](https://github.com/semantic-release/semantic-release/releases/tag/v21.0.5)

[Compare
Source](https://github.com/semantic-release/semantic-release/compare/v21.0.4...v21.0.5)

##### Bug Fixes

- **deps:** update dependency marked to v5
([452e1fa](https://github.com/semantic-release/semantic-release/commit/452e1fa4b99759f408b503480e7a1ee8cc76f007))

###
[`v21.0.4`](https://github.com/semantic-release/semantic-release/releases/tag/v21.0.4)

[Compare
Source](https://github.com/semantic-release/semantic-release/compare/v21.0.3...v21.0.4)

##### Bug Fixes

- **deps:** update dependency
[@&#8203;semantic-release/error](https://github.com/semantic-release/error)
to v4
([d259350](https://github.com/semantic-release/semantic-release/commit/d259350c3ed274078fb5bd000250966c93b64503))

###
[`v21.0.3`](https://github.com/semantic-release/semantic-release/releases/tag/v21.0.3)

[Compare
Source](https://github.com/semantic-release/semantic-release/compare/v21.0.2...v21.0.3)

##### Bug Fixes

- bump `@semantic-release/commit-analyzer` to `v10.0.0-beta.1`
([4a6b31f](https://github.com/semantic-release/semantic-release/commit/4a6b31f57e84287aaa8e4868d57ba54aa2ca2b71))
- bump `@semantic-release/github` to `9.0.0-beta.2`
([#&#8203;2818](https://github.com/semantic-release/semantic-release/issues/2818))
([6f19d77](https://github.com/semantic-release/semantic-release/commit/6f19d77e54e21ae3a4e83a992119effb923afc94))
- **deps:** updated the beta plugins to stable versions
([3941018](https://github.com/semantic-release/semantic-release/commit/39410186dfd3c24c30a9b316a83d466af6c54ace))

###
[`v21.0.2`](https://github.com/semantic-release/semantic-release/releases/tag/v21.0.2)

[Compare
Source](https://github.com/semantic-release/semantic-release/compare/v21.0.1...v21.0.2)

##### Bug Fixes

- **deps:** update dependency
[@&#8203;semantic-release/release-notes-generator](https://github.com/semantic-release/release-notes-generator)
to v11
([#&#8203;2778](https://github.com/semantic-release/semantic-release/issues/2778))
([ac40804](https://github.com/semantic-release/semantic-release/commit/ac40804dc4b90df783bbee3e439e03cefb76c47f))

</details>

<details>
<summary>TypeStrong/TypeDoc</summary>

###
[`v0.24.8`](https://github.com/TypeStrong/TypeDoc/blob/HEAD/CHANGELOG.md#v0248-2023-06-04)

[Compare
Source](https://github.com/TypeStrong/TypeDoc/compare/v0.24.7...v0.24.8)

##### Features

- Added support for TypeScript 5.1,
[#&#8203;2296](https://github.com/TypeStrong/TypeDoc/issues/2296).
- Added `navigation.fullTree` to control rendering the full navigation
tree on each page,
[#&#8203;2287](https://github.com/TypeStrong/TypeDoc/issues/2287).
This option will likely be replaced in 0.25 with dynamic loading of the
full tree.
- TypeDoc's `--pretty` option now also controls whether generated HTML
contains line breaks,
[#&#8203;2287](https://github.com/TypeStrong/TypeDoc/issues/2287).
- Optimized icon caching to reduce file size in generated HTML
documentation,
[#&#8203;2287](https://github.com/TypeStrong/TypeDoc/issues/2287).
- Render property description of "roughly top level" object types,
[#&#8203;2276](https://github.com/TypeStrong/TypeDoc/issues/2276).
- Added `MarkdownEvent.INCLUDE` for plugins,
[#&#8203;2284](https://github.com/TypeStrong/TypeDoc/issues/2284).

##### Bug Fixes

- When rendering functions/methods, TypeDoc will now render the comment
summary above the parameters/return type,
and any other block tags in the order they are defined in the comment,
[#&#8203;2285](https://github.com/TypeStrong/TypeDoc/issues/2285).
- Comments are no longer removed from classes/interfaces containing call
signatures,
[#&#8203;2290](https://github.com/TypeStrong/TypeDoc/issues/2290).

##### Thanks!

-   [@&#8203;krisztianb](https://github.com/krisztianb)
-   [@&#8203;WikiRik](https://github.com/WikiRik)

###
[`v0.24.7`](https://github.com/TypeStrong/TypeDoc/blob/HEAD/CHANGELOG.md#v0247-2023-05-08)

[Compare
Source](https://github.com/TypeStrong/TypeDoc/compare/v0.24.6...v0.24.7)

##### Features

- TypeDoc will now allow conversion without any entry points to support
"readme only" packages,
[#&#8203;2264](https://github.com/TypeStrong/TypeDoc/issues/2264).

##### Bug Fixes

- Category children are now sorted according to the `sort` option,
[#&#8203;2272](https://github.com/TypeStrong/TypeDoc/issues/2272).
- Inline tags no longer require a space after the tag name to be parsed
as a tag,
[#&#8203;2273](https://github.com/TypeStrong/TypeDoc/issues/2273).
- Fixed module/namespace links in navigation when viewed in Safari,
[#&#8203;2275](https://github.com/TypeStrong/TypeDoc/issues/2275).

</details>

<details>
<summary>Microsoft/TypeScript</summary>

###
[`v5.1.3`](https://github.com/microsoft/TypeScript/releases/tag/v5.1.3):
TypeScript 5.1.3

[Compare
Source](https://github.com/Microsoft/TypeScript/compare/v5.0.4...v5.1.3)

For release notes, check out the [release
announcement](https://devblogs.microsoft.com/typescript/announcing-typescript-5-1/).


</details>

---

### Configuration

📅 **Schedule**: 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.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/andipaetzold/react-firehooks).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS42My4xIiwidXBkYXRlZEluVmVyIjoiMzUuMTEwLjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate bot referenced this pull request in JoshuaKGoldberg/prettier-plugin-curly Jun 16, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@vitest/coverage-istanbul](https://github.com/vitest-dev/vitest/tree/main/packages/coverage-istanbul#readme)
([source](https://github.com/vitest-dev/vitest)) | [`^0.31.0` ->
`^0.32.0`](https://renovatebot.com/diffs/npm/@vitest%2fcoverage-istanbul/0.31.0/0.32.0)
|
[![age](https://badges.renovateapi.com/packages/npm/@vitest%2fcoverage-istanbul/0.32.0/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/@vitest%2fcoverage-istanbul/0.32.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/@vitest%2fcoverage-istanbul/0.32.0/compatibility-slim/0.31.0)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/@vitest%2fcoverage-istanbul/0.32.0/confidence-slim/0.31.0)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>vitest-dev/vitest</summary>

###
[`v0.32.0`](https://github.com/vitest-dev/vitest/releases/tag/v0.32.0)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.31.4...v0.32.0)

#####    🚨 Breaking Changes

- Throw an error, if the module cannot be resolved  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3307](https://github.com/vitest-dev/vitest/issues/3307)
[<samp>(1ad63)</samp>](https://github.com/vitest-dev/vitest/commit/1ad63b0c)
- Vitest used to fall back to the original import when it could not
resolve it to the file path or the virtual module. This leads to
hard-to-find module graph mismatches if you had incorrect alias or
relied on relative imports to be resolved to the project root (which is
usual behavior in TypeScript) because the code accidentally "worked".
With this release, Vitest will now throw an error if it cannot resolve
the module - there are possible edge cases that are not covered yet, so
if you have any problems with this, please open a separate issue with
reproduction.
- Improve globs  -  by
[@&#8203;nickmccurdy](https://github.com/nickmccurdy) in
[https://github.com/vitest-dev/vitest/issues/3392](https://github.com/vitest-dev/vitest/issues/3392)
[<samp>(19ecc)</samp>](https://github.com/vitest-dev/vitest/commit/19ecc6c7)
- Vitest now has glob patterns similar to Jest for better compatibility.
It's possible that some files will be considered test files when
previously they were not. For example, Vitest now considers `test.js` to
be a test file. Also any file in `__tests__` is now considered to be a
test, not just files with `test` or `spec` suffix.
- Add `@vitest/coverage-v8` package  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3339](https://github.com/vitest-dev/vitest/issues/3339)
[<samp>(82112)</samp>](https://github.com/vitest-dev/vitest/commit/821126f1)
- Vitest now uses v8 code coverage directly for better performance.
`@vitest/coverage-c8` is deprecated as Vitest no longer uses c8 package
for coverage output. It will not be updated anymore, and Vitest will
fail in the next version if the user has `c8` as their coverage
provider. Please, install the new `@vitest/coverage-v8` package if you
previously used `@vitest/coverage-c8`.
- **mocker**: Don't restore mock to the original if the module is
automocked  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3518](https://github.com/vitest-dev/vitest/issues/3518)
[<samp>(c1004)</samp>](https://github.com/vitest-dev/vitest/commit/c1004e14)
- `spy.mockRestore` on auto-mocked named exports will no longer restore
their implementation to the actual function. This behavior better
matches what Jest does.

#####    🚀 Features

- Support ssr optimizer  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3490](https://github.com/vitest-dev/vitest/issues/3490)
[<samp>(89842)</samp>](https://github.com/vitest-dev/vitest/commit/898422b0)
- Image type add apng  -  by [@&#8203;btea](https://github.com/btea)
in
[https://github.com/vitest-dev/vitest/issues/3498](https://github.com/vitest-dev/vitest/issues/3498)
[<samp>(a53c2)</samp>](https://github.com/vitest-dev/vitest/commit/a53c2151)
- **expect**: Support `expect.soft`  -  by
[@&#8203;Dunqing](https://github.com/Dunqing) in
[https://github.com/vitest-dev/vitest/issues/3507](https://github.com/vitest-dev/vitest/issues/3507)
[<samp>(7c687)</samp>](https://github.com/vitest-dev/vitest/commit/7c687ada)
- **runner**: Support using function/class as `describe`/`test` name  - 
by [@&#8203;fenghan34](https://github.com/fenghan34) in
[https://github.com/vitest-dev/vitest/issues/3497](https://github.com/vitest-dev/vitest/issues/3497)
[<samp>(15253)</samp>](https://github.com/vitest-dev/vitest/commit/15253890)

#####    🐞 Bug Fixes

- The cli option is passed to coverage.exclude  -  by
[@&#8203;btea](https://github.com/btea) in
[https://github.com/vitest-dev/vitest/issues/3506](https://github.com/vitest-dev/vitest/issues/3506)
[<samp>(c37cd)</samp>](https://github.com/vitest-dev/vitest/commit/c37cdebe)
- **optimizer**: Always respect optimizeDeps even if include/exclude is
overridden  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3488](https://github.com/vitest-dev/vitest/issues/3488)
[<samp>(eb285)</samp>](https://github.com/vitest-dev/vitest/commit/eb285ea0)
- **runner**: Ensure Vitest is deduped  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3489](https://github.com/vitest-dev/vitest/issues/3489)
[<samp>(2deb7)</samp>](https://github.com/vitest-dev/vitest/commit/2deb70ab)
- **ui**: Don't cache coverage assets  -  by
[@&#8203;userquin](https://github.com/userquin) in
[https://github.com/vitest-dev/vitest/issues/3508](https://github.com/vitest-dev/vitest/issues/3508)
[<samp>(952b5)</samp>](https://github.com/vitest-dev/vitest/commit/952b5be6)
- **vite-node**: Circular import stuck  -  by
[@&#8203;Dunqing](https://github.com/Dunqing) in
[https://github.com/vitest-dev/vitest/issues/3480](https://github.com/vitest-dev/vitest/issues/3480)
[<samp>(50f07)</samp>](https://github.com/vitest-dev/vitest/commit/50f0700d)
- **watch**: Junit reporter fails to re-generate report  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3496](https://github.com/vitest-dev/vitest/issues/3496)
[<samp>(5b73c)</samp>](https://github.com/vitest-dev/vitest/commit/5b73cbf8)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.31.4...v0.32.0)

###
[`v0.31.4`](https://github.com/vitest-dev/vitest/releases/tag/v0.31.4)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.31.3...v0.31.4)

#####    🚀 Features

- Enable experimentalOptimizer  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3413](https://github.com/vitest-dev/vitest/issues/3413)
[<samp>(5a894)</samp>](https://github.com/vitest-dev/vitest/commit/5a894aa2)

#####    🐞 Bug Fixes

- **vite-node**: Deps.inline doesn't work  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3485](https://github.com/vitest-dev/vitest/issues/3485)
[<samp>(be930)</samp>](https://github.com/vitest-dev/vitest/commit/be93032f)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.31.3...v0.31.4)

###
[`v0.31.3`](https://github.com/vitest-dev/vitest/releases/tag/v0.31.3)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.31.2...v0.31.3)

#####    🚀 Features

- Support `VITE_NODE_DEPS_MODULE_DIRECTORIES` from .npmrc  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3471](https://github.com/vitest-dev/vitest/issues/3471)
[<samp>(393bf)</samp>](https://github.com/vitest-dev/vitest/commit/393bf60c)

#####    🐞 Bug Fixes

- **logger**: Print unhandled errors before summary  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3474](https://github.com/vitest-dev/vitest/issues/3474)
[<samp>(4c9a7)</samp>](https://github.com/vitest-dev/vitest/commit/4c9a7d58)
- **runner**: Suite options do not propagate to nested suites (fix:
[#&#8203;3467](https://github.com/vitest-dev/vitest/issues/3467))  - 
by [@&#8203;xsjcTony](https://github.com/xsjcTony) in
[https://github.com/vitest-dev/vitest/issues/3473](https://github.com/vitest-dev/vitest/issues/3473)
and
[https://github.com/vitest-dev/vitest/issues/3467](https://github.com/vitest-dev/vitest/issues/3467)
[<samp>(9fb9d)</samp>](https://github.com/vitest-dev/vitest/commit/9fb9dacb)
- **vite-node**: Clear importers when invalidating module  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3475](https://github.com/vitest-dev/vitest/issues/3475)
[<samp>(add29)</samp>](https://github.com/vitest-dev/vitest/commit/add29c86)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.31.2...v0.31.3)

###
[`v0.31.2`](https://github.com/vitest-dev/vitest/releases/tag/v0.31.2)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.31.1...v0.31.2)

#####    🚀 Features

- Throw error if using inline snapshot inside of `test.each` or
`describe.each`  -  by
[@&#8203;fenghan34](https://github.com/fenghan34) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3360](https://github.com/vitest-dev/vitest/issues/3360)
[<samp>(7c2f7)</samp>](https://github.com/vitest-dev/vitest/commit/7c2f7088)
- Pass down meta information to Node.js process  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) and
[@&#8203;dammy001](https://github.com/dammy001) in
[https://github.com/vitest-dev/vitest/issues/3449](https://github.com/vitest-dev/vitest/issues/3449)
[<samp>(e39ad)</samp>](https://github.com/vitest-dev/vitest/commit/e39adea8)
- **coverage**: Add `reportOnFailure` option  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3453](https://github.com/vitest-dev/vitest/issues/3453)
[<samp>(1988f)</samp>](https://github.com/vitest-dev/vitest/commit/1988fcb4)
- **dev**: Add moduleDirectories option to the vitest config  -  by
[@&#8203;fooddilsn](https://github.com/fooddilsn) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3337](https://github.com/vitest-dev/vitest/issues/3337)
[<samp>(b3602)</samp>](https://github.com/vitest-dev/vitest/commit/b3602bcc)

#####    🐞 Bug Fixes

- Don't print empty diff  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3437](https://github.com/vitest-dev/vitest/issues/3437)
[<samp>(32b53)</samp>](https://github.com/vitest-dev/vitest/commit/32b5361f)
- Don't restore methods in automocked dependencies  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3438](https://github.com/vitest-dev/vitest/issues/3438)
[<samp>(d1afd)</samp>](https://github.com/vitest-dev/vitest/commit/d1afd262)
- Dot reporter scrollback buffer spam  -  by
[@&#8203;gtm-nayan](https://github.com/gtm-nayan) in
[https://github.com/vitest-dev/vitest/issues/3415](https://github.com/vitest-dev/vitest/issues/3415)
[<samp>(e6792)</samp>](https://github.com/vitest-dev/vitest/commit/e6792a94)
- Gracefully exit when first `SIGINT` is received  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3407](https://github.com/vitest-dev/vitest/issues/3407)
[<samp>(a2cc2)</samp>](https://github.com/vitest-dev/vitest/commit/a2cc2b38)
- `rejects` & `resolves` breaks with thenable objects  -  by
[@&#8203;fenghan34](https://github.com/fenghan34) in
[https://github.com/vitest-dev/vitest/issues/3456](https://github.com/vitest-dev/vitest/issues/3456)
[<samp>(4e996)</samp>](https://github.com/vitest-dev/vitest/commit/4e996ae5)
- Prevent `birpc` timeouts when `Math.random` mock is not restored  - 
by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3460](https://github.com/vitest-dev/vitest/issues/3460)
[<samp>(cd5d5)</samp>](https://github.com/vitest-dev/vitest/commit/cd5d58b7)
- Assertion diff message now handle non writable property correctly  - 
by [@&#8203;PCreations](https://github.com/PCreations) in
[https://github.com/vitest-dev/vitest/issues/3422](https://github.com/vitest-dev/vitest/issues/3422)
[<samp>(f75ab)</samp>](https://github.com/vitest-dev/vitest/commit/f75ab650)
- Extend logging of process timeout errors  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3452](https://github.com/vitest-dev/vitest/issues/3452)
[<samp>(42643)</samp>](https://github.com/vitest-dev/vitest/commit/42643904)
- Support requiring files with `less` extension  -  by
[@&#8203;rluvaton](https://github.com/rluvaton) in
[https://github.com/vitest-dev/vitest/issues/3465](https://github.com/vitest-dev/vitest/issues/3465)
[<samp>(4d045)</samp>](https://github.com/vitest-dev/vitest/commit/4d045695)
-   **cli**:
- Improve colors used when erroring  -  by
[@&#8203;ghiscoding](https://github.com/ghiscoding) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3349](https://github.com/vitest-dev/vitest/issues/3349)
[<samp>(16681)</samp>](https://github.com/vitest-dev/vitest/commit/16681791)
-   **runner**:
- Suite timeout does not take effect  -  by
[@&#8203;btea](https://github.com/btea) in
[https://github.com/vitest-dev/vitest/issues/3455](https://github.com/vitest-dev/vitest/issues/3455)
[<samp>(82547)</samp>](https://github.com/vitest-dev/vitest/commit/82547376)
-   **spy**:
- Don't print received calls if there are no calls  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3405](https://github.com/vitest-dev/vitest/issues/3405)
[<samp>(41e11)</samp>](https://github.com/vitest-dev/vitest/commit/41e11dad)
-   **typecheck**:
- Show tsc errors not related to test files  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3441](https://github.com/vitest-dev/vitest/issues/3441)
[<samp>(a1da5)</samp>](https://github.com/vitest-dev/vitest/commit/a1da5714)
-   **types**:
- Fix `PartialMock` with async TReturns  -  by
[@&#8203;ghry5](https://github.com/ghry5) in
[https://github.com/vitest-dev/vitest/issues/3462](https://github.com/vitest-dev/vitest/issues/3462)
[<samp>(b664d)</samp>](https://github.com/vitest-dev/vitest/commit/b664d42c)
-   **vite-node**:
- Circular import stuck  -  by
[@&#8203;Dunqing](https://github.com/Dunqing) in
[https://github.com/vitest-dev/vitest/issues/3418](https://github.com/vitest-dev/vitest/issues/3418)
[<samp>(632ee)</samp>](https://github.com/vitest-dev/vitest/commit/632eef40)
- Coerce to string in import(dep)  -  by
[@&#8203;jcbhmr](https://github.com/jcbhmr) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3430](https://github.com/vitest-dev/vitest/issues/3430)
[<samp>(b72eb)</samp>](https://github.com/vitest-dev/vitest/commit/b72ebdb9)
- Don't remove sourcemap string in source code  -  by
[@&#8203;rxliuli](https://github.com/rxliuli) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/2918](https://github.com/vitest-dev/vitest/issues/2918)
and
[https://github.com/vitest-dev/vitest/issues/3379](https://github.com/vitest-dev/vitest/issues/3379)
[<samp>(02dc9)</samp>](https://github.com/vitest-dev/vitest/commit/02dc9ea7)
- Don't externalize "dist" by default  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3446](https://github.com/vitest-dev/vitest/issues/3446)
[<samp>(306b2)</samp>](https://github.com/vitest-dev/vitest/commit/306b2337)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.31.1...v0.31.2)

###
[`v0.31.1`](https://github.com/vitest-dev/vitest/releases/tag/v0.31.1)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.31.0...v0.31.1)

#####    🚀 Features

- **watch**: Press `r` should rerun current pattern tests  -  by
[@&#8203;Dunqing](https://github.com/Dunqing) and
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3305](https://github.com/vitest-dev/vitest/issues/3305)
[<samp>(69d27)</samp>](https://github.com/vitest-dev/vitest/commit/69d27117)

#####    🐞 Bug Fixes

- Make sure thrown error is an object  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3298](https://github.com/vitest-dev/vitest/issues/3298)
[<samp>(a93be)</samp>](https://github.com/vitest-dev/vitest/commit/a93be56c)
- Remove duplicate type  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3303](https://github.com/vitest-dev/vitest/issues/3303)
[<samp>(5382e)</samp>](https://github.com/vitest-dev/vitest/commit/5382e8b6)
- Throw an error, if tests are collected with a different vitest version
 -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3301](https://github.com/vitest-dev/vitest/issues/3301)
[<samp>(708b1)</samp>](https://github.com/vitest-dev/vitest/commit/708b10fe)
- Support application/x-gzip metadata in html report  -  by
[@&#8203;mzanelee](https://github.com/mzanelee) and **Michael Lee** in
[https://github.com/vitest-dev/vitest/issues/3333](https://github.com/vitest-dev/vitest/issues/3333)
[<samp>(5bf7e)</samp>](https://github.com/vitest-dev/vitest/commit/5bf7eb6e)
- Correctly restore vi.fn implementation  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3341](https://github.com/vitest-dev/vitest/issues/3341)
[<samp>(2aff8)</samp>](https://github.com/vitest-dev/vitest/commit/2aff8c5f)
- Display error message correctly  -  by
[@&#8203;btea](https://github.com/btea) in
[https://github.com/vitest-dev/vitest/issues/3314](https://github.com/vitest-dev/vitest/issues/3314)
[<samp>(a5b3d)</samp>](https://github.com/vitest-dev/vitest/commit/a5b3d78e)
- Exclude `cwd` from test name filter  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3353](https://github.com/vitest-dev/vitest/issues/3353)
[<samp>(324a9)</samp>](https://github.com/vitest-dev/vitest/commit/324a9b54)
- Check error type before modifying it  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3385](https://github.com/vitest-dev/vitest/issues/3385)
[<samp>(c44d9)</samp>](https://github.com/vitest-dev/vitest/commit/c44d9912)
- `toMatchInlineSnapshot` fails when file path includes parentheses  - 
by [@&#8203;pacexy](https://github.com/pacexy) in
[https://github.com/vitest-dev/vitest/issues/3370](https://github.com/vitest-dev/vitest/issues/3370)
and
[https://github.com/vitest-dev/vitest/issues/3371](https://github.com/vitest-dev/vitest/issues/3371)
[<samp>(dcf13)</samp>](https://github.com/vitest-dev/vitest/commit/dcf1346a)
- Stop spying on a method, when it's restored  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3386](https://github.com/vitest-dev/vitest/issues/3386)
[<samp>(2cb1a)</samp>](https://github.com/vitest-dev/vitest/commit/2cb1a15a)
- Test repeats  -  by
[@&#8203;fenghan34](https://github.com/fenghan34) in
[https://github.com/vitest-dev/vitest/issues/3369](https://github.com/vitest-dev/vitest/issues/3369)
[<samp>(fb8fc)</samp>](https://github.com/vitest-dev/vitest/commit/fb8fc7ab)
-   **browser**:
- Throw an error if test failed to load  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3390](https://github.com/vitest-dev/vitest/issues/3390)
[<samp>(b354b)</samp>](https://github.com/vitest-dev/vitest/commit/b354bc1c)
- Keep default export when rewriting exports  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3389](https://github.com/vitest-dev/vitest/issues/3389)
[<samp>(6501d)</samp>](https://github.com/vitest-dev/vitest/commit/6501d2e3)
-   **cli**:
- Improve cac errors when mixing boolean and dot notation  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3302](https://github.com/vitest-dev/vitest/issues/3302)
[<samp>(93fbd)</samp>](https://github.com/vitest-dev/vitest/commit/93fbd02d)
-   **reporter**:
- Prevent deleting test reports stored in coverage directory  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3331](https://github.com/vitest-dev/vitest/issues/3331)
[<samp>(ddbba)</samp>](https://github.com/vitest-dev/vitest/commit/ddbba396)
-   **typecheck**:
- Correctly resolve custom tsconfig path  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3342](https://github.com/vitest-dev/vitest/issues/3342)
[<samp>(c53ae)</samp>](https://github.com/vitest-dev/vitest/commit/c53ae079)
-   **vite-node**:
- Allow returning id not wrapped in promise  -  by
[@&#8203;danielroe](https://github.com/danielroe) in
[https://github.com/vitest-dev/vitest/issues/3312](https://github.com/vitest-dev/vitest/issues/3312)
[<samp>(9836c)</samp>](https://github.com/vitest-dev/vitest/commit/9836ccb4)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.31.0...v0.31.1)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/JoshuaKGoldberg/prettier-plugin-curly).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMTAuMCIsInVwZGF0ZWRJblZlciI6IjM1LjExMC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate bot referenced this pull request in JoshuaKGoldberg/prettier-plugin-curly Jun 16, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [vitest](https://github.com/vitest-dev/vitest) | [`^0.31.0` ->
`^0.32.0`](https://renovatebot.com/diffs/npm/vitest/0.31.0/0.32.0) |
[![age](https://badges.renovateapi.com/packages/npm/vitest/0.32.0/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/vitest/0.32.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/vitest/0.32.0/compatibility-slim/0.31.0)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/vitest/0.32.0/confidence-slim/0.31.0)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>vitest-dev/vitest</summary>

###
[`v0.32.0`](https://github.com/vitest-dev/vitest/releases/tag/v0.32.0)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.31.4...v0.32.0)

#####    🚨 Breaking Changes

- Throw an error, if the module cannot be resolved  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3307](https://github.com/vitest-dev/vitest/issues/3307)
[<samp>(1ad63)</samp>](https://github.com/vitest-dev/vitest/commit/1ad63b0c)
- Vitest used to fall back to the original import when it could not
resolve it to the file path or the virtual module. This leads to
hard-to-find module graph mismatches if you had incorrect alias or
relied on relative imports to be resolved to the project root (which is
usual behavior in TypeScript) because the code accidentally "worked".
With this release, Vitest will now throw an error if it cannot resolve
the module - there are possible edge cases that are not covered yet, so
if you have any problems with this, please open a separate issue with
reproduction.
- Improve globs  -  by
[@&#8203;nickmccurdy](https://github.com/nickmccurdy) in
[https://github.com/vitest-dev/vitest/issues/3392](https://github.com/vitest-dev/vitest/issues/3392)
[<samp>(19ecc)</samp>](https://github.com/vitest-dev/vitest/commit/19ecc6c7)
- Vitest now has glob patterns similar to Jest for better compatibility.
It's possible that some files will be considered test files when
previously they were not. For example, Vitest now considers `test.js` to
be a test file. Also any file in `__tests__` is now considered to be a
test, not just files with `test` or `spec` suffix.
- Add `@vitest/coverage-v8` package  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3339](https://github.com/vitest-dev/vitest/issues/3339)
[<samp>(82112)</samp>](https://github.com/vitest-dev/vitest/commit/821126f1)
- Vitest now uses v8 code coverage directly for better performance.
`@vitest/coverage-c8` is deprecated as Vitest no longer uses c8 package
for coverage output. It will not be updated anymore, and Vitest will
fail in the next version if the user has `c8` as their coverage
provider. Please, install the new `@vitest/coverage-v8` package if you
previously used `@vitest/coverage-c8`.
- **mocker**: Don't restore mock to the original if the module is
automocked  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3518](https://github.com/vitest-dev/vitest/issues/3518)
[<samp>(c1004)</samp>](https://github.com/vitest-dev/vitest/commit/c1004e14)
- `spy.mockRestore` on auto-mocked named exports will no longer restore
their implementation to the actual function. This behavior better
matches what Jest does.

#####    🚀 Features

- Support ssr optimizer  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3490](https://github.com/vitest-dev/vitest/issues/3490)
[<samp>(89842)</samp>](https://github.com/vitest-dev/vitest/commit/898422b0)
- Image type add apng  -  by [@&#8203;btea](https://github.com/btea)
in
[https://github.com/vitest-dev/vitest/issues/3498](https://github.com/vitest-dev/vitest/issues/3498)
[<samp>(a53c2)</samp>](https://github.com/vitest-dev/vitest/commit/a53c2151)
- **expect**: Support `expect.soft`  -  by
[@&#8203;Dunqing](https://github.com/Dunqing) in
[https://github.com/vitest-dev/vitest/issues/3507](https://github.com/vitest-dev/vitest/issues/3507)
[<samp>(7c687)</samp>](https://github.com/vitest-dev/vitest/commit/7c687ada)
- **runner**: Support using function/class as `describe`/`test` name  - 
by [@&#8203;fenghan34](https://github.com/fenghan34) in
[https://github.com/vitest-dev/vitest/issues/3497](https://github.com/vitest-dev/vitest/issues/3497)
[<samp>(15253)</samp>](https://github.com/vitest-dev/vitest/commit/15253890)

#####    🐞 Bug Fixes

- The cli option is passed to coverage.exclude  -  by
[@&#8203;btea](https://github.com/btea) in
[https://github.com/vitest-dev/vitest/issues/3506](https://github.com/vitest-dev/vitest/issues/3506)
[<samp>(c37cd)</samp>](https://github.com/vitest-dev/vitest/commit/c37cdebe)
- **optimizer**: Always respect optimizeDeps even if include/exclude is
overridden  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3488](https://github.com/vitest-dev/vitest/issues/3488)
[<samp>(eb285)</samp>](https://github.com/vitest-dev/vitest/commit/eb285ea0)
- **runner**: Ensure Vitest is deduped  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3489](https://github.com/vitest-dev/vitest/issues/3489)
[<samp>(2deb7)</samp>](https://github.com/vitest-dev/vitest/commit/2deb70ab)
- **ui**: Don't cache coverage assets  -  by
[@&#8203;userquin](https://github.com/userquin) in
[https://github.com/vitest-dev/vitest/issues/3508](https://github.com/vitest-dev/vitest/issues/3508)
[<samp>(952b5)</samp>](https://github.com/vitest-dev/vitest/commit/952b5be6)
- **vite-node**: Circular import stuck  -  by
[@&#8203;Dunqing](https://github.com/Dunqing) in
[https://github.com/vitest-dev/vitest/issues/3480](https://github.com/vitest-dev/vitest/issues/3480)
[<samp>(50f07)</samp>](https://github.com/vitest-dev/vitest/commit/50f0700d)
- **watch**: Junit reporter fails to re-generate report  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3496](https://github.com/vitest-dev/vitest/issues/3496)
[<samp>(5b73c)</samp>](https://github.com/vitest-dev/vitest/commit/5b73cbf8)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.31.4...v0.32.0)

###
[`v0.31.4`](https://github.com/vitest-dev/vitest/releases/tag/v0.31.4)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.31.3...v0.31.4)

#####    🚀 Features

- Enable experimentalOptimizer  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3413](https://github.com/vitest-dev/vitest/issues/3413)
[<samp>(5a894)</samp>](https://github.com/vitest-dev/vitest/commit/5a894aa2)

#####    🐞 Bug Fixes

- **vite-node**: Deps.inline doesn't work  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3485](https://github.com/vitest-dev/vitest/issues/3485)
[<samp>(be930)</samp>](https://github.com/vitest-dev/vitest/commit/be93032f)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.31.3...v0.31.4)

###
[`v0.31.3`](https://github.com/vitest-dev/vitest/releases/tag/v0.31.3)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.31.2...v0.31.3)

#####    🚀 Features

- Support `VITE_NODE_DEPS_MODULE_DIRECTORIES` from .npmrc  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3471](https://github.com/vitest-dev/vitest/issues/3471)
[<samp>(393bf)</samp>](https://github.com/vitest-dev/vitest/commit/393bf60c)

#####    🐞 Bug Fixes

- **logger**: Print unhandled errors before summary  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3474](https://github.com/vitest-dev/vitest/issues/3474)
[<samp>(4c9a7)</samp>](https://github.com/vitest-dev/vitest/commit/4c9a7d58)
- **runner**: Suite options do not propagate to nested suites (fix:
[#&#8203;3467](https://github.com/vitest-dev/vitest/issues/3467))  - 
by [@&#8203;xsjcTony](https://github.com/xsjcTony) in
[https://github.com/vitest-dev/vitest/issues/3473](https://github.com/vitest-dev/vitest/issues/3473)
and
[https://github.com/vitest-dev/vitest/issues/3467](https://github.com/vitest-dev/vitest/issues/3467)
[<samp>(9fb9d)</samp>](https://github.com/vitest-dev/vitest/commit/9fb9dacb)
- **vite-node**: Clear importers when invalidating module  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3475](https://github.com/vitest-dev/vitest/issues/3475)
[<samp>(add29)</samp>](https://github.com/vitest-dev/vitest/commit/add29c86)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.31.2...v0.31.3)

###
[`v0.31.2`](https://github.com/vitest-dev/vitest/releases/tag/v0.31.2)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.31.1...v0.31.2)

#####    🚀 Features

- Throw error if using inline snapshot inside of `test.each` or
`describe.each`  -  by
[@&#8203;fenghan34](https://github.com/fenghan34) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3360](https://github.com/vitest-dev/vitest/issues/3360)
[<samp>(7c2f7)</samp>](https://github.com/vitest-dev/vitest/commit/7c2f7088)
- Pass down meta information to Node.js process  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) and
[@&#8203;dammy001](https://github.com/dammy001) in
[https://github.com/vitest-dev/vitest/issues/3449](https://github.com/vitest-dev/vitest/issues/3449)
[<samp>(e39ad)</samp>](https://github.com/vitest-dev/vitest/commit/e39adea8)
- **coverage**: Add `reportOnFailure` option  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3453](https://github.com/vitest-dev/vitest/issues/3453)
[<samp>(1988f)</samp>](https://github.com/vitest-dev/vitest/commit/1988fcb4)
- **dev**: Add moduleDirectories option to the vitest config  -  by
[@&#8203;fooddilsn](https://github.com/fooddilsn) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3337](https://github.com/vitest-dev/vitest/issues/3337)
[<samp>(b3602)</samp>](https://github.com/vitest-dev/vitest/commit/b3602bcc)

#####    🐞 Bug Fixes

- Don't print empty diff  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3437](https://github.com/vitest-dev/vitest/issues/3437)
[<samp>(32b53)</samp>](https://github.com/vitest-dev/vitest/commit/32b5361f)
- Don't restore methods in automocked dependencies  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3438](https://github.com/vitest-dev/vitest/issues/3438)
[<samp>(d1afd)</samp>](https://github.com/vitest-dev/vitest/commit/d1afd262)
- Dot reporter scrollback buffer spam  -  by
[@&#8203;gtm-nayan](https://github.com/gtm-nayan) in
[https://github.com/vitest-dev/vitest/issues/3415](https://github.com/vitest-dev/vitest/issues/3415)
[<samp>(e6792)</samp>](https://github.com/vitest-dev/vitest/commit/e6792a94)
- Gracefully exit when first `SIGINT` is received  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3407](https://github.com/vitest-dev/vitest/issues/3407)
[<samp>(a2cc2)</samp>](https://github.com/vitest-dev/vitest/commit/a2cc2b38)
- `rejects` & `resolves` breaks with thenable objects  -  by
[@&#8203;fenghan34](https://github.com/fenghan34) in
[https://github.com/vitest-dev/vitest/issues/3456](https://github.com/vitest-dev/vitest/issues/3456)
[<samp>(4e996)</samp>](https://github.com/vitest-dev/vitest/commit/4e996ae5)
- Prevent `birpc` timeouts when `Math.random` mock is not restored  - 
by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3460](https://github.com/vitest-dev/vitest/issues/3460)
[<samp>(cd5d5)</samp>](https://github.com/vitest-dev/vitest/commit/cd5d58b7)
- Assertion diff message now handle non writable property correctly  - 
by [@&#8203;PCreations](https://github.com/PCreations) in
[https://github.com/vitest-dev/vitest/issues/3422](https://github.com/vitest-dev/vitest/issues/3422)
[<samp>(f75ab)</samp>](https://github.com/vitest-dev/vitest/commit/f75ab650)
- Extend logging of process timeout errors  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3452](https://github.com/vitest-dev/vitest/issues/3452)
[<samp>(42643)</samp>](https://github.com/vitest-dev/vitest/commit/42643904)
- Support requiring files with `less` extension  -  by
[@&#8203;rluvaton](https://github.com/rluvaton) in
[https://github.com/vitest-dev/vitest/issues/3465](https://github.com/vitest-dev/vitest/issues/3465)
[<samp>(4d045)</samp>](https://github.com/vitest-dev/vitest/commit/4d045695)
-   **cli**:
- Improve colors used when erroring  -  by
[@&#8203;ghiscoding](https://github.com/ghiscoding) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3349](https://github.com/vitest-dev/vitest/issues/3349)
[<samp>(16681)</samp>](https://github.com/vitest-dev/vitest/commit/16681791)
-   **runner**:
- Suite timeout does not take effect  -  by
[@&#8203;btea](https://github.com/btea) in
[https://github.com/vitest-dev/vitest/issues/3455](https://github.com/vitest-dev/vitest/issues/3455)
[<samp>(82547)</samp>](https://github.com/vitest-dev/vitest/commit/82547376)
-   **spy**:
- Don't print received calls if there are no calls  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3405](https://github.com/vitest-dev/vitest/issues/3405)
[<samp>(41e11)</samp>](https://github.com/vitest-dev/vitest/commit/41e11dad)
-   **typecheck**:
- Show tsc errors not related to test files  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3441](https://github.com/vitest-dev/vitest/issues/3441)
[<samp>(a1da5)</samp>](https://github.com/vitest-dev/vitest/commit/a1da5714)
-   **types**:
- Fix `PartialMock` with async TReturns  -  by
[@&#8203;ghry5](https://github.com/ghry5) in
[https://github.com/vitest-dev/vitest/issues/3462](https://github.com/vitest-dev/vitest/issues/3462)
[<samp>(b664d)</samp>](https://github.com/vitest-dev/vitest/commit/b664d42c)
-   **vite-node**:
- Circular import stuck  -  by
[@&#8203;Dunqing](https://github.com/Dunqing) in
[https://github.com/vitest-dev/vitest/issues/3418](https://github.com/vitest-dev/vitest/issues/3418)
[<samp>(632ee)</samp>](https://github.com/vitest-dev/vitest/commit/632eef40)
- Coerce to string in import(dep)  -  by
[@&#8203;jcbhmr](https://github.com/jcbhmr) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3430](https://github.com/vitest-dev/vitest/issues/3430)
[<samp>(b72eb)</samp>](https://github.com/vitest-dev/vitest/commit/b72ebdb9)
- Don't remove sourcemap string in source code  -  by
[@&#8203;rxliuli](https://github.com/rxliuli) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/2918](https://github.com/vitest-dev/vitest/issues/2918)
and
[https://github.com/vitest-dev/vitest/issues/3379](https://github.com/vitest-dev/vitest/issues/3379)
[<samp>(02dc9)</samp>](https://github.com/vitest-dev/vitest/commit/02dc9ea7)
- Don't externalize "dist" by default  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3446](https://github.com/vitest-dev/vitest/issues/3446)
[<samp>(306b2)</samp>](https://github.com/vitest-dev/vitest/commit/306b2337)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.31.1...v0.31.2)

###
[`v0.31.1`](https://github.com/vitest-dev/vitest/releases/tag/v0.31.1)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.31.0...v0.31.1)

#####    🚀 Features

- **watch**: Press `r` should rerun current pattern tests  -  by
[@&#8203;Dunqing](https://github.com/Dunqing) and
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3305](https://github.com/vitest-dev/vitest/issues/3305)
[<samp>(69d27)</samp>](https://github.com/vitest-dev/vitest/commit/69d27117)

#####    🐞 Bug Fixes

- Make sure thrown error is an object  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3298](https://github.com/vitest-dev/vitest/issues/3298)
[<samp>(a93be)</samp>](https://github.com/vitest-dev/vitest/commit/a93be56c)
- Remove duplicate type  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3303](https://github.com/vitest-dev/vitest/issues/3303)
[<samp>(5382e)</samp>](https://github.com/vitest-dev/vitest/commit/5382e8b6)
- Throw an error, if tests are collected with a different vitest version
 -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3301](https://github.com/vitest-dev/vitest/issues/3301)
[<samp>(708b1)</samp>](https://github.com/vitest-dev/vitest/commit/708b10fe)
- Support application/x-gzip metadata in html report  -  by
[@&#8203;mzanelee](https://github.com/mzanelee) and **Michael Lee** in
[https://github.com/vitest-dev/vitest/issues/3333](https://github.com/vitest-dev/vitest/issues/3333)
[<samp>(5bf7e)</samp>](https://github.com/vitest-dev/vitest/commit/5bf7eb6e)
- Correctly restore vi.fn implementation  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3341](https://github.com/vitest-dev/vitest/issues/3341)
[<samp>(2aff8)</samp>](https://github.com/vitest-dev/vitest/commit/2aff8c5f)
- Display error message correctly  -  by
[@&#8203;btea](https://github.com/btea) in
[https://github.com/vitest-dev/vitest/issues/3314](https://github.com/vitest-dev/vitest/issues/3314)
[<samp>(a5b3d)</samp>](https://github.com/vitest-dev/vitest/commit/a5b3d78e)
- Exclude `cwd` from test name filter  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3353](https://github.com/vitest-dev/vitest/issues/3353)
[<samp>(324a9)</samp>](https://github.com/vitest-dev/vitest/commit/324a9b54)
- Check error type before modifying it  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3385](https://github.com/vitest-dev/vitest/issues/3385)
[<samp>(c44d9)</samp>](https://github.com/vitest-dev/vitest/commit/c44d9912)
- `toMatchInlineSnapshot` fails when file path includes parentheses  - 
by [@&#8203;pacexy](https://github.com/pacexy) in
[https://github.com/vitest-dev/vitest/issues/3370](https://github.com/vitest-dev/vitest/issues/3370)
and
[https://github.com/vitest-dev/vitest/issues/3371](https://github.com/vitest-dev/vitest/issues/3371)
[<samp>(dcf13)</samp>](https://github.com/vitest-dev/vitest/commit/dcf1346a)
- Stop spying on a method, when it's restored  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3386](https://github.com/vitest-dev/vitest/issues/3386)
[<samp>(2cb1a)</samp>](https://github.com/vitest-dev/vitest/commit/2cb1a15a)
- Test repeats  -  by
[@&#8203;fenghan34](https://github.com/fenghan34) in
[https://github.com/vitest-dev/vitest/issues/3369](https://github.com/vitest-dev/vitest/issues/3369)
[<samp>(fb8fc)</samp>](https://github.com/vitest-dev/vitest/commit/fb8fc7ab)
-   **browser**:
- Throw an error if test failed to load  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3390](https://github.com/vitest-dev/vitest/issues/3390)
[<samp>(b354b)</samp>](https://github.com/vitest-dev/vitest/commit/b354bc1c)
- Keep default export when rewriting exports  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3389](https://github.com/vitest-dev/vitest/issues/3389)
[<samp>(6501d)</samp>](https://github.com/vitest-dev/vitest/commit/6501d2e3)
-   **cli**:
- Improve cac errors when mixing boolean and dot notation  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3302](https://github.com/vitest-dev/vitest/issues/3302)
[<samp>(93fbd)</samp>](https://github.com/vitest-dev/vitest/commit/93fbd02d)
-   **reporter**:
- Prevent deleting test reports stored in coverage directory  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3331](https://github.com/vitest-dev/vitest/issues/3331)
[<samp>(ddbba)</samp>](https://github.com/vitest-dev/vitest/commit/ddbba396)
-   **typecheck**:
- Correctly resolve custom tsconfig path  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3342](https://github.com/vitest-dev/vitest/issues/3342)
[<samp>(c53ae)</samp>](https://github.com/vitest-dev/vitest/commit/c53ae079)
-   **vite-node**:
- Allow returning id not wrapped in promise  -  by
[@&#8203;danielroe](https://github.com/danielroe) in
[https://github.com/vitest-dev/vitest/issues/3312](https://github.com/vitest-dev/vitest/issues/3312)
[<samp>(9836c)</samp>](https://github.com/vitest-dev/vitest/commit/9836ccb4)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.31.0...v0.31.1)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/JoshuaKGoldberg/prettier-plugin-curly).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMTAuMCIsInVwZGF0ZWRJblZlciI6IjM1LjExMC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate bot referenced this pull request in JoshuaKGoldberg/tidelift-me-up Jun 17, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [vitest](https://github.com/vitest-dev/vitest) | [`^0.31.0` ->
`^0.32.0`](https://renovatebot.com/diffs/npm/vitest/0.31.0/0.32.0) |
[![age](https://badges.renovateapi.com/packages/npm/vitest/0.32.0/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/vitest/0.32.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/vitest/0.32.0/compatibility-slim/0.31.0)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/vitest/0.32.0/confidence-slim/0.31.0)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>vitest-dev/vitest</summary>

###
[`v0.32.0`](https://github.com/vitest-dev/vitest/releases/tag/v0.32.0)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.31.4...v0.32.0)

#####    🚨 Breaking Changes

- Throw an error, if the module cannot be resolved  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3307](https://github.com/vitest-dev/vitest/issues/3307)
[<samp>(1ad63)</samp>](https://github.com/vitest-dev/vitest/commit/1ad63b0c)
- Vitest used to fall back to the original import when it could not
resolve it to the file path or the virtual module. This leads to
hard-to-find module graph mismatches if you had incorrect alias or
relied on relative imports to be resolved to the project root (which is
usual behavior in TypeScript) because the code accidentally "worked".
With this release, Vitest will now throw an error if it cannot resolve
the module - there are possible edge cases that are not covered yet, so
if you have any problems with this, please open a separate issue with
reproduction.
- Improve globs  -  by
[@&#8203;nickmccurdy](https://github.com/nickmccurdy) in
[https://github.com/vitest-dev/vitest/issues/3392](https://github.com/vitest-dev/vitest/issues/3392)
[<samp>(19ecc)</samp>](https://github.com/vitest-dev/vitest/commit/19ecc6c7)
- Vitest now has glob patterns similar to Jest for better compatibility.
It's possible that some files will be considered test files when
previously they were not. For example, Vitest now considers `test.js` to
be a test file. Also any file in `__tests__` is now considered to be a
test, not just files with `test` or `spec` suffix.
- Add `@vitest/coverage-v8` package  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3339](https://github.com/vitest-dev/vitest/issues/3339)
[<samp>(82112)</samp>](https://github.com/vitest-dev/vitest/commit/821126f1)
- Vitest now uses v8 code coverage directly for better performance.
`@vitest/coverage-c8` is deprecated as Vitest no longer uses c8 package
for coverage output. It will not be updated anymore, and Vitest will
fail in the next version if the user has `c8` as their coverage
provider. Please, install the new `@vitest/coverage-v8` package if you
previously used `@vitest/coverage-c8`.
- **mocker**: Don't restore mock to the original if the module is
automocked  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3518](https://github.com/vitest-dev/vitest/issues/3518)
[<samp>(c1004)</samp>](https://github.com/vitest-dev/vitest/commit/c1004e14)
- `spy.mockRestore` on auto-mocked named exports will no longer restore
their implementation to the actual function. This behavior better
matches what Jest does.

#####    🚀 Features

- Support ssr optimizer  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3490](https://github.com/vitest-dev/vitest/issues/3490)
[<samp>(89842)</samp>](https://github.com/vitest-dev/vitest/commit/898422b0)
- Image type add apng  -  by [@&#8203;btea](https://github.com/btea)
in
[https://github.com/vitest-dev/vitest/issues/3498](https://github.com/vitest-dev/vitest/issues/3498)
[<samp>(a53c2)</samp>](https://github.com/vitest-dev/vitest/commit/a53c2151)
- **expect**: Support `expect.soft`  -  by
[@&#8203;Dunqing](https://github.com/Dunqing) in
[https://github.com/vitest-dev/vitest/issues/3507](https://github.com/vitest-dev/vitest/issues/3507)
[<samp>(7c687)</samp>](https://github.com/vitest-dev/vitest/commit/7c687ada)
- **runner**: Support using function/class as `describe`/`test` name  - 
by [@&#8203;fenghan34](https://github.com/fenghan34) in
[https://github.com/vitest-dev/vitest/issues/3497](https://github.com/vitest-dev/vitest/issues/3497)
[<samp>(15253)</samp>](https://github.com/vitest-dev/vitest/commit/15253890)

#####    🐞 Bug Fixes

- The cli option is passed to coverage.exclude  -  by
[@&#8203;btea](https://github.com/btea) in
[https://github.com/vitest-dev/vitest/issues/3506](https://github.com/vitest-dev/vitest/issues/3506)
[<samp>(c37cd)</samp>](https://github.com/vitest-dev/vitest/commit/c37cdebe)
- **optimizer**: Always respect optimizeDeps even if include/exclude is
overridden  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3488](https://github.com/vitest-dev/vitest/issues/3488)
[<samp>(eb285)</samp>](https://github.com/vitest-dev/vitest/commit/eb285ea0)
- **runner**: Ensure Vitest is deduped  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3489](https://github.com/vitest-dev/vitest/issues/3489)
[<samp>(2deb7)</samp>](https://github.com/vitest-dev/vitest/commit/2deb70ab)
- **ui**: Don't cache coverage assets  -  by
[@&#8203;userquin](https://github.com/userquin) in
[https://github.com/vitest-dev/vitest/issues/3508](https://github.com/vitest-dev/vitest/issues/3508)
[<samp>(952b5)</samp>](https://github.com/vitest-dev/vitest/commit/952b5be6)
- **vite-node**: Circular import stuck  -  by
[@&#8203;Dunqing](https://github.com/Dunqing) in
[https://github.com/vitest-dev/vitest/issues/3480](https://github.com/vitest-dev/vitest/issues/3480)
[<samp>(50f07)</samp>](https://github.com/vitest-dev/vitest/commit/50f0700d)
- **watch**: Junit reporter fails to re-generate report  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3496](https://github.com/vitest-dev/vitest/issues/3496)
[<samp>(5b73c)</samp>](https://github.com/vitest-dev/vitest/commit/5b73cbf8)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.31.4...v0.32.0)

###
[`v0.31.4`](https://github.com/vitest-dev/vitest/releases/tag/v0.31.4)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.31.3...v0.31.4)

#####    🚀 Features

- Enable experimentalOptimizer  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3413](https://github.com/vitest-dev/vitest/issues/3413)
[<samp>(5a894)</samp>](https://github.com/vitest-dev/vitest/commit/5a894aa2)

#####    🐞 Bug Fixes

- **vite-node**: Deps.inline doesn't work  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3485](https://github.com/vitest-dev/vitest/issues/3485)
[<samp>(be930)</samp>](https://github.com/vitest-dev/vitest/commit/be93032f)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.31.3...v0.31.4)

###
[`v0.31.3`](https://github.com/vitest-dev/vitest/releases/tag/v0.31.3)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.31.2...v0.31.3)

#####    🚀 Features

- Support `VITE_NODE_DEPS_MODULE_DIRECTORIES` from .npmrc  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3471](https://github.com/vitest-dev/vitest/issues/3471)
[<samp>(393bf)</samp>](https://github.com/vitest-dev/vitest/commit/393bf60c)

#####    🐞 Bug Fixes

- **logger**: Print unhandled errors before summary  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3474](https://github.com/vitest-dev/vitest/issues/3474)
[<samp>(4c9a7)</samp>](https://github.com/vitest-dev/vitest/commit/4c9a7d58)
- **runner**: Suite options do not propagate to nested suites (fix:
[#&#8203;3467](https://github.com/vitest-dev/vitest/issues/3467))  - 
by [@&#8203;xsjcTony](https://github.com/xsjcTony) in
[https://github.com/vitest-dev/vitest/issues/3473](https://github.com/vitest-dev/vitest/issues/3473)
and
[https://github.com/vitest-dev/vitest/issues/3467](https://github.com/vitest-dev/vitest/issues/3467)
[<samp>(9fb9d)</samp>](https://github.com/vitest-dev/vitest/commit/9fb9dacb)
- **vite-node**: Clear importers when invalidating module  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3475](https://github.com/vitest-dev/vitest/issues/3475)
[<samp>(add29)</samp>](https://github.com/vitest-dev/vitest/commit/add29c86)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.31.2...v0.31.3)

###
[`v0.31.2`](https://github.com/vitest-dev/vitest/releases/tag/v0.31.2)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.31.1...v0.31.2)

#####    🚀 Features

- Throw error if using inline snapshot inside of `test.each` or
`describe.each`  -  by
[@&#8203;fenghan34](https://github.com/fenghan34) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3360](https://github.com/vitest-dev/vitest/issues/3360)
[<samp>(7c2f7)</samp>](https://github.com/vitest-dev/vitest/commit/7c2f7088)
- Pass down meta information to Node.js process  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) and
[@&#8203;dammy001](https://github.com/dammy001) in
[https://github.com/vitest-dev/vitest/issues/3449](https://github.com/vitest-dev/vitest/issues/3449)
[<samp>(e39ad)</samp>](https://github.com/vitest-dev/vitest/commit/e39adea8)
- **coverage**: Add `reportOnFailure` option  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3453](https://github.com/vitest-dev/vitest/issues/3453)
[<samp>(1988f)</samp>](https://github.com/vitest-dev/vitest/commit/1988fcb4)
- **dev**: Add moduleDirectories option to the vitest config  -  by
[@&#8203;fooddilsn](https://github.com/fooddilsn) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3337](https://github.com/vitest-dev/vitest/issues/3337)
[<samp>(b3602)</samp>](https://github.com/vitest-dev/vitest/commit/b3602bcc)

#####    🐞 Bug Fixes

- Don't print empty diff  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3437](https://github.com/vitest-dev/vitest/issues/3437)
[<samp>(32b53)</samp>](https://github.com/vitest-dev/vitest/commit/32b5361f)
- Don't restore methods in automocked dependencies  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3438](https://github.com/vitest-dev/vitest/issues/3438)
[<samp>(d1afd)</samp>](https://github.com/vitest-dev/vitest/commit/d1afd262)
- Dot reporter scrollback buffer spam  -  by
[@&#8203;gtm-nayan](https://github.com/gtm-nayan) in
[https://github.com/vitest-dev/vitest/issues/3415](https://github.com/vitest-dev/vitest/issues/3415)
[<samp>(e6792)</samp>](https://github.com/vitest-dev/vitest/commit/e6792a94)
- Gracefully exit when first `SIGINT` is received  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3407](https://github.com/vitest-dev/vitest/issues/3407)
[<samp>(a2cc2)</samp>](https://github.com/vitest-dev/vitest/commit/a2cc2b38)
- `rejects` & `resolves` breaks with thenable objects  -  by
[@&#8203;fenghan34](https://github.com/fenghan34) in
[https://github.com/vitest-dev/vitest/issues/3456](https://github.com/vitest-dev/vitest/issues/3456)
[<samp>(4e996)</samp>](https://github.com/vitest-dev/vitest/commit/4e996ae5)
- Prevent `birpc` timeouts when `Math.random` mock is not restored  - 
by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3460](https://github.com/vitest-dev/vitest/issues/3460)
[<samp>(cd5d5)</samp>](https://github.com/vitest-dev/vitest/commit/cd5d58b7)
- Assertion diff message now handle non writable property correctly  - 
by [@&#8203;PCreations](https://github.com/PCreations) in
[https://github.com/vitest-dev/vitest/issues/3422](https://github.com/vitest-dev/vitest/issues/3422)
[<samp>(f75ab)</samp>](https://github.com/vitest-dev/vitest/commit/f75ab650)
- Extend logging of process timeout errors  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3452](https://github.com/vitest-dev/vitest/issues/3452)
[<samp>(42643)</samp>](https://github.com/vitest-dev/vitest/commit/42643904)
- Support requiring files with `less` extension  -  by
[@&#8203;rluvaton](https://github.com/rluvaton) in
[https://github.com/vitest-dev/vitest/issues/3465](https://github.com/vitest-dev/vitest/issues/3465)
[<samp>(4d045)</samp>](https://github.com/vitest-dev/vitest/commit/4d045695)
-   **cli**:
- Improve colors used when erroring  -  by
[@&#8203;ghiscoding](https://github.com/ghiscoding) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3349](https://github.com/vitest-dev/vitest/issues/3349)
[<samp>(16681)</samp>](https://github.com/vitest-dev/vitest/commit/16681791)
-   **runner**:
- Suite timeout does not take effect  -  by
[@&#8203;btea](https://github.com/btea) in
[https://github.com/vitest-dev/vitest/issues/3455](https://github.com/vitest-dev/vitest/issues/3455)
[<samp>(82547)</samp>](https://github.com/vitest-dev/vitest/commit/82547376)
-   **spy**:
- Don't print received calls if there are no calls  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3405](https://github.com/vitest-dev/vitest/issues/3405)
[<samp>(41e11)</samp>](https://github.com/vitest-dev/vitest/commit/41e11dad)
-   **typecheck**:
- Show tsc errors not related to test files  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3441](https://github.com/vitest-dev/vitest/issues/3441)
[<samp>(a1da5)</samp>](https://github.com/vitest-dev/vitest/commit/a1da5714)
-   **types**:
- Fix `PartialMock` with async TReturns  -  by
[@&#8203;ghry5](https://github.com/ghry5) in
[https://github.com/vitest-dev/vitest/issues/3462](https://github.com/vitest-dev/vitest/issues/3462)
[<samp>(b664d)</samp>](https://github.com/vitest-dev/vitest/commit/b664d42c)
-   **vite-node**:
- Circular import stuck  -  by
[@&#8203;Dunqing](https://github.com/Dunqing) in
[https://github.com/vitest-dev/vitest/issues/3418](https://github.com/vitest-dev/vitest/issues/3418)
[<samp>(632ee)</samp>](https://github.com/vitest-dev/vitest/commit/632eef40)
- Coerce to string in import(dep)  -  by
[@&#8203;jcbhmr](https://github.com/jcbhmr) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3430](https://github.com/vitest-dev/vitest/issues/3430)
[<samp>(b72eb)</samp>](https://github.com/vitest-dev/vitest/commit/b72ebdb9)
- Don't remove sourcemap string in source code  -  by
[@&#8203;rxliuli](https://github.com/rxliuli) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/2918](https://github.com/vitest-dev/vitest/issues/2918)
and
[https://github.com/vitest-dev/vitest/issues/3379](https://github.com/vitest-dev/vitest/issues/3379)
[<samp>(02dc9)</samp>](https://github.com/vitest-dev/vitest/commit/02dc9ea7)
- Don't externalize "dist" by default  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3446](https://github.com/vitest-dev/vitest/issues/3446)
[<samp>(306b2)</samp>](https://github.com/vitest-dev/vitest/commit/306b2337)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.31.1...v0.31.2)

###
[`v0.31.1`](https://github.com/vitest-dev/vitest/releases/tag/v0.31.1)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.31.0...v0.31.1)

#####    🚀 Features

- **watch**: Press `r` should rerun current pattern tests  -  by
[@&#8203;Dunqing](https://github.com/Dunqing) and
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3305](https://github.com/vitest-dev/vitest/issues/3305)
[<samp>(69d27)</samp>](https://github.com/vitest-dev/vitest/commit/69d27117)

#####    🐞 Bug Fixes

- Make sure thrown error is an object  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3298](https://github.com/vitest-dev/vitest/issues/3298)
[<samp>(a93be)</samp>](https://github.com/vitest-dev/vitest/commit/a93be56c)
- Remove duplicate type  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3303](https://github.com/vitest-dev/vitest/issues/3303)
[<samp>(5382e)</samp>](https://github.com/vitest-dev/vitest/commit/5382e8b6)
- Throw an error, if tests are collected with a different vitest version
 -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3301](https://github.com/vitest-dev/vitest/issues/3301)
[<samp>(708b1)</samp>](https://github.com/vitest-dev/vitest/commit/708b10fe)
- Support application/x-gzip metadata in html report  -  by
[@&#8203;mzanelee](https://github.com/mzanelee) and **Michael Lee** in
[https://github.com/vitest-dev/vitest/issues/3333](https://github.com/vitest-dev/vitest/issues/3333)
[<samp>(5bf7e)</samp>](https://github.com/vitest-dev/vitest/commit/5bf7eb6e)
- Correctly restore vi.fn implementation  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3341](https://github.com/vitest-dev/vitest/issues/3341)
[<samp>(2aff8)</samp>](https://github.com/vitest-dev/vitest/commit/2aff8c5f)
- Display error message correctly  -  by
[@&#8203;btea](https://github.com/btea) in
[https://github.com/vitest-dev/vitest/issues/3314](https://github.com/vitest-dev/vitest/issues/3314)
[<samp>(a5b3d)</samp>](https://github.com/vitest-dev/vitest/commit/a5b3d78e)
- Exclude `cwd` from test name filter  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3353](https://github.com/vitest-dev/vitest/issues/3353)
[<samp>(324a9)</samp>](https://github.com/vitest-dev/vitest/commit/324a9b54)
- Check error type before modifying it  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3385](https://github.com/vitest-dev/vitest/issues/3385)
[<samp>(c44d9)</samp>](https://github.com/vitest-dev/vitest/commit/c44d9912)
- `toMatchInlineSnapshot` fails when file path includes parentheses  - 
by [@&#8203;pacexy](https://github.com/pacexy) in
[https://github.com/vitest-dev/vitest/issues/3370](https://github.com/vitest-dev/vitest/issues/3370)
and
[https://github.com/vitest-dev/vitest/issues/3371](https://github.com/vitest-dev/vitest/issues/3371)
[<samp>(dcf13)</samp>](https://github.com/vitest-dev/vitest/commit/dcf1346a)
- Stop spying on a method, when it's restored  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3386](https://github.com/vitest-dev/vitest/issues/3386)
[<samp>(2cb1a)</samp>](https://github.com/vitest-dev/vitest/commit/2cb1a15a)
- Test repeats  -  by
[@&#8203;fenghan34](https://github.com/fenghan34) in
[https://github.com/vitest-dev/vitest/issues/3369](https://github.com/vitest-dev/vitest/issues/3369)
[<samp>(fb8fc)</samp>](https://github.com/vitest-dev/vitest/commit/fb8fc7ab)
-   **browser**:
- Throw an error if test failed to load  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3390](https://github.com/vitest-dev/vitest/issues/3390)
[<samp>(b354b)</samp>](https://github.com/vitest-dev/vitest/commit/b354bc1c)
- Keep default export when rewriting exports  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3389](https://github.com/vitest-dev/vitest/issues/3389)
[<samp>(6501d)</samp>](https://github.com/vitest-dev/vitest/commit/6501d2e3)
-   **cli**:
- Improve cac errors when mixing boolean and dot notation  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3302](https://github.com/vitest-dev/vitest/issues/3302)
[<samp>(93fbd)</samp>](https://github.com/vitest-dev/vitest/commit/93fbd02d)
-   **reporter**:
- Prevent deleting test reports stored in coverage directory  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3331](https://github.com/vitest-dev/vitest/issues/3331)
[<samp>(ddbba)</samp>](https://github.com/vitest-dev/vitest/commit/ddbba396)
-   **typecheck**:
- Correctly resolve custom tsconfig path  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3342](https://github.com/vitest-dev/vitest/issues/3342)
[<samp>(c53ae)</samp>](https://github.com/vitest-dev/vitest/commit/c53ae079)
-   **vite-node**:
- Allow returning id not wrapped in promise  -  by
[@&#8203;danielroe](https://github.com/danielroe) in
[https://github.com/vitest-dev/vitest/issues/3312](https://github.com/vitest-dev/vitest/issues/3312)
[<samp>(9836c)</samp>](https://github.com/vitest-dev/vitest/commit/9836ccb4)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.31.0...v0.31.1)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/JoshuaKGoldberg/tidelift-me-up).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMTcuMyIsInVwZGF0ZWRJblZlciI6IjM1LjExNy4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
kodiakhq bot referenced this pull request in ascorbic/unpic-img Jul 5, 2023
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [vitest](https://github.com/vitest-dev/vitest) | [`^0.30.1` -> `^0.32.0`](https://renovatebot.com/diffs/npm/vitest/0.30.1/0.32.2) | [![age](https://badges.renovateapi.com/packages/npm/vitest/0.32.2/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/vitest/0.32.2/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/vitest/0.32.2/compatibility-slim/0.30.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/vitest/0.32.2/confidence-slim/0.30.1)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>vitest-dev/vitest</summary>

### [`v0.32.2`](https://github.com/vitest-dev/vitest/releases/tag/v0.32.2)

[Compare Source](https://github.com/vitest-dev/vitest/compare/v0.32.1...v0.32.2)

#####    🐞 Bug Fixes

-   **browser**: Don't fail on importing diff-sequences  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) [<samp>(00b0e)</samp>](https://github.com/vitest-dev/vitest/commit/00b0e6a3)

#####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v0.32.1...v0.32.2)

### [`v0.32.1`](https://github.com/vitest-dev/vitest/releases/tag/v0.32.1)

[Compare Source](https://github.com/vitest-dev/vitest/compare/v0.32.0...v0.32.1)

#####    🚀 Features

-   Export `registerConsoleShortcuts` from `vitest/node`  -  by [@&#8203;deot](https://github.com/deot) in [https://github.com/vitest-dev/vitest/issues/3563](https://github.com/vitest-dev/vitest/issues/3563) [<samp>(bc49b)</samp>](https://github.com/vitest-dev/vitest/commit/bc49bac7)
-   **expect**: Support `expect.unreachable`  -  by [@&#8203;fenghan34](https://github.com/fenghan34) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/3556](https://github.com/vitest-dev/vitest/issues/3556) [<samp>(8e385)</samp>](https://github.com/vitest-dev/vitest/commit/8e385bb0)
-   **runner**: `describe`/`test` name support anonymous function  -  by [@&#8203;btea](https://github.com/btea) in [https://github.com/vitest-dev/vitest/issues/3562](https://github.com/vitest-dev/vitest/issues/3562) [<samp>(3d436)</samp>](https://github.com/vitest-dev/vitest/commit/3d43638c)

#####    🐞 Bug Fixes

-   Avoid call stack recursion with large error (fix: [#&#8203;3060](https://github.com/vitest-dev/vitest/issues/3060))  -  by [@&#8203;nathanmmiller](https://github.com/nathanmmiller) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/3078](https://github.com/vitest-dev/vitest/issues/3078) and [https://github.com/vitest-dev/vitest/issues/3060](https://github.com/vitest-dev/vitest/issues/3060) [<samp>(02196)</samp>](https://github.com/vitest-dev/vitest/commit/02196f9d)
-   Automatically remove define related configuration  -  by [@&#8203;btea](https://github.com/btea) in [https://github.com/vitest-dev/vitest/issues/3552](https://github.com/vitest-dev/vitest/issues/3552) [<samp>(368b8)</samp>](https://github.com/vitest-dev/vitest/commit/368b8259)
-   Import `performance` from `perf_hooks`  -  by [@&#8203;Max10240](https://github.com/Max10240) and **wangbaolong.wbl** in [https://github.com/vitest-dev/vitest/issues/3578](https://github.com/vitest-dev/vitest/issues/3578) and [https://github.com/vitest-dev/vitest/issues/3579](https://github.com/vitest-dev/vitest/issues/3579) [<samp>(24ec8)</samp>](https://github.com/vitest-dev/vitest/commit/24ec85a8)
-   Revert concordance diff, use jest's diff output  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/3582](https://github.com/vitest-dev/vitest/issues/3582) [<samp>(9c7ea)</samp>](https://github.com/vitest-dev/vitest/commit/9c7ea382)
-   Typo in config suggestion  -  by [@&#8203;Krisell](https://github.com/Krisell) in [https://github.com/vitest-dev/vitest/issues/3583](https://github.com/vitest-dev/vitest/issues/3583) [<samp>(68985)</samp>](https://github.com/vitest-dev/vitest/commit/689855bb)
-   **browser**:
    -   Change optimized deps to use `vitest`  -  by [@&#8203;userquin](https://github.com/userquin) in [https://github.com/vitest-dev/vitest/issues/3580](https://github.com/vitest-dev/vitest/issues/3580) [<samp>(b4ac8)</samp>](https://github.com/vitest-dev/vitest/commit/b4ac88e9)
    -   Access **vi_inject** only if it was injected  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/3587](https://github.com/vitest-dev/vitest/issues/3587) [<samp>(d9e14)</samp>](https://github.com/vitest-dev/vitest/commit/d9e1419a)
-   **mocker**:
    -   Respect namespace import when hoisting vi.mock  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/3547](https://github.com/vitest-dev/vitest/issues/3547) [<samp>(158c4)</samp>](https://github.com/vitest-dev/vitest/commit/158c4bb0)
-   **ui**:
    -   Navigate to dashboard when re-running tests from coverage page  -  by [@&#8203;userquin](https://github.com/userquin) in [https://github.com/vitest-dev/vitest/issues/3529](https://github.com/vitest-dev/vitest/issues/3529) [<samp>(bc283)</samp>](https://github.com/vitest-dev/vitest/commit/bc283ae3)
-   **vite-node**:
    -   Correctly resolve virtual modules  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/3544](https://github.com/vitest-dev/vitest/issues/3544) [<samp>(0cbb0)</samp>](https://github.com/vitest-dev/vitest/commit/0cbb07b4)
    -   Fix errors caused by commonjs export circular references  -  by [@&#8203;rxliuli](https://github.com/rxliuli) in [https://github.com/vitest-dev/vitest/issues/3570](https://github.com/vitest-dev/vitest/issues/3570) [<samp>(b097c)</samp>](https://github.com/vitest-dev/vitest/commit/b097cef8)

#####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v0.32.0...v0.32.1)

### [`v0.32.0`](https://github.com/vitest-dev/vitest/releases/tag/v0.32.0)

[Compare Source](https://github.com/vitest-dev/vitest/compare/v0.31.4...v0.32.0)

#####    🚨 Breaking Changes

-   Throw an error, if the module cannot be resolved  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/3307](https://github.com/vitest-dev/vitest/issues/3307) [<samp>(1ad63)</samp>](https://github.com/vitest-dev/vitest/commit/1ad63b0c)
    -   Vitest used to fall back to the original import when it could not resolve it to the file path or the virtual module. This leads to hard-to-find module graph mismatches if you had incorrect alias or relied on relative imports to be resolved to the project root (which is usual behavior in TypeScript) because the code accidentally "worked". With this release, Vitest will now throw an error if it cannot resolve the module - there are possible edge cases that are not covered yet, so if you have any problems with this, please open a separate issue with reproduction.
-   Improve globs  -  by [@&#8203;nickmccurdy](https://github.com/nickmccurdy) in [https://github.com/vitest-dev/vitest/issues/3392](https://github.com/vitest-dev/vitest/issues/3392) [<samp>(19ecc)</samp>](https://github.com/vitest-dev/vitest/commit/19ecc6c7)
    -   Vitest now has glob patterns similar to Jest for better compatibility. It's possible that some files will be considered test files when previously they were not. For example, Vitest now considers `test.js` to be a test file. Also any file in `__tests__` is now considered to be a test, not just files with `test` or `spec` suffix.
-   Add `@vitest/coverage-v8` package  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/3339](https://github.com/vitest-dev/vitest/issues/3339) [<samp>(82112)</samp>](https://github.com/vitest-dev/vitest/commit/821126f1)
    -   Vitest now uses v8 code coverage directly for better performance. `@vitest/coverage-c8` is deprecated as Vitest no longer uses c8 package for coverage output. It will not be updated anymore, and Vitest will fail in the next version if the user has `c8` as their coverage provider. Please, install the new `@vitest/coverage-v8` package if you previously used `@vitest/coverage-c8`.
-   **mocker**: Don't restore mock to the original if the module is automocked  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/3518](https://github.com/vitest-dev/vitest/issues/3518) [<samp>(c1004)</samp>](https://github.com/vitest-dev/vitest/commit/c1004e14)
    -   `spy.mockRestore` on auto-mocked named exports will no longer restore their implementation to the actual function. This behavior better matches what Jest does.

#####    🚀 Features

-   Support ssr optimizer  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/3490](https://github.com/vitest-dev/vitest/issues/3490) [<samp>(89842)</samp>](https://github.com/vitest-dev/vitest/commit/898422b0)
-   Image type add apng  -  by [@&#8203;btea](https://github.com/btea) in [https://github.com/vitest-dev/vitest/issues/3498](https://github.com/vitest-dev/vitest/issues/3498) [<samp>(a53c2)</samp>](https://github.com/vitest-dev/vitest/commit/a53c2151)
-   **expect**: Support `expect.soft`  -  by [@&#8203;Dunqing](https://github.com/Dunqing) in [https://github.com/vitest-dev/vitest/issues/3507](https://github.com/vitest-dev/vitest/issues/3507) [<samp>(7c687)</samp>](https://github.com/vitest-dev/vitest/commit/7c687ada)
-   **runner**: Support using function/class as `describe`/`test` name  -  by [@&#8203;fenghan34](https://github.com/fenghan34) in [https://github.com/vitest-dev/vitest/issues/3497](https://github.com/vitest-dev/vitest/issues/3497) [<samp>(15253)</samp>](https://github.com/vitest-dev/vitest/commit/15253890)

#####    🐞 Bug Fixes

-   The cli option is passed to coverage.exclude  -  by [@&#8203;btea](https://github.com/btea) in [https://github.com/vitest-dev/vitest/issues/3506](https://github.com/vitest-dev/vitest/issues/3506) [<samp>(c37cd)</samp>](https://github.com/vitest-dev/vitest/commit/c37cdebe)
-   **optimizer**: Always respect optimizeDeps even if include/exclude is overridden  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/3488](https://github.com/vitest-dev/vitest/issues/3488) [<samp>(eb285)</samp>](https://github.com/vitest-dev/vitest/commit/eb285ea0)
-   **runner**: Ensure Vitest is deduped  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/3489](https://github.com/vitest-dev/vitest/issues/3489) [<samp>(2deb7)</samp>](https://github.com/vitest-dev/vitest/commit/2deb70ab)
-   **ui**: Don't cache coverage assets  -  by [@&#8203;userquin](https://github.com/userquin) in [https://github.com/vitest-dev/vitest/issues/3508](https://github.com/vitest-dev/vitest/issues/3508) [<samp>(952b5)</samp>](https://github.com/vitest-dev/vitest/commit/952b5be6)
-   **vite-node**: Circular import stuck  -  by [@&#8203;Dunqing](https://github.com/Dunqing) in [https://github.com/vitest-dev/vitest/issues/3480](https://github.com/vitest-dev/vitest/issues/3480) [<samp>(50f07)</samp>](https://github.com/vitest-dev/vitest/commit/50f0700d)
-   **watch**: Junit reporter fails to re-generate report  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/3496](https://github.com/vitest-dev/vitest/issues/3496) [<samp>(5b73c)</samp>](https://github.com/vitest-dev/vitest/commit/5b73cbf8)

#####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v0.31.4...v0.32.0)

### [`v0.31.4`](https://github.com/vitest-dev/vitest/releases/tag/v0.31.4)

[Compare Source](https://github.com/vitest-dev/vitest/compare/v0.31.3...v0.31.4)

#####    🚀 Features

-   Enable experimentalOptimizer  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/3413](https://github.com/vitest-dev/vitest/issues/3413) [<samp>(5a894)</samp>](https://github.com/vitest-dev/vitest/commit/5a894aa2)

#####    🐞 Bug Fixes

-   **vite-node**: Deps.inline doesn't work  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/3485](https://github.com/vitest-dev/vitest/issues/3485) [<samp>(be930)</samp>](https://github.com/vitest-dev/vitest/commit/be93032f)

#####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v0.31.3...v0.31.4)

### [`v0.31.3`](https://github.com/vitest-dev/vitest/releases/tag/v0.31.3)

[Compare Source](https://github.com/vitest-dev/vitest/compare/v0.31.2...v0.31.3)

#####    🚀 Features

-   Support `VITE_NODE_DEPS_MODULE_DIRECTORIES` from .npmrc  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/3471](https://github.com/vitest-dev/vitest/issues/3471) [<samp>(393bf)</samp>](https://github.com/vitest-dev/vitest/commit/393bf60c)

#####    🐞 Bug Fixes

-   **logger**: Print unhandled errors before summary  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/3474](https://github.com/vitest-dev/vitest/issues/3474) [<samp>(4c9a7)</samp>](https://github.com/vitest-dev/vitest/commit/4c9a7d58)
-   **runner**: Suite options do not propagate to nested suites (fix: [#&#8203;3467](https://github.com/vitest-dev/vitest/issues/3467))  -  by [@&#8203;xsjcTony](https://github.com/xsjcTony) in [https://github.com/vitest-dev/vitest/issues/3473](https://github.com/vitest-dev/vitest/issues/3473) and [https://github.com/vitest-dev/vitest/issues/3467](https://github.com/vitest-dev/vitest/issues/3467) [<samp>(9fb9d)</samp>](https://github.com/vitest-dev/vitest/commit/9fb9dacb)
-   **vite-node**: Clear importers when invalidating module  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/3475](https://github.com/vitest-dev/vitest/issues/3475) [<samp>(add29)</samp>](https://github.com/vitest-dev/vitest/commit/add29c86)

#####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v0.31.2...v0.31.3)

### [`v0.31.2`](https://github.com/vitest-dev/vitest/releases/tag/v0.31.2)

[Compare Source](https://github.com/vitest-dev/vitest/compare/v0.31.1...v0.31.2)

#####    🚀 Features

-   Throw error if using inline snapshot inside of `test.each` or `describe.each`  -  by [@&#8203;fenghan34](https://github.com/fenghan34) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/3360](https://github.com/vitest-dev/vitest/issues/3360) [<samp>(7c2f7)</samp>](https://github.com/vitest-dev/vitest/commit/7c2f7088)
-   Pass down meta information to Node.js process  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) and [@&#8203;dammy001](https://github.com/dammy001) in [https://github.com/vitest-dev/vitest/issues/3449](https://github.com/vitest-dev/vitest/issues/3449) [<samp>(e39ad)</samp>](https://github.com/vitest-dev/vitest/commit/e39adea8)
-   **coverage**: Add `reportOnFailure` option  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/3453](https://github.com/vitest-dev/vitest/issues/3453) [<samp>(1988f)</samp>](https://github.com/vitest-dev/vitest/commit/1988fcb4)
-   **dev**: Add moduleDirectories option to the vitest config  -  by [@&#8203;fooddilsn](https://github.com/fooddilsn) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/3337](https://github.com/vitest-dev/vitest/issues/3337) [<samp>(b3602)</samp>](https://github.com/vitest-dev/vitest/commit/b3602bcc)

#####    🐞 Bug Fixes

-   Don't print empty diff  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/3437](https://github.com/vitest-dev/vitest/issues/3437) [<samp>(32b53)</samp>](https://github.com/vitest-dev/vitest/commit/32b5361f)
-   Don't restore methods in automocked dependencies  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/3438](https://github.com/vitest-dev/vitest/issues/3438) [<samp>(d1afd)</samp>](https://github.com/vitest-dev/vitest/commit/d1afd262)
-   Dot reporter scrollback buffer spam  -  by [@&#8203;gtm-nayan](https://github.com/gtm-nayan) in [https://github.com/vitest-dev/vitest/issues/3415](https://github.com/vitest-dev/vitest/issues/3415) [<samp>(e6792)</samp>](https://github.com/vitest-dev/vitest/commit/e6792a94)
-   Gracefully exit when first `SIGINT` is received  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/3407](https://github.com/vitest-dev/vitest/issues/3407) [<samp>(a2cc2)</samp>](https://github.com/vitest-dev/vitest/commit/a2cc2b38)
-   `rejects` & `resolves` breaks with thenable objects  -  by [@&#8203;fenghan34](https://github.com/fenghan34) in [https://github.com/vitest-dev/vitest/issues/3456](https://github.com/vitest-dev/vitest/issues/3456) [<samp>(4e996)</samp>](https://github.com/vitest-dev/vitest/commit/4e996ae5)
-   Prevent `birpc` timeouts when `Math.random` mock is not restored  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/3460](https://github.com/vitest-dev/vitest/issues/3460) [<samp>(cd5d5)</samp>](https://github.com/vitest-dev/vitest/commit/cd5d58b7)
-   Assertion diff message now handle non writable property correctly  -  by [@&#8203;PCreations](https://github.com/PCreations) in [https://github.com/vitest-dev/vitest/issues/3422](https://github.com/vitest-dev/vitest/issues/3422) [<samp>(f75ab)</samp>](https://github.com/vitest-dev/vitest/commit/f75ab650)
-   Extend logging of process timeout errors  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/3452](https://github.com/vitest-dev/vitest/issues/3452) [<samp>(42643)</samp>](https://github.com/vitest-dev/vitest/commit/42643904)
-   Support requiring files with `less` extension  -  by [@&#8203;rluvaton](https://github.com/rluvaton) in [https://github.com/vitest-dev/vitest/issues/3465](https://github.com/vitest-dev/vitest/issues/3465) [<samp>(4d045)</samp>](https://github.com/vitest-dev/vitest/commit/4d045695)
-   **cli**:
    -   Improve colors used when erroring  -  by [@&#8203;ghiscoding](https://github.com/ghiscoding) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/3349](https://github.com/vitest-dev/vitest/issues/3349) [<samp>(16681)</samp>](https://github.com/vitest-dev/vitest/commit/16681791)
-   **runner**:
    -   Suite timeout does not take effect  -  by [@&#8203;btea](https://github.com/btea) in [https://github.com/vitest-dev/vitest/issues/3455](https://github.com/vitest-dev/vitest/issues/3455) [<samp>(82547)</samp>](https://github.com/vitest-dev/vitest/commit/82547376)
-   **spy**:
    -   Don't print received calls if there are no calls  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/3405](https://github.com/vitest-dev/vitest/issues/3405) [<samp>(41e11)</samp>](https://github.com/vitest-dev/vitest/commit/41e11dad)
-   **typecheck**:
    -   Show tsc errors not related to test files  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/3441](https://github.com/vitest-dev/vitest/issues/3441) [<samp>(a1da5)</samp>](https://github.com/vitest-dev/vitest/commit/a1da5714)
-   **types**:
    -   Fix `PartialMock` with async TReturns  -  by [@&#8203;ghry5](https://github.com/ghry5) in [https://github.com/vitest-dev/vitest/issues/3462](https://github.com/vitest-dev/vitest/issues/3462) [<samp>(b664d)</samp>](https://github.com/vitest-dev/vitest/commit/b664d42c)
-   **vite-node**:
    -   Circular import stuck  -  by [@&#8203;Dunqing](https://github.com/Dunqing) in [https://github.com/vitest-dev/vitest/issues/3418](https://github.com/vitest-dev/vitest/issues/3418) [<samp>(632ee)</samp>](https://github.com/vitest-dev/vitest/commit/632eef40)
    -   Coerce to string in import(dep)  -  by [@&#8203;jcbhmr](https://github.com/jcbhmr) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/3430](https://github.com/vitest-dev/vitest/issues/3430) [<samp>(b72eb)</samp>](https://github.com/vitest-dev/vitest/commit/b72ebdb9)
    -   Don't remove sourcemap string in source code  -  by [@&#8203;rxliuli](https://github.com/rxliuli) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2918](https://github.com/vitest-dev/vitest/issues/2918) and [https://github.com/vitest-dev/vitest/issues/3379](https://github.com/vitest-dev/vitest/issues/3379) [<samp>(02dc9)</samp>](https://github.com/vitest-dev/vitest/commit/02dc9ea7)
    -   Don't externalize "dist" by default  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/3446](https://github.com/vitest-dev/vitest/issues/3446) [<samp>(306b2)</samp>](https://github.com/vitest-dev/vitest/commit/306b2337)

#####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v0.31.1...v0.31.2)

### [`v0.31.1`](https://github.com/vitest-dev/vitest/releases/tag/v0.31.1)

[Compare Source](https://github.com/vitest-dev/vitest/compare/v0.31.0...v0.31.1)

#####    🚀 Features

-   **watch**: Press `r` should rerun current pattern tests  -  by [@&#8203;Dunqing](https://github.com/Dunqing) and [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/3305](https://github.com/vitest-dev/vitest/issues/3305) [<samp>(69d27)</samp>](https://github.com/vitest-dev/vitest/commit/69d27117)

#####    🐞 Bug Fixes

-   Make sure thrown error is an object  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/3298](https://github.com/vitest-dev/vitest/issues/3298) [<samp>(a93be)</samp>](https://github.com/vitest-dev/vitest/commit/a93be56c)
-   Remove duplicate type  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/3303](https://github.com/vitest-dev/vitest/issues/3303) [<samp>(5382e)</samp>](https://github.com/vitest-dev/vitest/commit/5382e8b6)
-   Throw an error, if tests are collected with a different vitest version  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/3301](https://github.com/vitest-dev/vitest/issues/3301) [<samp>(708b1)</samp>](https://github.com/vitest-dev/vitest/commit/708b10fe)
-   Support application/x-gzip metadata in html report  -  by [@&#8203;mzanelee](https://github.com/mzanelee) and **Michael Lee** in [https://github.com/vitest-dev/vitest/issues/3333](https://github.com/vitest-dev/vitest/issues/3333) [<samp>(5bf7e)</samp>](https://github.com/vitest-dev/vitest/commit/5bf7eb6e)
-   Correctly restore vi.fn implementation  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/3341](https://github.com/vitest-dev/vitest/issues/3341) [<samp>(2aff8)</samp>](https://github.com/vitest-dev/vitest/commit/2aff8c5f)
-   Display error message correctly  -  by [@&#8203;btea](https://github.com/btea) in [https://github.com/vitest-dev/vitest/issues/3314](https://github.com/vitest-dev/vitest/issues/3314) [<samp>(a5b3d)</samp>](https://github.com/vitest-dev/vitest/commit/a5b3d78e)
-   Exclude `cwd` from test name filter  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/3353](https://github.com/vitest-dev/vitest/issues/3353) [<samp>(324a9)</samp>](https://github.com/vitest-dev/vitest/commit/324a9b54)
-   Check error type before modifying it  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/3385](https://github.com/vitest-dev/vitest/issues/3385) [<samp>(c44d9)</samp>](https://github.com/vitest-dev/vitest/commit/c44d9912)
-   `toMatchInlineSnapshot` fails when file path includes parentheses  -  by [@&#8203;pacexy](https://github.com/pacexy) in [https://github.com/vitest-dev/vitest/issues/3370](https://github.com/vitest-dev/vitest/issues/3370) and [https://github.com/vitest-dev/vitest/issues/3371](https://github.com/vitest-dev/vitest/issues/3371) [<samp>(dcf13)</samp>](https://github.com/vitest-dev/vitest/commit/dcf1346a)
-   Stop spying on a method, when it's restored  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/3386](https://github.com/vitest-dev/vitest/issues/3386) [<samp>(2cb1a)</samp>](https://github.com/vitest-dev/vitest/commit/2cb1a15a)
-   Test repeats  -  by [@&#8203;fenghan34](https://github.com/fenghan34) in [https://github.com/vitest-dev/vitest/issues/3369](https://github.com/vitest-dev/vitest/issues/3369) [<samp>(fb8fc)</samp>](https://github.com/vitest-dev/vitest/commit/fb8fc7ab)
-   **browser**:
    -   Throw an error if test failed to load  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/3390](https://github.com/vitest-dev/vitest/issues/3390) [<samp>(b354b)</samp>](https://github.com/vitest-dev/vitest/commit/b354bc1c)
    -   Keep default export when rewriting exports  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/3389](https://github.com/vitest-dev/vitest/issues/3389) [<samp>(6501d)</samp>](https://github.com/vitest-dev/vitest/commit/6501d2e3)
-   **cli**:
    -   Improve cac errors when mixing boolean and dot notation  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/3302](https://github.com/vitest-dev/vitest/issues/3302) [<samp>(93fbd)</samp>](https://github.com/vitest-dev/vitest/commit/93fbd02d)
-   **reporter**:
    -   Prevent deleting test reports stored in coverage directory  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/3331](https://github.com/vitest-dev/vitest/issues/3331) [<samp>(ddbba)</samp>](https://github.com/vitest-dev/vitest/commit/ddbba396)
-   **typecheck**:
    -   Correctly resolve custom tsconfig path  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/3342](https://github.com/vitest-dev/vitest/issues/3342) [<samp>(c53ae)</samp>](https://github.com/vitest-dev/vitest/commit/c53ae079)
-   **vite-node**:
    -   Allow returning id not wrapped in promise  -  by [@&#8203;danielroe](https://github.com/danielroe) in [https://github.com/vitest-dev/vitest/issues/3312](https://github.com/vitest-dev/vitest/issues/3312) [<samp>(9836c)</samp>](https://github.com/vitest-dev/vitest/commit/9836ccb4)

#####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v0.31.0...v0.31.1)

### [`v0.31.0`](https://github.com/vitest-dev/vitest/releases/tag/v0.31.0)

[Compare Source](https://github.com/vitest-dev/vitest/compare/v0.30.1...v0.31.0)

#####    🚨 Breaking Changes

-   Remove `browser` from allowed pools inside `poolMatchGlob` config option. Please, use Vitest workspaces for running tests in the browser.
-   Move assertion declarations to expect package  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/3294](https://github.com/vitest-dev/vitest/issues/3294) [<samp>(cf3af)</samp>](https://github.com/vitest-dev/vitest/commit/cf3afe2b)

    -   The change should be minor:

    ```diff
    - declare namespace Vi {
    + declare module 'vitest' {
       interface Assertion<T = any> extends CustomMatchers<T> {}
       interface AsymmetricMatchersContaining extends CustomMatchers {}
    }
    ```

#####    🚀 Features

-   Update mock implementation to support ESM runtime, introduce "vi.hoisted"  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/3258](https://github.com/vitest-dev/vitest/issues/3258) [<samp>(0c09a)</samp>](https://github.com/vitest-dev/vitest/commit/0c09a40d)
    -   Bypass ESM import order restriction with `vi.hoisted` to run code before imports are executed:
    ```ts
    vi.hoisted(() => vi.setSystemTime(new Date(2022, 1, 1)))
    ```
    You can also use it to pass variables to `vi.mock`:
    ```ts
    const { mockedMethod } = vi.hoisted(() => {
      return { mockedMethod: vi.fn() }
    })   
    vi.mock('./path/to/module.js', () => {
      return { originalMethod: mockedMethod }
    })
    ```
-   Add repeat method to tests  -  by [@&#8203;samkevin1](https://github.com/samkevin1) in [https://github.com/vitest-dev/vitest/issues/2652](https://github.com/vitest-dev/vitest/issues/2652) [<samp>(7c8f0)</samp>](https://github.com/vitest-dev/vitest/commit/7c8f0ba9)
-   Add an option to hide skipped test lines  -  by [@&#8203;g4rry420](https://github.com/g4rry420) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2745](https://github.com/vitest-dev/vitest/issues/2745) [<samp>(9bdb1)</samp>](https://github.com/vitest-dev/vitest/commit/9bdb1603)
-   **coverage**: Watermarks for c8  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/3254](https://github.com/vitest-dev/vitest/issues/3254) [<samp>(730af)</samp>](https://github.com/vitest-dev/vitest/commit/730af0b4)
-   **ui**: Add html coverage  -  by [@&#8203;userquin](https://github.com/userquin) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/3071](https://github.com/vitest-dev/vitest/issues/3071) [<samp>(e24cd)</samp>](https://github.com/vitest-dev/vitest/commit/e24cd9b2)
-   **watch**: Test run cancelling, feat: `--bail` option for cancelling test run  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/3163](https://github.com/vitest-dev/vitest/issues/3163) [<samp>(8d460)</samp>](https://github.com/vitest-dev/vitest/commit/8d4606eb)

#####    🐞 Bug Fixes

-   Don't call global setup teardown twice  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/3188](https://github.com/vitest-dev/vitest/issues/3188) [<samp>(ba3d1)</samp>](https://github.com/vitest-dev/vitest/commit/ba3d1338)
-   Reporter to log version before provider initalizations  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/3131](https://github.com/vitest-dev/vitest/issues/3131) [<samp>(481b1)</samp>](https://github.com/vitest-dev/vitest/commit/481b1fd2)
-   Throw an error if Vitest cannot access its internal state  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/3250](https://github.com/vitest-dev/vitest/issues/3250) [<samp>(fbb14)</samp>](https://github.com/vitest-dev/vitest/commit/fbb1468e)
-   Warning suppression broken  -  by [@&#8203;IceQub3](https://github.com/IceQub3) in [https://github.com/vitest-dev/vitest/issues/3270](https://github.com/vitest-dev/vitest/issues/3270) and [https://github.com/vitest-dev/vitest/issues/3271](https://github.com/vitest-dev/vitest/issues/3271) [<samp>(036de)</samp>](https://github.com/vitest-dev/vitest/commit/036de797)
-   Show correct diff in "toHaveBeenCalledWith"  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/3289](https://github.com/vitest-dev/vitest/issues/3289) [<samp>(19fcd)</samp>](https://github.com/vitest-dev/vitest/commit/19fcd8df)
-   Don't print esm warning, if package name is not found  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/3292](https://github.com/vitest-dev/vitest/issues/3292) [<samp>(62c14)</samp>](https://github.com/vitest-dev/vitest/commit/62c14cba)
-   Support exactOptionalPropertyTypes  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/3293](https://github.com/vitest-dev/vitest/issues/3293) [<samp>(ba81d)</samp>](https://github.com/vitest-dev/vitest/commit/ba81d8a3)
-   Don't inline vite hmr and rollup types  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/3291](https://github.com/vitest-dev/vitest/issues/3291) [<samp>(1f118)</samp>](https://github.com/vitest-dev/vitest/commit/1f1189bc)
-   **browser**:
    -   Failing to load vitest/utils  -  by [@&#8203;userquin](https://github.com/userquin) in [https://github.com/vitest-dev/vitest/issues/3190](https://github.com/vitest-dev/vitest/issues/3190) [<samp>(78bad)</samp>](https://github.com/vitest-dev/vitest/commit/78bad4ab)
-   **coverage**:
    -   `thresholdAutoUpdate` to work with `perFile`  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/3182](https://github.com/vitest-dev/vitest/issues/3182) [<samp>(29eeb)</samp>](https://github.com/vitest-dev/vitest/commit/29eebf65)
    -   Throw error if fail to load built-in provider  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/3217](https://github.com/vitest-dev/vitest/issues/3217) [<samp>(0a287)</samp>](https://github.com/vitest-dev/vitest/commit/0a2875e3)
    -   Stackblitz hangs with c8  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/3225](https://github.com/vitest-dev/vitest/issues/3225) [<samp>(d9fda)</samp>](https://github.com/vitest-dev/vitest/commit/d9fda2a1)
    -   C8 to ignore vite's generated helpers  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/3241](https://github.com/vitest-dev/vitest/issues/3241) [<samp>(21942)</samp>](https://github.com/vitest-dev/vitest/commit/21942db0)
    -   Workspaces c8 source maps  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/3226](https://github.com/vitest-dev/vitest/issues/3226) [<samp>(efce3)</samp>](https://github.com/vitest-dev/vitest/commit/efce3b4d)
-   **docs**:
    -   Correct typo and broken link to WebdriverIO  -  by [@&#8203;nathanbabcock](https://github.com/nathanbabcock) in [https://github.com/vitest-dev/vitest/issues/3275](https://github.com/vitest-dev/vitest/issues/3275) [<samp>(c7da1)</samp>](https://github.com/vitest-dev/vitest/commit/c7da155f)
-   **spy**:
    -   Update to set initial implementation through normal logic  -  by [@&#8203;Codex-](https://github.com/Codex-) in [https://github.com/vitest-dev/vitest/issues/3260](https://github.com/vitest-dev/vitest/issues/3260) and [https://github.com/vitest-dev/vitest/issues/3263](https://github.com/vitest-dev/vitest/issues/3263) [<samp>(c759a)</samp>](https://github.com/vitest-dev/vitest/commit/c759a9aa)
-   **vite-node**:
    -   Circular imports  -  by [@&#8203;antfu](https://github.com/antfu) in [https://github.com/vitest-dev/vitest/issues/3196](https://github.com/vitest-dev/vitest/issues/3196) [<samp>(cbb59)</samp>](https://github.com/vitest-dev/vitest/commit/cbb593a8)
    -   Add missing `import.meta.hot.send` mock  -  by [@&#8203;antfu](https://github.com/antfu) [<samp>(b1624)</samp>](https://github.com/vitest-dev/vitest/commit/b1624db5)
-   **vitest**:
    -   Also check for vite relative to vitest package  -  by [@&#8203;JoshuaKGoldberg](https://github.com/JoshuaKGoldberg) and [@&#8203;sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/3274](https://github.com/vitest-dev/vitest/issues/3274) [<samp>(a3393)</samp>](https://github.com/vitest-dev/vitest/commit/a3393b15)
-   **watch**:
    -   Run test files when added to filesystem  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/3189](https://github.com/vitest-dev/vitest/issues/3189) [<samp>(7b2c8)</samp>](https://github.com/vitest-dev/vitest/commit/7b2c81bc)

#####     [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v0.30.1...v0.31.0)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "after 9pm on sunday" (UTC), 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 this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/ascorbic/unpic-img).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMzEuMCIsInVwZGF0ZWRJblZlciI6IjM1LjEzMS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->
bodinsamuel referenced this pull request in specfy/stack-analyser Jul 9, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@vitest/coverage-c8](https://github.com/vitest-dev/vitest/tree/main/packages/coverage-c8#readme)
([source](https://github.com/vitest-dev/vitest)) | [`0.30.1` ->
`0.33.0`](https://renovatebot.com/diffs/npm/@vitest%2fcoverage-c8/0.30.1/0.33.0)
|
[![age](https://badges.renovateapi.com/packages/npm/@vitest%2fcoverage-c8/0.33.0/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/@vitest%2fcoverage-c8/0.33.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/@vitest%2fcoverage-c8/0.33.0/compatibility-slim/0.30.1)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/@vitest%2fcoverage-c8/0.33.0/confidence-slim/0.30.1)](https://docs.renovatebot.com/merge-confidence/)
|
| [vitest](https://github.com/vitest-dev/vitest) | [`0.30.1` ->
`0.33.0`](https://renovatebot.com/diffs/npm/vitest/0.30.1/0.33.0) |
[![age](https://badges.renovateapi.com/packages/npm/vitest/0.33.0/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/vitest/0.33.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/vitest/0.33.0/compatibility-slim/0.30.1)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/vitest/0.33.0/confidence-slim/0.30.1)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>vitest-dev/vitest (@&#8203;vitest/coverage-c8)</summary>

###
[`v0.33.0`](https://github.com/vitest-dev/vitest/releases/tag/v0.33.0)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.32.4...v0.33.0)

#####    🚨 Breaking Changes

- Revert default include patterns  -  by
[@&#8203;so1ve](https://github.com/so1ve)
[#&#8203;3729](https://github.com/vitest-dev/vitest/issues/3729)
- `0.32.0` changed the default `include` globs to be compatible with
Jest. After a discussion with the community, we are reverting this
change because it turned out to be non-intuitive.

#####    🐞 Bug Fixes

- Add missing JSDom living keys  -  by
[@&#8203;DerZade](https://github.com/DerZade) in
[https://github.com/vitest-dev/vitest/issues/3702](https://github.com/vitest-dev/vitest/issues/3702)
[<samp>(83a86)</samp>](https://github.com/vitest-dev/vitest/commit/83a86a75)
-   **vite-node**:
- Don't fail when importing Promise module  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va)
[<samp>(08192)</samp>](https://github.com/vitest-dev/vitest/commit/0819275a)
- Allow importing node:test  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va)
[<samp>(db22c)</samp>](https://github.com/vitest-dev/vitest/commit/db22c677)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.32.4...v0.33.0)

###
[`v0.32.4`](https://github.com/vitest-dev/vitest/releases/tag/v0.32.4)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.32.3...v0.32.4)

#####    🐞 Bug Fixes

- **browser**: Correctly optimize CJS dependencies  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va)
[<samp>(3d090)</samp>](https://github.com/vitest-dev/vitest/commit/3d0908e7)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.32.3...v0.32.4)

###
[`v0.32.3`](https://github.com/vitest-dev/vitest/releases/tag/v0.32.3)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.32.2...v0.32.3)

#####    🚀 Features

- Add `concurrent` option to `sequence` config  -  by
[@&#8203;fenghan34](https://github.com/fenghan34) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3604](https://github.com/vitest-dev/vitest/issues/3604)
[<samp>(f427f)</samp>](https://github.com/vitest-dev/vitest/commit/f427f004)
- Introduce global configuration for retry setting  -  by
[@&#8203;imentu](https://github.com/imentu) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3598](https://github.com/vitest-dev/vitest/issues/3598)
and
[https://github.com/vitest-dev/vitest/issues/3603](https://github.com/vitest-dev/vitest/issues/3603)
[<samp>(9a117)</samp>](https://github.com/vitest-dev/vitest/commit/9a117627)
- Don't rely on util package in
[@&#8203;vitest/utils](https://github.com/vitest/utils)  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3685](https://github.com/vitest-dev/vitest/issues/3685)
[<samp>(f91da)</samp>](https://github.com/vitest-dev/vitest/commit/f91da484)
- Support accessing other fixtures in fixture function  -  by
[@&#8203;fenghan34](https://github.com/fenghan34) in
[https://github.com/vitest-dev/vitest/issues/3651](https://github.com/vitest-dev/vitest/issues/3651)
[<samp>(1621c)</samp>](https://github.com/vitest-dev/vitest/commit/1621cc63)
- Support use function/class as `bench` name  -  by
[@&#8203;fenghan34](https://github.com/fenghan34) in
[https://github.com/vitest-dev/vitest/issues/3711](https://github.com/vitest-dev/vitest/issues/3711)
[<samp>(a749a)</samp>](https://github.com/vitest-dev/vitest/commit/a749a6c0)
- **reporters**: Show full test suite when testing 1 spec file at a time
 -  by [@&#8203;Dunqing](https://github.com/Dunqing) in
[https://github.com/vitest-dev/vitest/issues/3543](https://github.com/vitest-dev/vitest/issues/3543)
[<samp>(7531c)</samp>](https://github.com/vitest-dev/vitest/commit/7531c292)
- **runner**: Support `test.extend`  -  by
[@&#8203;fenghan34](https://github.com/fenghan34) in
[https://github.com/vitest-dev/vitest/issues/3554](https://github.com/vitest-dev/vitest/issues/3554)
[<samp>(2db1a)</samp>](https://github.com/vitest-dev/vitest/commit/2db1a737)

#####    🐞 Bug Fixes

- Remove "concordance" from dependencies list  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3597](https://github.com/vitest-dev/vitest/issues/3597)
[<samp>(969dc)</samp>](https://github.com/vitest-dev/vitest/commit/969dcc14)
- Show diff correctly  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3620](https://github.com/vitest-dev/vitest/issues/3620)
[<samp>(73dd4)</samp>](https://github.com/vitest-dev/vitest/commit/73dd4ab5)
- Util import  -  by [@&#8203;fubhy](https://github.com/fubhy) in
[https://github.com/vitest-dev/vitest/issues/3621](https://github.com/vitest-dev/vitest/issues/3621)
[<samp>(2fb4c)</samp>](https://github.com/vitest-dev/vitest/commit/2fb4ceff)
- Compat with frozen Math  -  by
[@&#8203;turadg](https://github.com/turadg) in
[https://github.com/vitest-dev/vitest/issues/3527](https://github.com/vitest-dev/vitest/issues/3527)
[<samp>(0db67)</samp>](https://github.com/vitest-dev/vitest/commit/0db67098)
- `CTRL+C` to terminate run  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3642](https://github.com/vitest-dev/vitest/issues/3642)
[<samp>(fa663)</samp>](https://github.com/vitest-dev/vitest/commit/fa6637d3)
- Run mode stuck in TTY terminals  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3690](https://github.com/vitest-dev/vitest/issues/3690)
[<samp>(141a8)</samp>](https://github.com/vitest-dev/vitest/commit/141a86ac)
- Use first stack frame in json reporter  -  by
[@&#8203;tim-smart](https://github.com/tim-smart) in
[https://github.com/vitest-dev/vitest/issues/3645](https://github.com/vitest-dev/vitest/issues/3645)
[<samp>(80ea7)</samp>](https://github.com/vitest-dev/vitest/commit/80ea7ef6)
- Print actual number for `toBeCalledTimes`  -  by
[@&#8203;antfu](https://github.com/antfu) in
[https://github.com/vitest-dev/vitest/issues/3696](https://github.com/vitest-dev/vitest/issues/3696)
[<samp>(d3640)</samp>](https://github.com/vitest-dev/vitest/commit/d3640437)
-   **benchmark**:
- Don't fail when running correct benchmarks  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3629](https://github.com/vitest-dev/vitest/issues/3629)
[<samp>(edad9)</samp>](https://github.com/vitest-dev/vitest/commit/edad9b19)
-   **browser**:
- Correctly print diff  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3627](https://github.com/vitest-dev/vitest/issues/3627)
[<samp>(d756e)</samp>](https://github.com/vitest-dev/vitest/commit/d756ee24)
- Esm injector doesn't replace class expressions  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3641](https://github.com/vitest-dev/vitest/issues/3641)
[<samp>(5c0ac)</samp>](https://github.com/vitest-dev/vitest/commit/5c0ac4ad)
- Transform superclass identifier  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3681](https://github.com/vitest-dev/vitest/issues/3681)
[<samp>(a1e04)</samp>](https://github.com/vitest-dev/vitest/commit/a1e043bd)
-   **coverage**:
- `v8` to prevent crash on dynamic CJS files  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3657](https://github.com/vitest-dev/vitest/issues/3657)
[<samp>(40f18)</samp>](https://github.com/vitest-dev/vitest/commit/40f18a07)
-   **runner**:
- Make the default value of `retry` and `repeats` 0  -  by
[@&#8203;Dunqing](https://github.com/Dunqing) in
[https://github.com/vitest-dev/vitest/issues/3638](https://github.com/vitest-dev/vitest/issues/3638)
[<samp>(6d146)</samp>](https://github.com/vitest-dev/vitest/commit/6d146d16)
-   **utils**:
- Respect all flags in format function  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3695](https://github.com/vitest-dev/vitest/issues/3695)
[<samp>(91e16)</samp>](https://github.com/vitest-dev/vitest/commit/91e1650e)
-   **watch**:
- Cancel using `h` key  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3618](https://github.com/vitest-dev/vitest/issues/3618)
[<samp>(60c36)</samp>](https://github.com/vitest-dev/vitest/commit/60c36faf)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.32.2...v0.32.3)

###
[`v0.32.2`](https://github.com/vitest-dev/vitest/releases/tag/v0.32.2)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.32.1...v0.32.2)

#####    🐞 Bug Fixes

- **browser**: Don't fail on importing diff-sequences  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va)
[<samp>(00b0e)</samp>](https://github.com/vitest-dev/vitest/commit/00b0e6a3)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.32.1...v0.32.2)

###
[`v0.32.1`](https://github.com/vitest-dev/vitest/releases/tag/v0.32.1)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.32.0...v0.32.1)

#####    🚀 Features

- Export `registerConsoleShortcuts` from `vitest/node`  -  by
[@&#8203;deot](https://github.com/deot) in
[https://github.com/vitest-dev/vitest/issues/3563](https://github.com/vitest-dev/vitest/issues/3563)
[<samp>(bc49b)</samp>](https://github.com/vitest-dev/vitest/commit/bc49bac7)
- **expect**: Support `expect.unreachable`  -  by
[@&#8203;fenghan34](https://github.com/fenghan34) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3556](https://github.com/vitest-dev/vitest/issues/3556)
[<samp>(8e385)</samp>](https://github.com/vitest-dev/vitest/commit/8e385bb0)
- **runner**: `describe`/`test` name support anonymous function  -  by
[@&#8203;btea](https://github.com/btea) in
[https://github.com/vitest-dev/vitest/issues/3562](https://github.com/vitest-dev/vitest/issues/3562)
[<samp>(3d436)</samp>](https://github.com/vitest-dev/vitest/commit/3d43638c)

#####    🐞 Bug Fixes

- Avoid call stack recursion with large error (fix:
[#&#8203;3060](https://github.com/vitest-dev/vitest/issues/3060))  - 
by [@&#8203;nathanmmiller](https://github.com/nathanmmiller) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3078](https://github.com/vitest-dev/vitest/issues/3078)
and
[https://github.com/vitest-dev/vitest/issues/3060](https://github.com/vitest-dev/vitest/issues/3060)
[<samp>(02196)</samp>](https://github.com/vitest-dev/vitest/commit/02196f9d)
- Automatically remove define related configuration  -  by
[@&#8203;btea](https://github.com/btea) in
[https://github.com/vitest-dev/vitest/issues/3552](https://github.com/vitest-dev/vitest/issues/3552)
[<samp>(368b8)</samp>](https://github.com/vitest-dev/vitest/commit/368b8259)
- Import `performance` from `perf_hooks`  -  by
[@&#8203;Max10240](https://github.com/Max10240) and
**wangbaolong.wbl** in
[https://github.com/vitest-dev/vitest/issues/3578](https://github.com/vitest-dev/vitest/issues/3578)
and
[https://github.com/vitest-dev/vitest/issues/3579](https://github.com/vitest-dev/vitest/issues/3579)
[<samp>(24ec8)</samp>](https://github.com/vitest-dev/vitest/commit/24ec85a8)
- Revert concordance diff, use jest's diff output  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3582](https://github.com/vitest-dev/vitest/issues/3582)
[<samp>(9c7ea)</samp>](https://github.com/vitest-dev/vitest/commit/9c7ea382)
- Typo in config suggestion  -  by
[@&#8203;Krisell](https://github.com/Krisell) in
[https://github.com/vitest-dev/vitest/issues/3583](https://github.com/vitest-dev/vitest/issues/3583)
[<samp>(68985)</samp>](https://github.com/vitest-dev/vitest/commit/689855bb)
-   **browser**:
- Change optimized deps to use `vitest`  -  by
[@&#8203;userquin](https://github.com/userquin) in
[https://github.com/vitest-dev/vitest/issues/3580](https://github.com/vitest-dev/vitest/issues/3580)
[<samp>(b4ac8)</samp>](https://github.com/vitest-dev/vitest/commit/b4ac88e9)
- Access **vi_inject** only if it was injected  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3587](https://github.com/vitest-dev/vitest/issues/3587)
[<samp>(d9e14)</samp>](https://github.com/vitest-dev/vitest/commit/d9e1419a)
-   **mocker**:
- Respect namespace import when hoisting vi.mock  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3547](https://github.com/vitest-dev/vitest/issues/3547)
[<samp>(158c4)</samp>](https://github.com/vitest-dev/vitest/commit/158c4bb0)
-   **ui**:
- Navigate to dashboard when re-running tests from coverage page  -  by
[@&#8203;userquin](https://github.com/userquin) in
[https://github.com/vitest-dev/vitest/issues/3529](https://github.com/vitest-dev/vitest/issues/3529)
[<samp>(bc283)</samp>](https://github.com/vitest-dev/vitest/commit/bc283ae3)
-   **vite-node**:
- Correctly resolve virtual modules  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3544](https://github.com/vitest-dev/vitest/issues/3544)
[<samp>(0cbb0)</samp>](https://github.com/vitest-dev/vitest/commit/0cbb07b4)
- Fix errors caused by commonjs export circular references  -  by
[@&#8203;rxliuli](https://github.com/rxliuli) in
[https://github.com/vitest-dev/vitest/issues/3570](https://github.com/vitest-dev/vitest/issues/3570)
[<samp>(b097c)</samp>](https://github.com/vitest-dev/vitest/commit/b097cef8)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.32.0...v0.32.1)

###
[`v0.32.0`](https://github.com/vitest-dev/vitest/releases/tag/v0.32.0)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.31.4...v0.32.0)

#####    🚨 Breaking Changes

- Throw an error, if the module cannot be resolved  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3307](https://github.com/vitest-dev/vitest/issues/3307)
[<samp>(1ad63)</samp>](https://github.com/vitest-dev/vitest/commit/1ad63b0c)
- Vitest used to fall back to the original import when it could not
resolve it to the file path or the virtual module. This leads to
hard-to-find module graph mismatches if you had incorrect alias or
relied on relative imports to be resolved to the project root (which is
usual behavior in TypeScript) because the code accidentally "worked".
With this release, Vitest will now throw an error if it cannot resolve
the module - there are possible edge cases that are not covered yet, so
if you have any problems with this, please open a separate issue with
reproduction.
- Improve globs  -  by
[@&#8203;nickmccurdy](https://github.com/nickmccurdy) in
[https://github.com/vitest-dev/vitest/issues/3392](https://github.com/vitest-dev/vitest/issues/3392)
[<samp>(19ecc)</samp>](https://github.com/vitest-dev/vitest/commit/19ecc6c7)
- Vitest now has glob patterns similar to Jest for better compatibility.
It's possible that some files will be considered test files when
previously they were not. For example, Vitest now considers `test.js` to
be a test file. Also any file in `__tests__` is now considered to be a
test, not just files with `test` or `spec` suffix.
- Add `@vitest/coverage-v8` package  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3339](https://github.com/vitest-dev/vitest/issues/3339)
[<samp>(82112)</samp>](https://github.com/vitest-dev/vitest/commit/821126f1)
- Vitest now uses v8 code coverage directly for better performance.
`@vitest/coverage-c8` is deprecated as Vitest no longer uses c8 package
for coverage output. It will not be updated anymore, and Vitest will
fail in the next version if the user has `c8` as their coverage
provider. Please, install the new `@vitest/coverage-v8` package if you
previously used `@vitest/coverage-c8`.
- **mocker**: Don't restore mock to the original if the module is
automocked  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3518](https://github.com/vitest-dev/vitest/issues/3518)
[<samp>(c1004)</samp>](https://github.com/vitest-dev/vitest/commit/c1004e14)
- `spy.mockRestore` on auto-mocked named exports will no longer restore
their implementation to the actual function. This behavior better
matches what Jest does.

#####    🚀 Features

- Support ssr optimizer  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3490](https://github.com/vitest-dev/vitest/issues/3490)
[<samp>(89842)</samp>](https://github.com/vitest-dev/vitest/commit/898422b0)
- Image type add apng  -  by [@&#8203;btea](https://github.com/btea)
in
[https://github.com/vitest-dev/vitest/issues/3498](https://github.com/vitest-dev/vitest/issues/3498)
[<samp>(a53c2)</samp>](https://github.com/vitest-dev/vitest/commit/a53c2151)
- **expect**: Support `expect.soft`  -  by
[@&#8203;Dunqing](https://github.com/Dunqing) in
[https://github.com/vitest-dev/vitest/issues/3507](https://github.com/vitest-dev/vitest/issues/3507)
[<samp>(7c687)</samp>](https://github.com/vitest-dev/vitest/commit/7c687ada)
- **runner**: Support using function/class as `describe`/`test` name  - 
by [@&#8203;fenghan34](https://github.com/fenghan34) in
[https://github.com/vitest-dev/vitest/issues/3497](https://github.com/vitest-dev/vitest/issues/3497)
[<samp>(15253)</samp>](https://github.com/vitest-dev/vitest/commit/15253890)

#####    🐞 Bug Fixes

- The cli option is passed to coverage.exclude  -  by
[@&#8203;btea](https://github.com/btea) in
[https://github.com/vitest-dev/vitest/issues/3506](https://github.com/vitest-dev/vitest/issues/3506)
[<samp>(c37cd)</samp>](https://github.com/vitest-dev/vitest/commit/c37cdebe)
- **optimizer**: Always respect optimizeDeps even if include/exclude is
overridden  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3488](https://github.com/vitest-dev/vitest/issues/3488)
[<samp>(eb285)</samp>](https://github.com/vitest-dev/vitest/commit/eb285ea0)
- **runner**: Ensure Vitest is deduped  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3489](https://github.com/vitest-dev/vitest/issues/3489)
[<samp>(2deb7)</samp>](https://github.com/vitest-dev/vitest/commit/2deb70ab)
- **ui**: Don't cache coverage assets  -  by
[@&#8203;userquin](https://github.com/userquin) in
[https://github.com/vitest-dev/vitest/issues/3508](https://github.com/vitest-dev/vitest/issues/3508)
[<samp>(952b5)</samp>](https://github.com/vitest-dev/vitest/commit/952b5be6)
- **vite-node**: Circular import stuck  -  by
[@&#8203;Dunqing](https://github.com/Dunqing) in
[https://github.com/vitest-dev/vitest/issues/3480](https://github.com/vitest-dev/vitest/issues/3480)
[<samp>(50f07)</samp>](https://github.com/vitest-dev/vitest/commit/50f0700d)
- **watch**: Junit reporter fails to re-generate report  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3496](https://github.com/vitest-dev/vitest/issues/3496)
[<samp>(5b73c)</samp>](https://github.com/vitest-dev/vitest/commit/5b73cbf8)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.31.4...v0.32.0)

###
[`v0.31.4`](https://github.com/vitest-dev/vitest/releases/tag/v0.31.4)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.31.3...v0.31.4)

#####    🚀 Features

- Enable experimentalOptimizer  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3413](https://github.com/vitest-dev/vitest/issues/3413)
[<samp>(5a894)</samp>](https://github.com/vitest-dev/vitest/commit/5a894aa2)

#####    🐞 Bug Fixes

- **vite-node**: Deps.inline doesn't work  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3485](https://github.com/vitest-dev/vitest/issues/3485)
[<samp>(be930)</samp>](https://github.com/vitest-dev/vitest/commit/be93032f)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.31.3...v0.31.4)

###
[`v0.31.3`](https://github.com/vitest-dev/vitest/releases/tag/v0.31.3)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.31.2...v0.31.3)

#####    🚀 Features

- Support `VITE_NODE_DEPS_MODULE_DIRECTORIES` from .npmrc  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3471](https://github.com/vitest-dev/vitest/issues/3471)
[<samp>(393bf)</samp>](https://github.com/vitest-dev/vitest/commit/393bf60c)

#####    🐞 Bug Fixes

- **logger**: Print unhandled errors before summary  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3474](https://github.com/vitest-dev/vitest/issues/3474)
[<samp>(4c9a7)</samp>](https://github.com/vitest-dev/vitest/commit/4c9a7d58)
- **runner**: Suite options do not propagate to nested suites (fix:
[#&#8203;3467](https://github.com/vitest-dev/vitest/issues/3467))  - 
by [@&#8203;xsjcTony](https://github.com/xsjcTony) in
[https://github.com/vitest-dev/vitest/issues/3473](https://github.com/vitest-dev/vitest/issues/3473)
and
[https://github.com/vitest-dev/vitest/issues/3467](https://github.com/vitest-dev/vitest/issues/3467)
[<samp>(9fb9d)</samp>](https://github.com/vitest-dev/vitest/commit/9fb9dacb)
- **vite-node**: Clear importers when invalidating module  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3475](https://github.com/vitest-dev/vitest/issues/3475)
[<samp>(add29)</samp>](https://github.com/vitest-dev/vitest/commit/add29c86)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.31.2...v0.31.3)

###
[`v0.31.2`](https://github.com/vitest-dev/vitest/releases/tag/v0.31.2)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.31.1...v0.31.2)

#####    🚀 Features

- Throw error if using inline snapshot inside of `test.each` or
`describe.each`  -  by
[@&#8203;fenghan34](https://github.com/fenghan34) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3360](https://github.com/vitest-dev/vitest/issues/3360)
[<samp>(7c2f7)</samp>](https://github.com/vitest-dev/vitest/commit/7c2f7088)
- Pass down meta information to Node.js process  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) and
[@&#8203;dammy001](https://github.com/dammy001) in
[https://github.com/vitest-dev/vitest/issues/3449](https://github.com/vitest-dev/vitest/issues/3449)
[<samp>(e39ad)</samp>](https://github.com/vitest-dev/vitest/commit/e39adea8)
- **coverage**: Add `reportOnFailure` option  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3453](https://github.com/vitest-dev/vitest/issues/3453)
[<samp>(1988f)</samp>](https://github.com/vitest-dev/vitest/commit/1988fcb4)
- **dev**: Add moduleDirectories option to the vitest config  -  by
[@&#8203;fooddilsn](https://github.com/fooddilsn) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3337](https://github.com/vitest-dev/vitest/issues/3337)
[<samp>(b3602)</samp>](https://github.com/vitest-dev/vitest/commit/b3602bcc)

#####    🐞 Bug Fixes

- Don't print empty diff  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3437](https://github.com/vitest-dev/vitest/issues/3437)
[<samp>(32b53)</samp>](https://github.com/vitest-dev/vitest/commit/32b5361f)
- Don't restore methods in automocked dependencies  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3438](https://github.com/vitest-dev/vitest/issues/3438)
[<samp>(d1afd)</samp>](https://github.com/vitest-dev/vitest/commit/d1afd262)
- Dot reporter scrollback buffer spam  -  by
[@&#8203;gtm-nayan](https://github.com/gtm-nayan) in
[https://github.com/vitest-dev/vitest/issues/3415](https://github.com/vitest-dev/vitest/issues/3415)
[<samp>(e6792)</samp>](https://github.com/vitest-dev/vitest/commit/e6792a94)
- Gracefully exit when first `SIGINT` is received  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3407](https://github.com/vitest-dev/vitest/issues/3407)
[<samp>(a2cc2)</samp>](https://github.com/vitest-dev/vitest/commit/a2cc2b38)
- `rejects` & `resolves` breaks with thenable objects  -  by
[@&#8203;fenghan34](https://github.com/fenghan34) in
[https://github.com/vitest-dev/vitest/issues/3456](https://github.com/vitest-dev/vitest/issues/3456)
[<samp>(4e996)</samp>](https://github.com/vitest-dev/vitest/commit/4e996ae5)
- Prevent `birpc` timeouts when `Math.random` mock is not restored  - 
by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3460](https://github.com/vitest-dev/vitest/issues/3460)
[<samp>(cd5d5)</samp>](https://github.com/vitest-dev/vitest/commit/cd5d58b7)
- Assertion diff message now handle non writable property correctly  - 
by [@&#8203;PCreations](https://github.com/PCreations) in
[https://github.com/vitest-dev/vitest/issues/3422](https://github.com/vitest-dev/vitest/issues/3422)
[<samp>(f75ab)</samp>](https://github.com/vitest-dev/vitest/commit/f75ab650)
- Extend logging of process timeout errors  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3452](https://github.com/vitest-dev/vitest/issues/3452)
[<samp>(42643)</samp>](https://github.com/vitest-dev/vitest/commit/42643904)
- Support requiring files with `less` extension  -  by
[@&#8203;rluvaton](https://github.com/rluvaton) in
[https://github.com/vitest-dev/vitest/issues/3465](https://github.com/vitest-dev/vitest/issues/3465)
[<samp>(4d045)</samp>](https://github.com/vitest-dev/vitest/commit/4d045695)
-   **cli**:
- Improve colors used when erroring  -  by
[@&#8203;ghiscoding](https://github.com/ghiscoding) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3349](https://github.com/vitest-dev/vitest/issues/3349)
[<samp>(16681)</samp>](https://github.com/vitest-dev/vitest/commit/16681791)
-   **runner**:
- Suite timeout does not take effect  -  by
[@&#8203;btea](https://github.com/btea) in
[https://github.com/vitest-dev/vitest/issues/3455](https://github.com/vitest-dev/vitest/issues/3455)
[<samp>(82547)</samp>](https://github.com/vitest-dev/vitest/commit/82547376)
-   **spy**:
- Don't print received calls if there are no calls  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3405](https://github.com/vitest-dev/vitest/issues/3405)
[<samp>(41e11)</samp>](https://github.com/vitest-dev/vitest/commit/41e11dad)
-   **typecheck**:
- Show tsc errors not related to test files  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3441](https://github.com/vitest-dev/vitest/issues/3441)
[<samp>(a1da5)</samp>](https://github.com/vitest-dev/vitest/commit/a1da5714)
-   **types**:
- Fix `PartialMock` with async TReturns  -  by
[@&#8203;ghry5](https://github.com/ghry5) in
[https://github.com/vitest-dev/vitest/issues/3462](https://github.com/vitest-dev/vitest/issues/3462)
[<samp>(b664d)</samp>](https://github.com/vitest-dev/vitest/commit/b664d42c)
-   **vite-node**:
- Circular import stuck  -  by
[@&#8203;Dunqing](https://github.com/Dunqing) in
[https://github.com/vitest-dev/vitest/issues/3418](https://github.com/vitest-dev/vitest/issues/3418)
[<samp>(632ee)</samp>](https://github.com/vitest-dev/vitest/commit/632eef40)
- Coerce to string in import(dep)  -  by
[@&#8203;jcbhmr](https://github.com/jcbhmr) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3430](https://github.com/vitest-dev/vitest/issues/3430)
[<samp>(b72eb)</samp>](https://github.com/vitest-dev/vitest/commit/b72ebdb9)
- Don't remove sourcemap string in source code  -  by
[@&#8203;rxliuli](https://github.com/rxliuli) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/2918](https://github.com/vitest-dev/vitest/issues/2918)
and
[https://github.com/vitest-dev/vitest/issues/3379](https://github.com/vitest-dev/vitest/issues/3379)
[<samp>(02dc9)</samp>](https://github.com/vitest-dev/vitest/commit/02dc9ea7)
- Don't externalize "dist" by default  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3446](https://github.com/vitest-dev/vitest/issues/3446)
[<samp>(306b2)</samp>](https://github.com/vitest-dev/vitest/commit/306b2337)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.31.1...v0.31.2)

###
[`v0.31.1`](https://github.com/vitest-dev/vitest/releases/tag/v0.31.1)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.31.0...v0.31.1)

#####    🚀 Features

- **watch**: Press `r` should rerun current pattern tests  -  by
[@&#8203;Dunqing](https://github.com/Dunqing) and
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3305](https://github.com/vitest-dev/vitest/issues/3305)
[<samp>(69d27)</samp>](https://github.com/vitest-dev/vitest/commit/69d27117)

#####    🐞 Bug Fixes

- Make sure thrown error is an object  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3298](https://github.com/vitest-dev/vitest/issues/3298)
[<samp>(a93be)</samp>](https://github.com/vitest-dev/vitest/commit/a93be56c)
- Remove duplicate type  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3303](https://github.com/vitest-dev/vitest/issues/3303)
[<samp>(5382e)</samp>](https://github.com/vitest-dev/vitest/commit/5382e8b6)
- Throw an error, if tests are collected with a different vitest version
 -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3301](https://github.com/vitest-dev/vitest/issues/3301)
[<samp>(708b1)</samp>](https://github.com/vitest-dev/vitest/commit/708b10fe)
- Support application/x-gzip metadata in html report  -  by
[@&#8203;mzanelee](https://github.com/mzanelee) and **Michael Lee** in
[https://github.com/vitest-dev/vitest/issues/3333](https://github.com/vitest-dev/vitest/issues/3333)
[<samp>(5bf7e)</samp>](https://github.com/vitest-dev/vitest/commit/5bf7eb6e)
- Correctly restore vi.fn implementation  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3341](https://github.com/vitest-dev/vitest/issues/3341)
[<samp>(2aff8)</samp>](https://github.com/vitest-dev/vitest/commit/2aff8c5f)
- Display error message correctly  -  by
[@&#8203;btea](https://github.com/btea) in
[https://github.com/vitest-dev/vitest/issues/3314](https://github.com/vitest-dev/vitest/issues/3314)
[<samp>(a5b3d)</samp>](https://github.com/vitest-dev/vitest/commit/a5b3d78e)
- Exclude `cwd` from test name filter  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3353](https://github.com/vitest-dev/vitest/issues/3353)
[<samp>(324a9)</samp>](https://github.com/vitest-dev/vitest/commit/324a9b54)
- Check error type before modifying it  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3385](https://github.com/vitest-dev/vitest/issues/3385)
[<samp>(c44d9)</samp>](https://github.com/vitest-dev/vitest/commit/c44d9912)
- `toMatchInlineSnapshot` fails when file path includes parentheses  - 
by [@&#8203;pacexy](https://github.com/pacexy) in
[https://github.com/vitest-dev/vitest/issues/3370](https://github.com/vitest-dev/vitest/issues/3370)
and
[https://github.com/vitest-dev/vitest/issues/3371](https://github.com/vitest-dev/vitest/issues/3371)
[<samp>(dcf13)</samp>](https://github.com/vitest-dev/vitest/commit/dcf1346a)
- Stop spying on a method, when it's restored  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3386](https://github.com/vitest-dev/vitest/issues/3386)
[<samp>(2cb1a)</samp>](https://github.com/vitest-dev/vitest/commit/2cb1a15a)
- Test repeats  -  by
[@&#8203;fenghan34](https://github.com/fenghan34) in
[https://github.com/vitest-dev/vitest/issues/3369](https://github.com/vitest-dev/vitest/issues/3369)
[<samp>(fb8fc)</samp>](https://github.com/vitest-dev/vitest/commit/fb8fc7ab)
-   **browser**:
- Throw an error if test failed to load  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3390](https://github.com/vitest-dev/vitest/issues/3390)
[<samp>(b354b)</samp>](https://github.com/vitest-dev/vitest/commit/b354bc1c)
- Keep default export when rewriting exports  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3389](https://github.com/vitest-dev/vitest/issues/3389)
[<samp>(6501d)</samp>](https://github.com/vitest-dev/vitest/commit/6501d2e3)
-   **cli**:
- Improve cac errors when mixing boolean and dot notation  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3302](https://github.com/vitest-dev/vitest/issues/3302)
[<samp>(93fbd)</samp>](https://github.com/vitest-dev/vitest/commit/93fbd02d)
-   **reporter**:
- Prevent deleting test reports stored in coverage directory  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3331](https://github.com/vitest-dev/vitest/issues/3331)
[<samp>(ddbba)</samp>](https://github.com/vitest-dev/vitest/commit/ddbba396)
-   **typecheck**:
- Correctly resolve custom tsconfig path  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3342](https://github.com/vitest-dev/vitest/issues/3342)
[<samp>(c53ae)</samp>](https://github.com/vitest-dev/vitest/commit/c53ae079)
-   **vite-node**:
- Allow returning id not wrapped in promise  -  by
[@&#8203;danielroe](https://github.com/danielroe) in
[https://github.com/vitest-dev/vitest/issues/3312](https://github.com/vitest-dev/vitest/issues/3312)
[<samp>(9836c)</samp>](https://github.com/vitest-dev/vitest/commit/9836ccb4)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.31.0...v0.31.1)

###
[`v0.31.0`](https://github.com/vitest-dev/vitest/releases/tag/v0.31.0)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.30.1...v0.31.0)

#####    🚨 Breaking Changes

- Remove `browser` from allowed pools inside `poolMatchGlob` config
option. Please, use Vitest workspaces for running tests in the browser.
- Move assertion declarations to expect package  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3294](https://github.com/vitest-dev/vitest/issues/3294)
[<samp>(cf3af)</samp>](https://github.com/vitest-dev/vitest/commit/cf3afe2b)

    -   The change should be minor:

    ```diff
    - declare namespace Vi {
    + declare module 'vitest' {
       interface Assertion<T = any> extends CustomMatchers<T> {}
       interface AsymmetricMatchersContaining extends CustomMatchers {}
    }
    ```

#####    🚀 Features

- Update mock implementation to support ESM runtime, introduce
"vi.hoisted"  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3258](https://github.com/vitest-dev/vitest/issues/3258)
[<samp>(0c09a)</samp>](https://github.com/vitest-dev/vitest/commit/0c09a40d)
- Bypass ESM import order restriction with `vi.hoisted` to run code
before imports are executed:
    ```ts
    vi.hoisted(() => vi.setSystemTime(new Date(2022, 1, 1)))
    ```
    You can also use it to pass variables to `vi.mock`:
    ```ts
    const { mockedMethod } = vi.hoisted(() => {
      return { mockedMethod: vi.fn() }
    })   
    vi.mock('./path/to/module.js', () => {
      return { originalMethod: mockedMethod }
    })
    ```
- Add repeat method to tests  -  by
[@&#8203;samkevin1](https://github.com/samkevin1) in
[https://github.com/vitest-dev/vitest/issues/2652](https://github.com/vitest-dev/vitest/issues/2652)
[<samp>(7c8f0)</samp>](https://github.com/vitest-dev/vitest/commit/7c8f0ba9)
- Add an option to hide skipped test lines  -  by
[@&#8203;g4rry420](https://github.com/g4rry420) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/2745](https://github.com/vitest-dev/vitest/issues/2745)
[<samp>(9bdb1)</samp>](https://github.com/vitest-dev/vitest/commit/9bdb1603)
- **coverage**: Watermarks for c8  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3254](https://github.com/vitest-dev/vitest/issues/3254)
[<samp>(730af)</samp>](https://github.com/vitest-dev/vitest/commit/730af0b4)
- **ui**: Add html coverage  -  by
[@&#8203;userquin](https://github.com/userquin) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3071](https://github.com/vitest-dev/vitest/issues/3071)
[<samp>(e24cd)</samp>](https://github.com/vitest-dev/vitest/commit/e24cd9b2)
- **watch**: Test run cancelling, feat: `--bail` option for cancelling
test run  -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3163](https://github.com/vitest-dev/vitest/issues/3163)
[<samp>(8d460)</samp>](https://github.com/vitest-dev/vitest/commit/8d4606eb)

#####    🐞 Bug Fixes

- Don't call global setup teardown twice  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3188](https://github.com/vitest-dev/vitest/issues/3188)
[<samp>(ba3d1)</samp>](https://github.com/vitest-dev/vitest/commit/ba3d1338)
- Reporter to log version before provider initalizations  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3131](https://github.com/vitest-dev/vitest/issues/3131)
[<samp>(481b1)</samp>](https://github.com/vitest-dev/vitest/commit/481b1fd2)
- Throw an error if Vitest cannot access its internal state  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3250](https://github.com/vitest-dev/vitest/issues/3250)
[<samp>(fbb14)</samp>](https://github.com/vitest-dev/vitest/commit/fbb1468e)
- Warning suppression broken  -  by
[@&#8203;IceQub3](https://github.com/IceQub3) in
[https://github.com/vitest-dev/vitest/issues/3270](https://github.com/vitest-dev/vitest/issues/3270)
and
[https://github.com/vitest-dev/vitest/issues/3271](https://github.com/vitest-dev/vitest/issues/3271)
[<samp>(036de)</samp>](https://github.com/vitest-dev/vitest/commit/036de797)
- Show correct diff in "toHaveBeenCalledWith"  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3289](https://github.com/vitest-dev/vitest/issues/3289)
[<samp>(19fcd)</samp>](https://github.com/vitest-dev/vitest/commit/19fcd8df)
- Don't print esm warning, if package name is not found  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3292](https://github.com/vitest-dev/vitest/issues/3292)
[<samp>(62c14)</samp>](https://github.com/vitest-dev/vitest/commit/62c14cba)
- Support exactOptionalPropertyTypes  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3293](https://github.com/vitest-dev/vitest/issues/3293)
[<samp>(ba81d)</samp>](https://github.com/vitest-dev/vitest/commit/ba81d8a3)
- Don't inline vite hmr and rollup types  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3291](https://github.com/vitest-dev/vitest/issues/3291)
[<samp>(1f118)</samp>](https://github.com/vitest-dev/vitest/commit/1f1189bc)
-   **browser**:
- Failing to load vitest/utils  -  by
[@&#8203;userquin](https://github.com/userquin) in
[https://github.com/vitest-dev/vitest/issues/3190](https://github.com/vitest-dev/vitest/issues/3190)
[<samp>(78bad)</samp>](https://github.com/vitest-dev/vitest/commit/78bad4ab)
-   **coverage**:
- `thresholdAutoUpdate` to work with `perFile`  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3182](https://github.com/vitest-dev/vitest/issues/3182)
[<samp>(29eeb)</samp>](https://github.com/vitest-dev/vitest/commit/29eebf65)
- Throw error if fail to load built-in provider  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3217](https://github.com/vitest-dev/vitest/issues/3217)
[<samp>(0a287)</samp>](https://github.com/vitest-dev/vitest/commit/0a2875e3)
- Stackblitz hangs with c8  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3225](https://github.com/vitest-dev/vitest/issues/3225)
[<samp>(d9fda)</samp>](https://github.com/vitest-dev/vitest/commit/d9fda2a1)
- C8 to ignore vite's generated helpers  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3241](https://github.com/vitest-dev/vitest/issues/3241)
[<samp>(21942)</samp>](https://github.com/vitest-dev/vitest/commit/21942db0)
- Workspaces c8 source maps  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3226](https://github.com/vitest-dev/vitest/issues/3226)
[<samp>(efce3)</samp>](https://github.com/vitest-dev/vitest/commit/efce3b4d)
-   **docs**:
- Correct typo and broken link to WebdriverIO  -  by
[@&#8203;nathanbabcock](https://github.com/nathanbabcock) in
[https://github.com/vitest-dev/vitest/issues/3275](https://github.com/vitest-dev/vitest/issues/3275)
[<samp>(c7da1)</samp>](https://github.com/vitest-dev/vitest/commit/c7da155f)
-   **spy**:
- Update to set initial implementation through normal logic  -  by
[@&#8203;Codex-](https://github.com/Codex-) in
[https://github.com/vitest-dev/vitest/issues/3260](https://github.com/vitest-dev/vitest/issues/3260)
and
[https://github.com/vitest-dev/vitest/issues/3263](https://github.com/vitest-dev/vitest/issues/3263)
[<samp>(c759a)</samp>](https://github.com/vitest-dev/vitest/commit/c759a9aa)
-   **vite-node**:
- Circular imports  -  by [@&#8203;antfu](https://github.com/antfu) in
[https://github.com/vitest-dev/vitest/issues/3196](https://github.com/vitest-dev/vitest/issues/3196)
[<samp>(cbb59)</samp>](https://github.com/vitest-dev/vitest/commit/cbb593a8)
- Add missing `import.meta.hot.send` mock  -  by
[@&#8203;antfu](https://github.com/antfu)
[<samp>(b1624)</samp>](https://github.com/vitest-dev/vitest/commit/b1624db5)
-   **vitest**:
- Also check for vite relative to vitest package  -  by
[@&#8203;JoshuaKGoldberg](https://github.com/JoshuaKGoldberg) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3274](https://github.com/vitest-dev/vitest/issues/3274)
[<samp>(a3393)</samp>](https://github.com/vitest-dev/vitest/commit/a3393b15)
-   **watch**:
- Run test files when added to filesystem  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3189](https://github.com/vitest-dev/vitest/issues/3189)
[<samp>(7b2c8)</samp>](https://github.com/vitest-dev/vitest/commit/7b2c81bc)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.30.1...v0.31.0)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "after 4pm on friday,before 9am on
monday,every weekend" in timezone Europe/Paris, Automerge - At any time
(no schedule defined).

🚦 **Automerge**: Enabled.

♻ **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.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/specfy/stack-analyser).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi41LjMiLCJ1cGRhdGVkSW5WZXIiOiIzNi41LjMiLCJ0YXJnZXRCcmFuY2giOiJjaG9yZS9yZW5vdmF0ZUJhc2VCcmFuY2gifQ==-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Samuel Bodin <1637651+bodinsamuel@users.noreply.github.com>
marcustisater-kivra referenced this pull request in kivra/toybox Aug 15, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [vitest](https://github.com/vitest-dev/vitest) | [`0.31.0` ->
`0.34.1`](https://renovatebot.com/diffs/npm/vitest/0.31.0/0.34.1) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vitest/0.34.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vitest/0.34.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vitest/0.31.0/0.34.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vitest/0.31.0/0.34.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>vitest-dev/vitest (vitest)</summary>

###
[`v0.34.1`](https://github.com/vitest-dev/vitest/releases/tag/v0.34.1)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.34.0...v0.34.1)

#####    🐞 Bug Fixes

- Pass `--experimental-vm-worker-memory-limit` to `tinypool`  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3856](https://github.com/vitest-dev/vitest/issues/3856)
[<samp>(3c67a)</samp>](https://github.com/vitest-dev/vitest/commit/3c67a4cb)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.34.0...v0.34.1)

###
[`v0.34.0`](https://github.com/vitest-dev/vitest/releases/tag/v0.34.0)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.33.0...v0.34.0)

#####    🚨 Breaking Changes

- Transform mode affects only test files, not regular files  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3491](https://github.com/vitest-dev/vitest/issues/3491)
[<samp>(9608b)</samp>](https://github.com/vitest-dev/vitest/commit/9608bf72)
- `transformMode` is now moved to `server.transformMode`. This option is
highly discouraged to use. If you need to change the transform mode, use
the new option `testTransformMode` instead to control the mode based on
the running test, not the current file path. By default, tests with
`jsdom` or `happy-dom` use `web` transform mode, and tests using `node`
or `edge` environment use `ssr` mode. If you have a custom environment,
it should provide `transformMode` property.
- Disable `coverage.reportOnFailure` by default  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3615](https://github.com/vitest-dev/vitest/issues/3615)
[<samp>(0c6f6)</samp>](https://github.com/vitest-dev/vitest/commit/0c6f624f)
- Remove `@vitest/coverage-c8` package  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3614](https://github.com/vitest-dev/vitest/issues/3614)
[<samp>(a90d6)</samp>](https://github.com/vitest-dev/vitest/commit/a90d64fe)
- `@vitest/coverage-c8` is no longer supported. Please, use
`@vitest/coverage-v8` instead.
- Support running tests using VM context  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) and
[@&#8203;dammy001](https://github.com/dammy001) in
[https://github.com/vitest-dev/vitest/issues/3203](https://github.com/vitest-dev/vitest/issues/3203)
[<samp>(b0929)</samp>](https://github.com/vitest-dev/vitest/commit/b0929852)
- To address speed issues in some applications, Vitest now provides
`experimentalVmThreads` pool to run your tests using VM Sandboxes
environment. Make sure you understand [all
pitfalls](https://vitest.dev/config/#experimentalvmthreads) of this pool
before opening an issue.
- Introduce `server` option  -  by
[@&#8203;fenghan34](https://github.com/fenghan34) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3725](https://github.com/vitest-dev/vitest/issues/3725)
[<samp>(dc4fa)</samp>](https://github.com/vitest-dev/vitest/commit/dc4faf64)
- Most of `deps.` options are now moved to `server.deps` with a
deprecation warning. Please, consider using `deps.optimizer` instead of
`deps.inline`/`deps.external`. Ideally, we would like to move away from
using `server.deps.inline` altogether.
- **vite-node**: Make CLI arguments parsing behavior consistent with
node/tsx/ts-node  -  by [@&#8203;rxliuli](https://github.com/rxliuli)
in
[https://github.com/vitest-dev/vitest/issues/3574](https://github.com/vitest-dev/vitest/issues/3574)
[<samp>(1cd4e)</samp>](https://github.com/vitest-dev/vitest/commit/1cd4eb0f)
- You now have to provide CLI arguments before the entry point. For
example, instead of `vite-node index.ts --watch`, you now have to do
`vite-node --watch index.ts`.
- Add preact example, remove optimizer experimental status, enable by
default  -  by [@&#8203;sheremet-va](https://github.com/sheremet-va)
and [@&#8203;eryue0220](https://github.com/eryue0220) in
[https://github.com/vitest-dev/vitest/issues/3854](https://github.com/vitest-dev/vitest/issues/3854)
[<samp>(4b946)</samp>](https://github.com/vitest-dev/vitest/commit/4b946ca9)
- `deps.optimizer` is now enabled by default. This means that Vitest
will bundle specified dependencies before running your tests. This field
inherits options from `optimizeDeps` and `ssr.optimizeDeps` which are
populated by other plugins (like, Svelte).

#####    🚀 Features

- Support `describe.sequential`  -  by
[@&#8203;fenghan34](https://github.com/fenghan34) and
[@&#8203;dammy001](https://github.com/dammy001) in
[https://github.com/vitest-dev/vitest/issues/3771](https://github.com/vitest-dev/vitest/issues/3771)
[<samp>(86934)</samp>](https://github.com/vitest-dev/vitest/commit/8693449b)
- Support config junit reporter className with env  -  by
[@&#8203;InfiniteXyy](https://github.com/InfiniteXyy) in
[https://github.com/vitest-dev/vitest/issues/3808](https://github.com/vitest-dev/vitest/issues/3808)
[<samp>(e8bc4)</samp>](https://github.com/vitest-dev/vitest/commit/e8bc46b6)
- Running vitest with `--related --watch` reruns non-affected tests if
they were changed during a run  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3844](https://github.com/vitest-dev/vitest/issues/3844)
[<samp>(c9aea)</samp>](https://github.com/vitest-dev/vitest/commit/c9aeac4c)

#####    🐞 Bug Fixes

- Isolate workers between envs and workspaces  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio)
[<samp>(ed4e0)</samp>](https://github.com/vitest-dev/vitest/commit/ed4e0424)
- Modify condition  -  by [@&#8203;btea](https://github.com/btea)
[<samp>(a78e6)</samp>](https://github.com/vitest-dev/vitest/commit/a78e6bd0)
- Module Graph view is blocking the Console view  -  by
[@&#8203;g4rry420](https://github.com/g4rry420)
[<samp>(3b5f9)</samp>](https://github.com/vitest-dev/vitest/commit/3b5f96bc)
- Port the latest `defineConfig` type from vite  -  by
[@&#8203;sodatea](https://github.com/sodatea) in
[https://github.com/vitest-dev/vitest/issues/3804](https://github.com/vitest-dev/vitest/issues/3804)
[<samp>(9c8e3)</samp>](https://github.com/vitest-dev/vitest/commit/9c8e3083)
- Don't overwrite Node.js URL global  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3828](https://github.com/vitest-dev/vitest/issues/3828)
[<samp>(cdab4)</samp>](https://github.com/vitest-dev/vitest/commit/cdab4651)
- ForceRerunTriggers correctly triggers a rerun  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3829](https://github.com/vitest-dev/vitest/issues/3829)
[<samp>(17988)</samp>](https://github.com/vitest-dev/vitest/commit/17988e51)
-   **browser**:
- Don't inline magic-string and estree-walker  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3726](https://github.com/vitest-dev/vitest/issues/3726)
[<samp>(ee937)</samp>](https://github.com/vitest-dev/vitest/commit/ee93762a)
- Multi-suite coverage  -  by
[@&#8203;elby22](https://github.com/elby22) in
[https://github.com/vitest-dev/vitest/issues/3806](https://github.com/vitest-dev/vitest/issues/3806)
[<samp>(5de9a)</samp>](https://github.com/vitest-dev/vitest/commit/5de9af26)
-   **core**:
- DataView comparison does not work in `toStrictEqual`  -  by
[@&#8203;Dunqing](https://github.com/Dunqing)
[<samp>(52aef)</samp>](https://github.com/vitest-dev/vitest/commit/52aef92e)
-   **coverage**:
- V8 provider to pick source maps without url query params  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3784](https://github.com/vitest-dev/vitest/issues/3784)
[<samp>(280e6)</samp>](https://github.com/vitest-dev/vitest/commit/280e6745)
- Update `istanbul-lib-instrument` to v6 to fix vulnerable dependency
 -  by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3814](https://github.com/vitest-dev/vitest/issues/3814)
[<samp>(f3bd9)</samp>](https://github.com/vitest-dev/vitest/commit/f3bd9102)
- Exclude vite virtual modules by default  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3794](https://github.com/vitest-dev/vitest/issues/3794)
[<samp>(3c851)</samp>](https://github.com/vitest-dev/vitest/commit/3c851872)
-   **node**:
- Guard error info  -  by [@&#8203;btea](https://github.com/btea)
[<samp>(88b39)</samp>](https://github.com/vitest-dev/vitest/commit/88b39758)
-   **vite-node**:
- Always treat node_modules as modulesDirectory  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3830](https://github.com/vitest-dev/vitest/issues/3830)
[<samp>(51ab8)</samp>](https://github.com/vitest-dev/vitest/commit/51ab8d6c)
- Normalize drive letter to keep the same reference to a module  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3836](https://github.com/vitest-dev/vitest/issues/3836)
[<samp>(45521)</samp>](https://github.com/vitest-dev/vitest/commit/45521859)
- Correctly resolve hmr filepath  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3834](https://github.com/vitest-dev/vitest/issues/3834)
[<samp>(711a6)</samp>](https://github.com/vitest-dev/vitest/commit/711a6249)
-   **watch**:
- Clear screen on all terminals  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3661](https://github.com/vitest-dev/vitest/issues/3661)
[<samp>(8bd26)</samp>](https://github.com/vitest-dev/vitest/commit/8bd26b01)

#####    🏎 Performance

- Deprecate deps.registerNodeLoader  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va)
[<samp>(7f45b)</samp>](https://github.com/vitest-dev/vitest/commit/7f45bf2d)
- This option was introduced to support aliasing inside external
packages. Please, use `deps.optimizer.web` instead. If you test Node.js
applications, consider adding external packages to `server.deps.inline`.

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.33.0...v0.34.0)

###
[`v0.33.0`](https://github.com/vitest-dev/vitest/releases/tag/v0.33.0)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.32.4...v0.33.0)

#####    🚨 Breaking Changes

- Revert default include patterns  -  by
[@&#8203;so1ve](https://github.com/so1ve)
[#&#8203;3729](https://github.com/vitest-dev/vitest/issues/3729)
- `0.32.0` changed the default `include` globs to be compatible with
Jest. After a discussion with the community, we are reverting this
change because it turned out to be non-intuitive.

#####    🐞 Bug Fixes

- Add missing JSDom living keys  -  by
[@&#8203;DerZade](https://github.com/DerZade) in
[https://github.com/vitest-dev/vitest/issues/3702](https://github.com/vitest-dev/vitest/issues/3702)
[<samp>(83a86)</samp>](https://github.com/vitest-dev/vitest/commit/83a86a75)
-   **vite-node**:
- Don't fail when importing Promise module  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va)
[<samp>(08192)</samp>](https://github.com/vitest-dev/vitest/commit/0819275a)
- Allow importing node:test  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va)
[<samp>(db22c)</samp>](https://github.com/vitest-dev/vitest/commit/db22c677)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.32.4...v0.33.0)

###
[`v0.32.4`](https://github.com/vitest-dev/vitest/releases/tag/v0.32.4)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.32.3...v0.32.4)

#####    🐞 Bug Fixes

- **browser**: Correctly optimize CJS dependencies  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va)
[<samp>(3d090)</samp>](https://github.com/vitest-dev/vitest/commit/3d0908e7)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.32.3...v0.32.4)

###
[`v0.32.3`](https://github.com/vitest-dev/vitest/releases/tag/v0.32.3)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.32.2...v0.32.3)

#####    🚀 Features

- Add `concurrent` option to `sequence` config  -  by
[@&#8203;fenghan34](https://github.com/fenghan34) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3604](https://github.com/vitest-dev/vitest/issues/3604)
[<samp>(f427f)</samp>](https://github.com/vitest-dev/vitest/commit/f427f004)
- Introduce global configuration for retry setting  -  by
[@&#8203;imentu](https://github.com/imentu) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3598](https://github.com/vitest-dev/vitest/issues/3598)
and
[https://github.com/vitest-dev/vitest/issues/3603](https://github.com/vitest-dev/vitest/issues/3603)
[<samp>(9a117)</samp>](https://github.com/vitest-dev/vitest/commit/9a117627)
- Don't rely on util package in
[@&#8203;vitest/utils](https://github.com/vitest/utils)  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3685](https://github.com/vitest-dev/vitest/issues/3685)
[<samp>(f91da)</samp>](https://github.com/vitest-dev/vitest/commit/f91da484)
- Support accessing other fixtures in fixture function  -  by
[@&#8203;fenghan34](https://github.com/fenghan34) in
[https://github.com/vitest-dev/vitest/issues/3651](https://github.com/vitest-dev/vitest/issues/3651)
[<samp>(1621c)</samp>](https://github.com/vitest-dev/vitest/commit/1621cc63)
- Support use function/class as `bench` name  -  by
[@&#8203;fenghan34](https://github.com/fenghan34) in
[https://github.com/vitest-dev/vitest/issues/3711](https://github.com/vitest-dev/vitest/issues/3711)
[<samp>(a749a)</samp>](https://github.com/vitest-dev/vitest/commit/a749a6c0)
- **reporters**: Show full test suite when testing 1 spec file at a time
 -  by [@&#8203;Dunqing](https://github.com/Dunqing) in
[https://github.com/vitest-dev/vitest/issues/3543](https://github.com/vitest-dev/vitest/issues/3543)
[<samp>(7531c)</samp>](https://github.com/vitest-dev/vitest/commit/7531c292)
- **runner**: Support `test.extend`  -  by
[@&#8203;fenghan34](https://github.com/fenghan34) in
[https://github.com/vitest-dev/vitest/issues/3554](https://github.com/vitest-dev/vitest/issues/3554)
[<samp>(2db1a)</samp>](https://github.com/vitest-dev/vitest/commit/2db1a737)

#####    🐞 Bug Fixes

- Remove "concordance" from dependencies list  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3597](https://github.com/vitest-dev/vitest/issues/3597)
[<samp>(969dc)</samp>](https://github.com/vitest-dev/vitest/commit/969dcc14)
- Show diff correctly  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3620](https://github.com/vitest-dev/vitest/issues/3620)
[<samp>(73dd4)</samp>](https://github.com/vitest-dev/vitest/commit/73dd4ab5)
- Util import  -  by [@&#8203;fubhy](https://github.com/fubhy) in
[https://github.com/vitest-dev/vitest/issues/3621](https://github.com/vitest-dev/vitest/issues/3621)
[<samp>(2fb4c)</samp>](https://github.com/vitest-dev/vitest/commit/2fb4ceff)
- Compat with frozen Math  -  by
[@&#8203;turadg](https://github.com/turadg) in
[https://github.com/vitest-dev/vitest/issues/3527](https://github.com/vitest-dev/vitest/issues/3527)
[<samp>(0db67)</samp>](https://github.com/vitest-dev/vitest/commit/0db67098)
- `CTRL+C` to terminate run  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3642](https://github.com/vitest-dev/vitest/issues/3642)
[<samp>(fa663)</samp>](https://github.com/vitest-dev/vitest/commit/fa6637d3)
- Run mode stuck in TTY terminals  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3690](https://github.com/vitest-dev/vitest/issues/3690)
[<samp>(141a8)</samp>](https://github.com/vitest-dev/vitest/commit/141a86ac)
- Use first stack frame in json reporter  -  by
[@&#8203;tim-smart](https://github.com/tim-smart) in
[https://github.com/vitest-dev/vitest/issues/3645](https://github.com/vitest-dev/vitest/issues/3645)
[<samp>(80ea7)</samp>](https://github.com/vitest-dev/vitest/commit/80ea7ef6)
- Print actual number for `toBeCalledTimes`  -  by
[@&#8203;antfu](https://github.com/antfu) in
[https://github.com/vitest-dev/vitest/issues/3696](https://github.com/vitest-dev/vitest/issues/3696)
[<samp>(d3640)</samp>](https://github.com/vitest-dev/vitest/commit/d3640437)
-   **benchmark**:
- Don't fail when running correct benchmarks  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3629](https://github.com/vitest-dev/vitest/issues/3629)
[<samp>(edad9)</samp>](https://github.com/vitest-dev/vitest/commit/edad9b19)
-   **browser**:
- Correctly print diff  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3627](https://github.com/vitest-dev/vitest/issues/3627)
[<samp>(d756e)</samp>](https://github.com/vitest-dev/vitest/commit/d756ee24)
- Esm injector doesn't replace class expressions  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3641](https://github.com/vitest-dev/vitest/issues/3641)
[<samp>(5c0ac)</samp>](https://github.com/vitest-dev/vitest/commit/5c0ac4ad)
- Transform superclass identifier  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3681](https://github.com/vitest-dev/vitest/issues/3681)
[<samp>(a1e04)</samp>](https://github.com/vitest-dev/vitest/commit/a1e043bd)
-   **coverage**:
- `v8` to prevent crash on dynamic CJS files  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3657](https://github.com/vitest-dev/vitest/issues/3657)
[<samp>(40f18)</samp>](https://github.com/vitest-dev/vitest/commit/40f18a07)
-   **runner**:
- Make the default value of `retry` and `repeats` 0  -  by
[@&#8203;Dunqing](https://github.com/Dunqing) in
[https://github.com/vitest-dev/vitest/issues/3638](https://github.com/vitest-dev/vitest/issues/3638)
[<samp>(6d146)</samp>](https://github.com/vitest-dev/vitest/commit/6d146d16)
-   **utils**:
- Respect all flags in format function  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3695](https://github.com/vitest-dev/vitest/issues/3695)
[<samp>(91e16)</samp>](https://github.com/vitest-dev/vitest/commit/91e1650e)
-   **watch**:
- Cancel using `h` key  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3618](https://github.com/vitest-dev/vitest/issues/3618)
[<samp>(60c36)</samp>](https://github.com/vitest-dev/vitest/commit/60c36faf)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.32.2...v0.32.3)

###
[`v0.32.2`](https://github.com/vitest-dev/vitest/releases/tag/v0.32.2)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.32.1...v0.32.2)

#####    🐞 Bug Fixes

- **browser**: Don't fail on importing diff-sequences  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va)
[<samp>(00b0e)</samp>](https://github.com/vitest-dev/vitest/commit/00b0e6a3)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.32.1...v0.32.2)

###
[`v0.32.1`](https://github.com/vitest-dev/vitest/releases/tag/v0.32.1)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.32.0...v0.32.1)

#####    🚀 Features

- Export `registerConsoleShortcuts` from `vitest/node`  -  by
[@&#8203;deot](https://github.com/deot) in
[https://github.com/vitest-dev/vitest/issues/3563](https://github.com/vitest-dev/vitest/issues/3563)
[<samp>(bc49b)</samp>](https://github.com/vitest-dev/vitest/commit/bc49bac7)
- **expect**: Support `expect.unreachable`  -  by
[@&#8203;fenghan34](https://github.com/fenghan34) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3556](https://github.com/vitest-dev/vitest/issues/3556)
[<samp>(8e385)</samp>](https://github.com/vitest-dev/vitest/commit/8e385bb0)
- **runner**: `describe`/`test` name support anonymous function  -  by
[@&#8203;btea](https://github.com/btea) in
[https://github.com/vitest-dev/vitest/issues/3562](https://github.com/vitest-dev/vitest/issues/3562)
[<samp>(3d436)</samp>](https://github.com/vitest-dev/vitest/commit/3d43638c)

#####    🐞 Bug Fixes

- Avoid call stack recursion with large error (fix:
[#&#8203;3060](https://github.com/vitest-dev/vitest/issues/3060))  - 
by [@&#8203;nathanmmiller](https://github.com/nathanmmiller) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3078](https://github.com/vitest-dev/vitest/issues/3078)
and
[https://github.com/vitest-dev/vitest/issues/3060](https://github.com/vitest-dev/vitest/issues/3060)
[<samp>(02196)</samp>](https://github.com/vitest-dev/vitest/commit/02196f9d)
- Automatically remove define related configuration  -  by
[@&#8203;btea](https://github.com/btea) in
[https://github.com/vitest-dev/vitest/issues/3552](https://github.com/vitest-dev/vitest/issues/3552)
[<samp>(368b8)</samp>](https://github.com/vitest-dev/vitest/commit/368b8259)
- Import `performance` from `perf_hooks`  -  by
[@&#8203;Max10240](https://github.com/Max10240) and
**wangbaolong.wbl** in
[https://github.com/vitest-dev/vitest/issues/3578](https://github.com/vitest-dev/vitest/issues/3578)
and
[https://github.com/vitest-dev/vitest/issues/3579](https://github.com/vitest-dev/vitest/issues/3579)
[<samp>(24ec8)</samp>](https://github.com/vitest-dev/vitest/commit/24ec85a8)
- Revert concordance diff, use jest's diff output  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3582](https://github.com/vitest-dev/vitest/issues/3582)
[<samp>(9c7ea)</samp>](https://github.com/vitest-dev/vitest/commit/9c7ea382)
- Typo in config suggestion  -  by
[@&#8203;Krisell](https://github.com/Krisell) in
[https://github.com/vitest-dev/vitest/issues/3583](https://github.com/vitest-dev/vitest/issues/3583)
[<samp>(68985)</samp>](https://github.com/vitest-dev/vitest/commit/689855bb)
-   **browser**:
- Change optimized deps to use `vitest`  -  by
[@&#8203;userquin](https://github.com/userquin) in
[https://github.com/vitest-dev/vitest/issues/3580](https://github.com/vitest-dev/vitest/issues/3580)
[<samp>(b4ac8)</samp>](https://github.com/vitest-dev/vitest/commit/b4ac88e9)
- Access **vi_inject** only if it was injected  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3587](https://github.com/vitest-dev/vitest/issues/3587)
[<samp>(d9e14)</samp>](https://github.com/vitest-dev/vitest/commit/d9e1419a)
-   **mocker**:
- Respect namespace import when hoisting vi.mock  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3547](https://github.com/vitest-dev/vitest/issues/3547)
[<samp>(158c4)</samp>](https://github.com/vitest-dev/vitest/commit/158c4bb0)
-   **ui**:
- Navigate to dashboard when re-running tests from coverage page  -  by
[@&#8203;userquin](https://github.com/userquin) in
[https://github.com/vitest-dev/vitest/issues/3529](https://github.com/vitest-dev/vitest/issues/3529)
[<samp>(bc283)</samp>](https://github.com/vitest-dev/vitest/commit/bc283ae3)
-   **vite-node**:
- Correctly resolve virtual modules  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3544](https://github.com/vitest-dev/vitest/issues/3544)
[<samp>(0cbb0)</samp>](https://github.com/vitest-dev/vitest/commit/0cbb07b4)
- Fix errors caused by commonjs export circular references  -  by
[@&#8203;rxliuli](https://github.com/rxliuli) in
[https://github.com/vitest-dev/vitest/issues/3570](https://github.com/vitest-dev/vitest/issues/3570)
[<samp>(b097c)</samp>](https://github.com/vitest-dev/vitest/commit/b097cef8)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.32.0...v0.32.1)

###
[`v0.32.0`](https://github.com/vitest-dev/vitest/releases/tag/v0.32.0)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.31.4...v0.32.0)

#####    🚨 Breaking Changes

- Throw an error, if the module cannot be resolved  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3307](https://github.com/vitest-dev/vitest/issues/3307)
[<samp>(1ad63)</samp>](https://github.com/vitest-dev/vitest/commit/1ad63b0c)
- Vitest used to fall back to the original import when it could not
resolve it to the file path or the virtual module. This leads to
hard-to-find module graph mismatches if you had incorrect alias or
relied on relative imports to be resolved to the project root (which is
usual behavior in TypeScript) because the code accidentally "worked".
With this release, Vitest will now throw an error if it cannot resolve
the module - there are possible edge cases that are not covered yet, so
if you have any problems with this, please open a separate issue with
reproduction.
- Improve globs  -  by
[@&#8203;nickmccurdy](https://github.com/nickmccurdy) in
[https://github.com/vitest-dev/vitest/issues/3392](https://github.com/vitest-dev/vitest/issues/3392)
[<samp>(19ecc)</samp>](https://github.com/vitest-dev/vitest/commit/19ecc6c7)
- Vitest now has glob patterns similar to Jest for better compatibility.
It's possible that some files will be considered test files when
previously they were not. For example, Vitest now considers `test.js` to
be a test file. Also any file in `__tests__` is now considered to be a
test, not just files with `test` or `spec` suffix.
- Add `@vitest/coverage-v8` package  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3339](https://github.com/vitest-dev/vitest/issues/3339)
[<samp>(82112)</samp>](https://github.com/vitest-dev/vitest/commit/821126f1)
- Vitest now uses v8 code coverage directly for better performance.
`@vitest/coverage-c8` is deprecated as Vitest no longer uses c8 package
for coverage output. It will not be updated anymore, and Vitest will
fail in the next version if the user has `c8` as their coverage
provider. Please, install the new `@vitest/coverage-v8` package if you
previously used `@vitest/coverage-c8`.
- **mocker**: Don't restore mock to the original if the module is
automocked  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3518](https://github.com/vitest-dev/vitest/issues/3518)
[<samp>(c1004)</samp>](https://github.com/vitest-dev/vitest/commit/c1004e14)
- `spy.mockRestore` on auto-mocked named exports will no longer restore
their implementation to the actual function. This behavior better
matches what Jest does.

#####    🚀 Features

- Support ssr optimizer  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3490](https://github.com/vitest-dev/vitest/issues/3490)
[<samp>(89842)</samp>](https://github.com/vitest-dev/vitest/commit/898422b0)
- Image type add apng  -  by [@&#8203;btea](https://github.com/btea)
in
[https://github.com/vitest-dev/vitest/issues/3498](https://github.com/vitest-dev/vitest/issues/3498)
[<samp>(a53c2)</samp>](https://github.com/vitest-dev/vitest/commit/a53c2151)
- **expect**: Support `expect.soft`  -  by
[@&#8203;Dunqing](https://github.com/Dunqing) in
[https://github.com/vitest-dev/vitest/issues/3507](https://github.com/vitest-dev/vitest/issues/3507)
[<samp>(7c687)</samp>](https://github.com/vitest-dev/vitest/commit/7c687ada)
- **runner**: Support using function/class as `describe`/`test` name  - 
by [@&#8203;fenghan34](https://github.com/fenghan34) in
[https://github.com/vitest-dev/vitest/issues/3497](https://github.com/vitest-dev/vitest/issues/3497)
[<samp>(15253)</samp>](https://github.com/vitest-dev/vitest/commit/15253890)

#####    🐞 Bug Fixes

- The cli option is passed to coverage.exclude  -  by
[@&#8203;btea](https://github.com/btea) in
[https://github.com/vitest-dev/vitest/issues/3506](https://github.com/vitest-dev/vitest/issues/3506)
[<samp>(c37cd)</samp>](https://github.com/vitest-dev/vitest/commit/c37cdebe)
- **optimizer**: Always respect optimizeDeps even if include/exclude is
overridden  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3488](https://github.com/vitest-dev/vitest/issues/3488)
[<samp>(eb285)</samp>](https://github.com/vitest-dev/vitest/commit/eb285ea0)
- **runner**: Ensure Vitest is deduped  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3489](https://github.com/vitest-dev/vitest/issues/3489)
[<samp>(2deb7)</samp>](https://github.com/vitest-dev/vitest/commit/2deb70ab)
- **ui**: Don't cache coverage assets  -  by
[@&#8203;userquin](https://github.com/userquin) in
[https://github.com/vitest-dev/vitest/issues/3508](https://github.com/vitest-dev/vitest/issues/3508)
[<samp>(952b5)</samp>](https://github.com/vitest-dev/vitest/commit/952b5be6)
- **vite-node**: Circular import stuck  -  by
[@&#8203;Dunqing](https://github.com/Dunqing) in
[https://github.com/vitest-dev/vitest/issues/3480](https://github.com/vitest-dev/vitest/issues/3480)
[<samp>(50f07)</samp>](https://github.com/vitest-dev/vitest/commit/50f0700d)
- **watch**: Junit reporter fails to re-generate report  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3496](https://github.com/vitest-dev/vitest/issues/3496)
[<samp>(5b73c)</samp>](https://github.com/vitest-dev/vitest/commit/5b73cbf8)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.31.4...v0.32.0)

###
[`v0.31.4`](https://github.com/vitest-dev/vitest/releases/tag/v0.31.4)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.31.3...v0.31.4)

#####    🚀 Features

- Enable experimentalOptimizer  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3413](https://github.com/vitest-dev/vitest/issues/3413)
[<samp>(5a894)</samp>](https://github.com/vitest-dev/vitest/commit/5a894aa2)

#####    🐞 Bug Fixes

- **vite-node**: Deps.inline doesn't work  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3485](https://github.com/vitest-dev/vitest/issues/3485)
[<samp>(be930)</samp>](https://github.com/vitest-dev/vitest/commit/be93032f)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.31.3...v0.31.4)

###
[`v0.31.3`](https://github.com/vitest-dev/vitest/releases/tag/v0.31.3)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.31.2...v0.31.3)

#####    🚀 Features

- Support `VITE_NODE_DEPS_MODULE_DIRECTORIES` from .npmrc  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3471](https://github.com/vitest-dev/vitest/issues/3471)
[<samp>(393bf)</samp>](https://github.com/vitest-dev/vitest/commit/393bf60c)

#####    🐞 Bug Fixes

- **logger**: Print unhandled errors before summary  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3474](https://github.com/vitest-dev/vitest/issues/3474)
[<samp>(4c9a7)</samp>](https://github.com/vitest-dev/vitest/commit/4c9a7d58)
- **runner**: Suite options do not propagate to nested suites (fix:
[#&#8203;3467](https://github.com/vitest-dev/vitest/issues/3467))  - 
by [@&#8203;xsjcTony](https://github.com/xsjcTony) in
[https://github.com/vitest-dev/vitest/issues/3473](https://github.com/vitest-dev/vitest/issues/3473)
and
[https://github.com/vitest-dev/vitest/issues/3467](https://github.com/vitest-dev/vitest/issues/3467)
[<samp>(9fb9d)</samp>](https://github.com/vitest-dev/vitest/commit/9fb9dacb)
- **vite-node**: Clear importers when invalidating module  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3475](https://github.com/vitest-dev/vitest/issues/3475)
[<samp>(add29)</samp>](https://github.com/vitest-dev/vitest/commit/add29c86)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.31.2...v0.31.3)

###
[`v0.31.2`](https://github.com/vitest-dev/vitest/releases/tag/v0.31.2)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.31.1...v0.31.2)

#####    🚀 Features

- Throw error if using inline snapshot inside of `test.each` or
`describe.each`  -  by
[@&#8203;fenghan34](https://github.com/fenghan34) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3360](https://github.com/vitest-dev/vitest/issues/3360)
[<samp>(7c2f7)</samp>](https://github.com/vitest-dev/vitest/commit/7c2f7088)
- Pass down meta information to Node.js process  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) and
[@&#8203;dammy001](https://github.com/dammy001) in
[https://github.com/vitest-dev/vitest/issues/3449](https://github.com/vitest-dev/vitest/issues/3449)
[<samp>(e39ad)</samp>](https://github.com/vitest-dev/vitest/commit/e39adea8)
- **coverage**: Add `reportOnFailure` option  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3453](https://github.com/vitest-dev/vitest/issues/3453)
[<samp>(1988f)</samp>](https://github.com/vitest-dev/vitest/commit/1988fcb4)
- **dev**: Add moduleDirectories option to the vitest config  -  by
[@&#8203;fooddilsn](https://github.com/fooddilsn) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3337](https://github.com/vitest-dev/vitest/issues/3337)
[<samp>(b3602)</samp>](https://github.com/vitest-dev/vitest/commit/b3602bcc)

#####    🐞 Bug Fixes

- Don't print empty diff  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3437](https://github.com/vitest-dev/vitest/issues/3437)
[<samp>(32b53)</samp>](https://github.com/vitest-dev/vitest/commit/32b5361f)
- Don't restore methods in automocked dependencies  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3438](https://github.com/vitest-dev/vitest/issues/3438)
[<samp>(d1afd)</samp>](https://github.com/vitest-dev/vitest/commit/d1afd262)
- Dot reporter scrollback buffer spam  -  by
[@&#8203;gtm-nayan](https://github.com/gtm-nayan) in
[https://github.com/vitest-dev/vitest/issues/3415](https://github.com/vitest-dev/vitest/issues/3415)
[<samp>(e6792)</samp>](https://github.com/vitest-dev/vitest/commit/e6792a94)
- Gracefully exit when first `SIGINT` is received  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3407](https://github.com/vitest-dev/vitest/issues/3407)
[<samp>(a2cc2)</samp>](https://github.com/vitest-dev/vitest/commit/a2cc2b38)
- `rejects` & `resolves` breaks with thenable objects  -  by
[@&#8203;fenghan34](https://github.com/fenghan34) in
[https://github.com/vitest-dev/vitest/issues/3456](https://github.com/vitest-dev/vitest/issues/3456)
[<samp>(4e996)</samp>](https://github.com/vitest-dev/vitest/commit/4e996ae5)
- Prevent `birpc` timeouts when `Math.random` mock is not restored  - 
by [@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3460](https://github.com/vitest-dev/vitest/issues/3460)
[<samp>(cd5d5)</samp>](https://github.com/vitest-dev/vitest/commit/cd5d58b7)
- Assertion diff message now handle non writable property correctly  - 
by [@&#8203;PCreations](https://github.com/PCreations) in
[https://github.com/vitest-dev/vitest/issues/3422](https://github.com/vitest-dev/vitest/issues/3422)
[<samp>(f75ab)</samp>](https://github.com/vitest-dev/vitest/commit/f75ab650)
- Extend logging of process timeout errors  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3452](https://github.com/vitest-dev/vitest/issues/3452)
[<samp>(42643)</samp>](https://github.com/vitest-dev/vitest/commit/42643904)
- Support requiring files with `less` extension  -  by
[@&#8203;rluvaton](https://github.com/rluvaton) in
[https://github.com/vitest-dev/vitest/issues/3465](https://github.com/vitest-dev/vitest/issues/3465)
[<samp>(4d045)</samp>](https://github.com/vitest-dev/vitest/commit/4d045695)
-   **cli**:
- Improve colors used when erroring  -  by
[@&#8203;ghiscoding](https://github.com/ghiscoding) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3349](https://github.com/vitest-dev/vitest/issues/3349)
[<samp>(16681)</samp>](https://github.com/vitest-dev/vitest/commit/16681791)
-   **runner**:
- Suite timeout does not take effect  -  by
[@&#8203;btea](https://github.com/btea) in
[https://github.com/vitest-dev/vitest/issues/3455](https://github.com/vitest-dev/vitest/issues/3455)
[<samp>(82547)</samp>](https://github.com/vitest-dev/vitest/commit/82547376)
-   **spy**:
- Don't print received calls if there are no calls  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3405](https://github.com/vitest-dev/vitest/issues/3405)
[<samp>(41e11)</samp>](https://github.com/vitest-dev/vitest/commit/41e11dad)
-   **typecheck**:
- Show tsc errors not related to test files  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3441](https://github.com/vitest-dev/vitest/issues/3441)
[<samp>(a1da5)</samp>](https://github.com/vitest-dev/vitest/commit/a1da5714)
-   **types**:
- Fix `PartialMock` with async TReturns  -  by
[@&#8203;ghry5](https://github.com/ghry5) in
[https://github.com/vitest-dev/vitest/issues/3462](https://github.com/vitest-dev/vitest/issues/3462)
[<samp>(b664d)</samp>](https://github.com/vitest-dev/vitest/commit/b664d42c)
-   **vite-node**:
- Circular import stuck  -  by
[@&#8203;Dunqing](https://github.com/Dunqing) in
[https://github.com/vitest-dev/vitest/issues/3418](https://github.com/vitest-dev/vitest/issues/3418)
[<samp>(632ee)</samp>](https://github.com/vitest-dev/vitest/commit/632eef40)
- Coerce to string in import(dep)  -  by
[@&#8203;jcbhmr](https://github.com/jcbhmr) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3430](https://github.com/vitest-dev/vitest/issues/3430)
[<samp>(b72eb)</samp>](https://github.com/vitest-dev/vitest/commit/b72ebdb9)
- Don't remove sourcemap string in source code  -  by
[@&#8203;rxliuli](https://github.com/rxliuli) and
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/2918](https://github.com/vitest-dev/vitest/issues/2918)
and
[https://github.com/vitest-dev/vitest/issues/3379](https://github.com/vitest-dev/vitest/issues/3379)
[<samp>(02dc9)</samp>](https://github.com/vitest-dev/vitest/commit/02dc9ea7)
- Don't externalize "dist" by default  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3446](https://github.com/vitest-dev/vitest/issues/3446)
[<samp>(306b2)</samp>](https://github.com/vitest-dev/vitest/commit/306b2337)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.31.1...v0.31.2)

###
[`v0.31.1`](https://github.com/vitest-dev/vitest/releases/tag/v0.31.1)

[Compare
Source](https://github.com/vitest-dev/vitest/compare/v0.31.0...v0.31.1)

#####    🚀 Features

- **watch**: Press `r` should rerun current pattern tests  -  by
[@&#8203;Dunqing](https://github.com/Dunqing) and
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3305](https://github.com/vitest-dev/vitest/issues/3305)
[<samp>(69d27)</samp>](https://github.com/vitest-dev/vitest/commit/69d27117)

#####    🐞 Bug Fixes

- Make sure thrown error is an object  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3298](https://github.com/vitest-dev/vitest/issues/3298)
[<samp>(a93be)</samp>](https://github.com/vitest-dev/vitest/commit/a93be56c)
- Remove duplicate type  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3303](https://github.com/vitest-dev/vitest/issues/3303)
[<samp>(5382e)</samp>](https://github.com/vitest-dev/vitest/commit/5382e8b6)
- Throw an error, if tests are collected with a different vitest version
 -  by [@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3301](https://github.com/vitest-dev/vitest/issues/3301)
[<samp>(708b1)</samp>](https://github.com/vitest-dev/vitest/commit/708b10fe)
- Support application/x-gzip metadata in html report  -  by
[@&#8203;mzanelee](https://github.com/mzanelee) and **Michael Lee** in
[https://github.com/vitest-dev/vitest/issues/3333](https://github.com/vitest-dev/vitest/issues/3333)
[<samp>(5bf7e)</samp>](https://github.com/vitest-dev/vitest/commit/5bf7eb6e)
- Correctly restore vi.fn implementation  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3341](https://github.com/vitest-dev/vitest/issues/3341)
[<samp>(2aff8)</samp>](https://github.com/vitest-dev/vitest/commit/2aff8c5f)
- Display error message correctly  -  by
[@&#8203;btea](https://github.com/btea) in
[https://github.com/vitest-dev/vitest/issues/3314](https://github.com/vitest-dev/vitest/issues/3314)
[<samp>(a5b3d)</samp>](https://github.com/vitest-dev/vitest/commit/a5b3d78e)
- Exclude `cwd` from test name filter  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3353](https://github.com/vitest-dev/vitest/issues/3353)
[<samp>(324a9)</samp>](https://github.com/vitest-dev/vitest/commit/324a9b54)
- Check error type before modifying it  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3385](https://github.com/vitest-dev/vitest/issues/3385)
[<samp>(c44d9)</samp>](https://github.com/vitest-dev/vitest/commit/c44d9912)
- `toMatchInlineSnapshot` fails when file path includes parentheses  - 
by [@&#8203;pacexy](https://github.com/pacexy) in
[https://github.com/vitest-dev/vitest/issues/3370](https://github.com/vitest-dev/vitest/issues/3370)
and
[https://github.com/vitest-dev/vitest/issues/3371](https://github.com/vitest-dev/vitest/issues/3371)
[<samp>(dcf13)</samp>](https://github.com/vitest-dev/vitest/commit/dcf1346a)
- Stop spying on a method, when it's restored  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3386](https://github.com/vitest-dev/vitest/issues/3386)
[<samp>(2cb1a)</samp>](https://github.com/vitest-dev/vitest/commit/2cb1a15a)
- Test repeats  -  by
[@&#8203;fenghan34](https://github.com/fenghan34) in
[https://github.com/vitest-dev/vitest/issues/3369](https://github.com/vitest-dev/vitest/issues/3369)
[<samp>(fb8fc)</samp>](https://github.com/vitest-dev/vitest/commit/fb8fc7ab)
-   **browser**:
- Throw an error if test failed to load  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3390](https://github.com/vitest-dev/vitest/issues/3390)
[<samp>(b354b)</samp>](https://github.com/vitest-dev/vitest/commit/b354bc1c)
- Keep default export when rewriting exports  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3389](https://github.com/vitest-dev/vitest/issues/3389)
[<samp>(6501d)</samp>](https://github.com/vitest-dev/vitest/commit/6501d2e3)
-   **cli**:
- Improve cac errors when mixing boolean and dot notation  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3302](https://github.com/vitest-dev/vitest/issues/3302)
[<samp>(93fbd)</samp>](https://github.com/vitest-dev/vitest/commit/93fbd02d)
-   **reporter**:
- Prevent deleting test reports stored in coverage directory  -  by
[@&#8203;AriPerkkio](https://github.com/AriPerkkio) in
[https://github.com/vitest-dev/vitest/issues/3331](https://github.com/vitest-dev/vitest/issues/3331)
[<samp>(ddbba)</samp>](https://github.com/vitest-dev/vitest/commit/ddbba396)
-   **typecheck**:
- Correctly resolve custom tsconfig path  -  by
[@&#8203;sheremet-va](https://github.com/sheremet-va) in
[https://github.com/vitest-dev/vitest/issues/3342](https://github.com/vitest-dev/vitest/issues/3342)
[<samp>(c53ae)</samp>](https://github.com/vitest-dev/vitest/commit/c53ae079)
-   **vite-node**:
- Allow returning id not wrapped in promise  -  by
[@&#8203;danielroe](https://github.com/danielroe) in
[https://github.com/vitest-dev/vitest/issues/3312](https://github.com/vitest-dev/vitest/issues/3312)
[<samp>(9836c)</samp>](https://github.com/vitest-dev/vitest/commit/9836ccb4)

#####     [View changes on
GitHub](https://github.com/vitest-dev/vitest/compare/v0.31.0...v0.31.1)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "before 4am on Monday" (UTC),
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 this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/kivra/toybox).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi4yNy4xIiwidXBkYXRlZEluVmVyIjoiMzYuMjcuMSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Marcus Tisäter <77273035+marcustisater-kivra@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Vitest hangs tests, close timed out after 1000ms
3 participants