vitest-dev/vitest (vitest)
### [`v2.1.0`](https://redirect.github.com/vitest-dev/vitest/releases/tag/v2.1.0)
[Compare Source](https://redirect.github.com/vitest-dev/vitest/compare/v2.0.5...v2.1.0)
This release makes another big change to the Browser Mode by introducing [locators API](https://vitest.dev/guide/browser/locators.html):
```ts
test('renders blog posts', async () => {
const screen = page.render()
await expect.element(screen.getByRole('heading', { name: 'Blog' })).toBeInTheDocument()
const [firstPost] = screen.getByRole('listitem').all()
await firstPost.getByRole('button', { name: 'Delete' }).click()
expect(screen.getByRole('listitem').all()).toHaveLength(3)
})
```
You can use either [vitest-browser-vue](https://redirect.github.com/vitest-dev/vitest-browser-vue), [vitest-browser-svelte ](https://redirect.github.com/vitest-dev/vitest-browser-svelte) or [vitest-browser-react](https://redirect.github.com/vitest-dev/vitest-browser-react) to render components and make assertions using locators. Locators are also available on the `page` object from `@vitest/browser/context`.
##### 🚀 Features
- **api**:
- Make spec into a class instead of a tuple - by [@sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6355](https://redirect.github.com/vitest-dev/vitest/issues/6355) [(874a1)](https://redirect.github.com/vitest-dev/vitest/commit/874a121e)
- **browser**:
- Move page.config to server.config, add more docs - by [@sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6252](https://redirect.github.com/vitest-dev/vitest/issues/6252) [(af2b8)](https://redirect.github.com/vitest-dev/vitest/commit/af2b813c)
- Make iframe scalable, improve documentation - by [@sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6257](https://redirect.github.com/vitest-dev/vitest/issues/6257) [(74ca1)](https://redirect.github.com/vitest-dev/vitest/commit/74ca11a4)
- Introduce built-in locators - by [@sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6084](https://redirect.github.com/vitest-dev/vitest/issues/6084) [(3347f)](https://redirect.github.com/vitest-dev/vitest/commit/3347f83e)
- Support v8 coverage - by [@AriPerkkio](https://redirect.github.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/6273](https://redirect.github.com/vitest-dev/vitest/issues/6273) [(34199)](https://redirect.github.com/vitest-dev/vitest/commit/34199bdf)
- Support `userEvent.upload` in playwright provider - by [@sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6442](https://redirect.github.com/vitest-dev/vitest/issues/6442) [(cf148)](https://redirect.github.com/vitest-dev/vitest/commit/cf148645)
- Support `--inspect` - by [@AriPerkkio](https://redirect.github.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/6433](https://redirect.github.com/vitest-dev/vitest/issues/6433) [(0499a)](https://redirect.github.com/vitest-dev/vitest/commit/0499a315)
- Support `--inspect-brk` - by [@AriPerkkio](https://redirect.github.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/6434](https://redirect.github.com/vitest-dev/vitest/issues/6434) [(7ab0f)](https://redirect.github.com/vitest-dev/vitest/commit/7ab0f4a8)
- **cli**:
- Extend existing list command to output only a list of file names - by [@Ma-hawaj](https://redirect.github.com/Ma-hawaj) and [@sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6392](https://redirect.github.com/vitest-dev/vitest/issues/6392) [(008f0)](https://redirect.github.com/vitest-dev/vitest/commit/008f00b2)
- **coverage**:
- Add `--exclude-after-remap` - by [@AriPerkkio](https://redirect.github.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/6309](https://redirect.github.com/vitest-dev/vitest/issues/6309) [(5932a)](https://redirect.github.com/vitest-dev/vitest/commit/5932a7f9)
- **mocker**:
- Introduce [@vitest/mocker](https://redirect.github.com/vitest/mocker) package, allow `{ spy: true }` instead of a factory - by [@sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6289](https://redirect.github.com/vitest-dev/vitest/issues/6289) [(95f02)](https://redirect.github.com/vitest-dev/vitest/commit/95f0203f)
- **vitest**:
- Add "provide" option - by [@sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6253](https://redirect.github.com/vitest-dev/vitest/issues/6253) [(4409d)](https://redirect.github.com/vitest-dev/vitest/commit/4409d779)
- Add return type and promisable mockFactory - by [@syi0808](https://redirect.github.com/syi0808) and [@sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6139](https://redirect.github.com/vitest-dev/vitest/issues/6139) [(f5e0b)](https://redirect.github.com/vitest-dev/vitest/commit/f5e0b987)
- Add `vi.advanceTimersToNextFrame` - by [@bnjm](https://redirect.github.com/bnjm) and [@sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6347](https://redirect.github.com/vitest-dev/vitest/issues/6347) [(8ff63)](https://redirect.github.com/vitest-dev/vitest/commit/8ff63560)
- Allow env to be stubbed to undefined - by [@JSanchezIO](https://redirect.github.com/JSanchezIO) and [@sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6359](https://redirect.github.com/vitest-dev/vitest/issues/6359) [(c3b27)](https://redirect.github.com/vitest-dev/vitest/commit/c3b2757c)
##### 🐞 Bug Fixes
- Correctly resolve nested mocks with `index` file - by [@sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6266](https://redirect.github.com/vitest-dev/vitest/issues/6266) [(081cf)](https://redirect.github.com/vitest-dev/vitest/commit/081cfe03)
- Don't panic when coverage.reporter is a string - by [@sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6267](https://redirect.github.com/vitest-dev/vitest/issues/6267) [(7b37d)](https://redirect.github.com/vitest-dev/vitest/commit/7b37d27b)
- Align RawMatcherFn type definition with Jest - by [@wheresrhys](https://redirect.github.com/wheresrhys) in [https://github.com/vitest-dev/vitest/issues/6351](https://redirect.github.com/vitest-dev/vitest/issues/6351) [(d09f0)](https://redirect.github.com/vitest-dev/vitest/commit/d09f00c7)
- Cjs build of vite node server - by [@AkaraChen](https://redirect.github.com/AkaraChen) in [https://github.com/vitest-dev/vitest/issues/6389](https://redirect.github.com/vitest-dev/vitest/issues/6389) [(12e70)](https://redirect.github.com/vitest-dev/vitest/commit/12e702bd)
- Allow inlining vite's cached dependencies - by [@chriswheeldon-peakon](https://redirect.github.com/chriswheeldon-peakon) in [https://github.com/vitest-dev/vitest/issues/6284](https://redirect.github.com/vitest-dev/vitest/issues/6284) [(03208)](https://redirect.github.com/vitest-dev/vitest/commit/03208017)
- Print unexpected error message if peer dependencies have a different version - by [@sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6446](https://redirect.github.com/vitest-dev/vitest/issues/6446) [(b992b)](https://redirect.github.com/vitest-dev/vitest/commit/b992b346)
- Ignore importer when resolving Vitest - by [@sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6469](https://redirect.github.com/vitest-dev/vitest/issues/6469) [(0b447)](https://redirect.github.com/vitest-dev/vitest/commit/0b447226)
- `expect.getState().testPath` always returns correct path - by [@sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6472](https://redirect.github.com/vitest-dev/vitest/issues/6472) [(ac698)](https://redirect.github.com/vitest-dev/vitest/commit/ac698b1c)
- UserEvent works consistently between providers - by [@sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6480](https://redirect.github.com/vitest-dev/vitest/issues/6480) [(0b4da)](https://redirect.github.com/vitest-dev/vitest/commit/0b4da69e)
- **browser**:
- Print correct stack trace for unhandled errors - by [@sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6134](https://redirect.github.com/vitest-dev/vitest/issues/6134) [(1da6c)](https://redirect.github.com/vitest-dev/vitest/commit/1da6cebe)
- Use documentElement as the root for selector - by [@sheremet-va](https://redirect.github.com/sheremet-va) [(d8077)](https://redirect.github.com/vitest-dev/vitest/commit/d807767f)
- Keep querying elements even if locator is created with elementLocator, add pubic @vitest/browser/utils - by [@sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6296](https://redirect.github.com/vitest-dev/vitest/issues/6296) [(30dc5)](https://redirect.github.com/vitest-dev/vitest/commit/30dc5793)
- Produce valid config file if preview provider is used - by [@sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6305](https://redirect.github.com/vitest-dev/vitest/issues/6305) [(7f0ae)](https://redirect.github.com/vitest-dev/vitest/commit/7f0ae292)
- Correctly run in-source tests in the browser - by [@sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6440](https://redirect.github.com/vitest-dev/vitest/issues/6440) [(c8531)](https://redirect.github.com/vitest-dev/vitest/commit/c853126e)
- Exclude missed packages from optimization, print help message - by [@sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6445](https://redirect.github.com/vitest-dev/vitest/issues/6445) [(8d883)](https://redirect.github.com/vitest-dev/vitest/commit/8d883cf0)
- Define mocker as a dependency - by [@sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6476](https://redirect.github.com/vitest-dev/vitest/issues/6476) [(9560a)](https://redirect.github.com/vitest-dev/vitest/commit/9560ab7f)
- **coverage**:
- Warn if `vitest` and `@vitest/*` versions don't match - by [@AriPerkkio](https://redirect.github.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/6317](https://redirect.github.com/vitest-dev/vitest/issues/6317) [(e662c)](https://redirect.github.com/vitest-dev/vitest/commit/e662c7b2)
- V8 to support source maps with multiple sources - by [@AriPerkkio](https://redirect.github.com/AriPerkkio) and [@sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6120](https://redirect.github.com/vitest-dev/vitest/issues/6120) [(1f6cb)](https://redirect.github.com/vitest-dev/vitest/commit/1f6cb59f)
- V8 to warn instead of crash when conversion fails - by [@AriPerkkio](https://redirect.github.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/6318](https://redirect.github.com/vitest-dev/vitest/issues/6318) [(91dea)](https://redirect.github.com/vitest-dev/vitest/commit/91dea8c1)
- Use project specific `vitenode` for uncovered files - by [@AriPerkkio](https://redirect.github.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/6044](https://redirect.github.com/vitest-dev/vitest/issues/6044) [(da52d)](https://redirect.github.com/vitest-dev/vitest/commit/da52d23f)
- **runner**:
- Use `performance.now` instead of `Date.now` for duration - by [@LuciNyan](https://redirect.github.com/LuciNyan) in [https://github.com/vitest-dev/vitest/issues/6382](https://redirect.github.com/vitest-dev/vitest/issues/6382) [(fe489)](https://redirect.github.com/vitest-dev/vitest/commit/fe489432)
- Async assertion auto await should timeout - by [@hi-ogawa](https://redirect.github.com/hi-ogawa) in [https://github.com/vitest-dev/vitest/issues/6391](https://redirect.github.com/vitest-dev/vitest/issues/6391) [(ad6e7)](https://redirect.github.com/vitest-dev/vitest/commit/ad6e72fc)
- **snapshot**:
- Reject multiple `toMatchInlineSnapshot` updates at the same location - by [@hi-ogawa](https://redirect.github.com/hi-ogawa) in [https://github.com/vitest-dev/vitest/issues/6332](https://redirect.github.com/vitest-dev/vitest/issues/6332) [(1606f)](https://redirect.github.com/vitest-dev/vitest/commit/1606f34f)
- Improve inline snapshot inside loop rejection - by [@hi-ogawa](https://redirect.github.com/hi-ogawa) in [https://github.com/vitest-dev/vitest/issues/6339](https://redirect.github.com/vitest-dev/vitest/issues/6339) [(e0368)](https://redirect.github.com/vitest-dev/vitest/commit/e03683c5)
- **typecheck**:
- Run both runtime and typecheck tests if `typecheck.include` overlaps with `include` - by [@sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6256](https://redirect.github.com/vitest-dev/vitest/issues/6256) [(153ff)](https://redirect.github.com/vitest-dev/vitest/commit/153ff01b)
- **types**:
- Allow Callbacks Passed to before\*/after\* to Return Anything - by [@LuciNyan](https://redirect.github.com/LuciNyan) in [https://github.com/vitest-dev/vitest/issues/6393](https://redirect.github.com/vitest-dev/vitest/issues/6393) [(f6217)](https://redirect.github.com/vitest-dev/vitest/commit/f6217a22)
- **ui**:
- Remove "filters" flickering - by [@sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6463](https://redirect.github.com/vitest-dev/vitest/issues/6463) [(0223b)](https://redirect.github.com/vitest-dev/vitest/commit/0223bb79)
- Render project name consistently - by [@sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6329](https://redirect.github.com/vitest-dev/vitest/issues/6329) [(94a18)](https://redirect.github.com/vitest-dev/vitest/commit/94a186ec)
- **vite-node**:
- Disable watcher if hmr is disabled - by [@sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6251](https://redirect.github.com/vitest-dev/vitest/issues/6251) [(c51c6)](https://redirect.github.com/vitest-dev/vitest/commit/c51c67aa)
- Fix watch on vite 6 - by [@hi-ogawa](https://redirect.github.com/hi-ogawa) in [https://github.com/vitest-dev/vitest/issues/6422](https://redirect.github.com/vitest-dev/vitest/issues/6422) [(c3ac4)](https://redirect.github.com/vitest-dev/vitest/commit/c3ac43c1)
- **vitest**:
- Update json reporter output - by [@Emiyaaaaa](https://redirect.github.com/Emiyaaaaa) in [https://github.com/vitest-dev/vitest/issues/6064](https://redirect.github.com/vitest-dev/vitest/issues/6064) [(c9979)](https://redirect.github.com/vitest-dev/vitest/commit/c997937b)
- Add more type guards for --merge-reports - by [@sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6307](https://redirect.github.com/vitest-dev/vitest/issues/6307) [(0a5d8)](https://redirect.github.com/vitest-dev/vitest/commit/0a5d8169)
- Always resolve vitest to the root version - by [@sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6369](https://redirect.github.com/vitest-dev/vitest/issues/6369) [(163d7)](https://redirect.github.com/vitest-dev/vitest/commit/163d7624)
- Dispose vmForks listeners to avoid memory leak - by [@sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6448](https://redirect.github.com/vitest-dev/vitest/issues/6448) [(2673c)](https://redirect.github.com/vitest-dev/vitest/commit/2673c3bb)
- **workspace**:
- Correctly resolve workspace globs and file paths - by [@sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6316](https://redirect.github.com/vitest-dev/vitest/issues/6316) [(afdcb)](https://redirect.github.com/vitest-dev/vitest/commit/afdcb8f2)
##### [View changes on GitHub](https://redirect.github.com/vitest-dev/vitest/compare/v2.0.5...v2.1.0)
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.
[ ] If you want to rebase/retry this PR, check this box
This PR contains the following updates:
^2.0.5
->^2.1.0
Release Notes
vitest-dev/vitest (vitest)
### [`v2.1.0`](https://redirect.github.com/vitest-dev/vitest/releases/tag/v2.1.0) [Compare Source](https://redirect.github.com/vitest-dev/vitest/compare/v2.0.5...v2.1.0) This release makes another big change to the Browser Mode by introducing [locators API](https://vitest.dev/guide/browser/locators.html): ```ts test('renders blog posts', async () => { const screen = page.render(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.
This PR was generated by Mend Renovate. View the repository job log.