vitest-dev/vitest
### [`v0.31.0`](https://togithub.com/vitest-dev/vitest/releases/tag/v0.31.0)
[Compare Source](https://togithub.com/vitest-dev/vitest/compare/v0.30.1...v0.31.0)
##### 🚨 Breaking Changes
- Update mock implementation to support ESM runtime, introduce "vi.hoisted" - by [@sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/3258](https://togithub.com/vitest-dev/vitest/issues/3258) [(0c09a)](https://togithub.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.mocked('./path/to/module.js', () => {
return { originalMethod: mockedMethod }
})
```
- Move assertion declarations to expect package - by [@sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/3294](https://togithub.com/vitest-dev/vitest/issues/3294) [(cf3af)](https://togithub.com/vitest-dev/vitest/commit/cf3afe2b)
- The change should be minor:
```diff
- declare namespace Vi {
+ declare module '@vitest/expect' {
interface Assertion extends CustomMatchers {}
interface AsymmetricMatchersContaining extends CustomMatchers {}
}
```
##### 🚀 Features
- Add repeat method to tests - by [@samkevin1](https://togithub.com/samkevin1) in [https://github.com/vitest-dev/vitest/issues/2652](https://togithub.com/vitest-dev/vitest/issues/2652) [(7c8f0)](https://togithub.com/vitest-dev/vitest/commit/7c8f0ba9)
- Add an option to hide skipped test lines - by [@g4rry420](https://togithub.com/g4rry420) and [@sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2745](https://togithub.com/vitest-dev/vitest/issues/2745) [(9bdb1)](https://togithub.com/vitest-dev/vitest/commit/9bdb1603)
- **coverage**: Watermarks for c8 - by [@AriPerkkio](https://togithub.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/3254](https://togithub.com/vitest-dev/vitest/issues/3254) [(730af)](https://togithub.com/vitest-dev/vitest/commit/730af0b4)
- **ui**: Add html coverage - by [@userquin](https://togithub.com/userquin) and [@sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/3071](https://togithub.com/vitest-dev/vitest/issues/3071) [(e24cd)](https://togithub.com/vitest-dev/vitest/commit/e24cd9b2)
- **watch**: Test run cancelling, feat: `--bail` option for cancelling test run - by [@AriPerkkio](https://togithub.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/3163](https://togithub.com/vitest-dev/vitest/issues/3163) [(8d460)](https://togithub.com/vitest-dev/vitest/commit/8d4606eb)
##### 🐞 Bug Fixes
- Don't call global setup teardown twice - by [@sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/3188](https://togithub.com/vitest-dev/vitest/issues/3188) [(ba3d1)](https://togithub.com/vitest-dev/vitest/commit/ba3d1338)
- Reporter to log version before provider initalizations - by [@AriPerkkio](https://togithub.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/3131](https://togithub.com/vitest-dev/vitest/issues/3131) [(481b1)](https://togithub.com/vitest-dev/vitest/commit/481b1fd2)
- Throw an error if Vitest cannot access its internal state - by [@sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/3250](https://togithub.com/vitest-dev/vitest/issues/3250) [(fbb14)](https://togithub.com/vitest-dev/vitest/commit/fbb1468e)
- Warning suppression broken - by [@IceQub3](https://togithub.com/IceQub3) in [https://github.com/vitest-dev/vitest/issues/3270](https://togithub.com/vitest-dev/vitest/issues/3270) and [https://github.com/vitest-dev/vitest/issues/3271](https://togithub.com/vitest-dev/vitest/issues/3271) [(036de)](https://togithub.com/vitest-dev/vitest/commit/036de797)
- Show correct diff in "toHaveBeenCalledWith" - by [@sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/3289](https://togithub.com/vitest-dev/vitest/issues/3289) [(19fcd)](https://togithub.com/vitest-dev/vitest/commit/19fcd8df)
- Don't print esm warning, if package name is not found - by [@sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/3292](https://togithub.com/vitest-dev/vitest/issues/3292) [(62c14)](https://togithub.com/vitest-dev/vitest/commit/62c14cba)
- Support exactOptionalPropertyTypes - by [@sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/3293](https://togithub.com/vitest-dev/vitest/issues/3293) [(ba81d)](https://togithub.com/vitest-dev/vitest/commit/ba81d8a3)
- Don't inline vite hmr and rollup types - by [@sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/3291](https://togithub.com/vitest-dev/vitest/issues/3291) [(1f118)](https://togithub.com/vitest-dev/vitest/commit/1f1189bc)
- **browser**:
- Failing to load vitest/utils - by [@userquin](https://togithub.com/userquin) in [https://github.com/vitest-dev/vitest/issues/3190](https://togithub.com/vitest-dev/vitest/issues/3190) [(78bad)](https://togithub.com/vitest-dev/vitest/commit/78bad4ab)
- **coverage**:
- `thresholdAutoUpdate` to work with `perFile` - by [@AriPerkkio](https://togithub.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/3182](https://togithub.com/vitest-dev/vitest/issues/3182) [(29eeb)](https://togithub.com/vitest-dev/vitest/commit/29eebf65)
- Throw error if fail to load built-in provider - by [@AriPerkkio](https://togithub.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/3217](https://togithub.com/vitest-dev/vitest/issues/3217) [(0a287)](https://togithub.com/vitest-dev/vitest/commit/0a2875e3)
- Stackblitz hangs with c8 - by [@AriPerkkio](https://togithub.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/3225](https://togithub.com/vitest-dev/vitest/issues/3225) [(d9fda)](https://togithub.com/vitest-dev/vitest/commit/d9fda2a1)
- C8 to ignore vite's generated helpers - by [@AriPerkkio](https://togithub.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/3241](https://togithub.com/vitest-dev/vitest/issues/3241) [(21942)](https://togithub.com/vitest-dev/vitest/commit/21942db0)
- Workspaces c8 source maps - by [@AriPerkkio](https://togithub.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/3226](https://togithub.com/vitest-dev/vitest/issues/3226) [(efce3)](https://togithub.com/vitest-dev/vitest/commit/efce3b4d)
- **docs**:
- Correct typo and broken link to WebdriverIO - by [@nathanbabcock](https://togithub.com/nathanbabcock) in [https://github.com/vitest-dev/vitest/issues/3275](https://togithub.com/vitest-dev/vitest/issues/3275) [(c7da1)](https://togithub.com/vitest-dev/vitest/commit/c7da155f)
- **spy**:
- Update to set initial implementation through normal logic - by [@Codex-](https://togithub.com/Codex-) in [https://github.com/vitest-dev/vitest/issues/3260](https://togithub.com/vitest-dev/vitest/issues/3260) and [https://github.com/vitest-dev/vitest/issues/3263](https://togithub.com/vitest-dev/vitest/issues/3263) [(c759a)](https://togithub.com/vitest-dev/vitest/commit/c759a9aa)
- **vite-node**:
- Circular imports - by [@antfu](https://togithub.com/antfu) in [https://github.com/vitest-dev/vitest/issues/3196](https://togithub.com/vitest-dev/vitest/issues/3196) [(cbb59)](https://togithub.com/vitest-dev/vitest/commit/cbb593a8)
- Add missing `import.meta.hot.send` mock - by [@antfu](https://togithub.com/antfu) [(b1624)](https://togithub.com/vitest-dev/vitest/commit/b1624db5)
- **vitest**:
- Also check for vite relative to vitest package - by [@JoshuaKGoldberg](https://togithub.com/JoshuaKGoldberg) and [@sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/3274](https://togithub.com/vitest-dev/vitest/issues/3274) [(a3393)](https://togithub.com/vitest-dev/vitest/commit/a3393b15)
- **watch**:
- Run test files when added to filesystem - by [@AriPerkkio](https://togithub.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/3189](https://togithub.com/vitest-dev/vitest/issues/3189) [(7b2c8)](https://togithub.com/vitest-dev/vitest/commit/7b2c81bc)
##### [View changes on GitHub](https://togithub.com/vitest-dev/vitest/compare/v0.30.1...v0.31.0)
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.
[ ] If you want to rebase/retry this PR, check this box
This PR has been generated by Mend Renovate. View repository job log here.
This PR contains the following updates:
0.30.1
->0.31.0
Release Notes
vitest-dev/vitest
### [`v0.31.0`](https://togithub.com/vitest-dev/vitest/releases/tag/v0.31.0) [Compare Source](https://togithub.com/vitest-dev/vitest/compare/v0.30.1...v0.31.0) ##### 🚨 Breaking Changes - Update mock implementation to support ESM runtime, introduce "vi.hoisted" - by [@sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/3258](https://togithub.com/vitest-dev/vitest/issues/3258) [(0c09a)](https://togithub.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.mocked('./path/to/module.js', () => { return { originalMethod: mockedMethod } }) ``` - Move assertion declarations to expect package - by [@sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/3294](https://togithub.com/vitest-dev/vitest/issues/3294) [(cf3af)](https://togithub.com/vitest-dev/vitest/commit/cf3afe2b) - The change should be minor: ```diff - declare namespace Vi { + declare module '@vitest/expect' { interface AssertionConfiguration
📅 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.
This PR has been generated by Mend Renovate. View repository job log here.