Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
chore(deps): update vitest monorepo to v2.1.0 (#696)
This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/main/packages/coverage-v8#readme) ([source](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8)) | [`2.0.5` -> `2.1.0`](https://renovatebot.com/diffs/npm/@vitest%2fcoverage-v8/2.0.5/2.1.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@vitest%2fcoverage-v8/2.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vitest%2fcoverage-v8/2.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vitest%2fcoverage-v8/2.0.5/2.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vitest%2fcoverage-v8/2.0.5/2.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [vitest](https://github.com/vitest-dev/vitest) ([source](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest)) | [`2.0.5` -> `2.1.0`](https://renovatebot.com/diffs/npm/vitest/2.0.5/2.1.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/vitest/2.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vitest/2.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vitest/2.0.5/2.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vitest/2.0.5/2.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>vitest-dev/vitest (@​vitest/coverage-v8)</summary> ### [`v2.1.0`](https://github.com/vitest-dev/vitest/releases/tag/v2.1.0) [Compare Source](https://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(<Blog />) 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://github.com/vitest-dev/vitest-browser-vue), [vitest-browser-svelte ](https://github.com/vitest-dev/vitest-browser-svelte) or [vitest-browser-react](https://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://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6355](https://github.com/vitest-dev/vitest/issues/6355) [<samp>(874a1)</samp>](https://github.com/vitest-dev/vitest/commit/874a121e) - **browser**: - Move page.config to server.config, add more docs - by [@​sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6252](https://github.com/vitest-dev/vitest/issues/6252) [<samp>(af2b8)</samp>](https://github.com/vitest-dev/vitest/commit/af2b813c) - Make iframe scalable, improve documentation - by [@​sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6257](https://github.com/vitest-dev/vitest/issues/6257) [<samp>(74ca1)</samp>](https://github.com/vitest-dev/vitest/commit/74ca11a4) - Introduce built-in locators - by [@​sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6084](https://github.com/vitest-dev/vitest/issues/6084) [<samp>(3347f)</samp>](https://github.com/vitest-dev/vitest/commit/3347f83e) - Support v8 coverage - by [@​AriPerkkio](https://github.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/6273](https://github.com/vitest-dev/vitest/issues/6273) [<samp>(34199)</samp>](https://github.com/vitest-dev/vitest/commit/34199bdf) - Support `userEvent.upload` in playwright provider - by [@​sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6442](https://github.com/vitest-dev/vitest/issues/6442) [<samp>(cf148)</samp>](https://github.com/vitest-dev/vitest/commit/cf148645) - Support `--inspect` - by [@​AriPerkkio](https://github.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/6433](https://github.com/vitest-dev/vitest/issues/6433) [<samp>(0499a)</samp>](https://github.com/vitest-dev/vitest/commit/0499a315) - Support `--inspect-brk` - by [@​AriPerkkio](https://github.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/6434](https://github.com/vitest-dev/vitest/issues/6434) [<samp>(7ab0f)</samp>](https://github.com/vitest-dev/vitest/commit/7ab0f4a8) - **cli**: - Extend existing list command to output only a list of file names - by [@​Ma-hawaj](https://github.com/Ma-hawaj) and [@​sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6392](https://github.com/vitest-dev/vitest/issues/6392) [<samp>(008f0)</samp>](https://github.com/vitest-dev/vitest/commit/008f00b2) - **coverage**: - Add `--exclude-after-remap` - by [@​AriPerkkio](https://github.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/6309](https://github.com/vitest-dev/vitest/issues/6309) [<samp>(5932a)</samp>](https://github.com/vitest-dev/vitest/commit/5932a7f9) - **mocker**: - Introduce [@​vitest/mocker](https://github.com/vitest/mocker) package, allow `{ spy: true }` instead of a factory - by [@​sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6289](https://github.com/vitest-dev/vitest/issues/6289) [<samp>(95f02)</samp>](https://github.com/vitest-dev/vitest/commit/95f0203f) - **vitest**: - Add "provide" option - by [@​sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6253](https://github.com/vitest-dev/vitest/issues/6253) [<samp>(4409d)</samp>](https://github.com/vitest-dev/vitest/commit/4409d779) - Add return type and promisable mockFactory - by [@​syi0808](https://github.com/syi0808) and [@​sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6139](https://github.com/vitest-dev/vitest/issues/6139) [<samp>(f5e0b)</samp>](https://github.com/vitest-dev/vitest/commit/f5e0b987) - Add `vi.advanceTimersToNextFrame` - by [@​bnjm](https://github.com/bnjm) and [@​sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6347](https://github.com/vitest-dev/vitest/issues/6347) [<samp>(8ff63)</samp>](https://github.com/vitest-dev/vitest/commit/8ff63560) - Allow env to be stubbed to undefined - by [@​JSanchezIO](https://github.com/JSanchezIO) and [@​sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6359](https://github.com/vitest-dev/vitest/issues/6359) [<samp>(c3b27)</samp>](https://github.com/vitest-dev/vitest/commit/c3b2757c) ##### 🐞 Bug Fixes - Correctly resolve nested mocks with `index` file - by [@​sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6266](https://github.com/vitest-dev/vitest/issues/6266) [<samp>(081cf)</samp>](https://github.com/vitest-dev/vitest/commit/081cfe03) - Don't panic when coverage.reporter is a string - by [@​sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6267](https://github.com/vitest-dev/vitest/issues/6267) [<samp>(7b37d)</samp>](https://github.com/vitest-dev/vitest/commit/7b37d27b) - Align RawMatcherFn type definition with Jest - by [@​wheresrhys](https://github.com/wheresrhys) in [https://github.com/vitest-dev/vitest/issues/6351](https://github.com/vitest-dev/vitest/issues/6351) [<samp>(d09f0)</samp>](https://github.com/vitest-dev/vitest/commit/d09f00c7) - Cjs build of vite node server - by [@​AkaraChen](https://github.com/AkaraChen) in [https://github.com/vitest-dev/vitest/issues/6389](https://github.com/vitest-dev/vitest/issues/6389) [<samp>(12e70)</samp>](https://github.com/vitest-dev/vitest/commit/12e702bd) - Allow inlining vite's cached dependencies - by [@​chriswheeldon-peakon](https://github.com/chriswheeldon-peakon) in [https://github.com/vitest-dev/vitest/issues/6284](https://github.com/vitest-dev/vitest/issues/6284) [<samp>(03208)</samp>](https://github.com/vitest-dev/vitest/commit/03208017) - Print unexpected error message if peer dependencies have a different version - by [@​sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6446](https://github.com/vitest-dev/vitest/issues/6446) [<samp>(b992b)</samp>](https://github.com/vitest-dev/vitest/commit/b992b346) - Ignore importer when resolving Vitest - by [@​sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6469](https://github.com/vitest-dev/vitest/issues/6469) [<samp>(0b447)</samp>](https://github.com/vitest-dev/vitest/commit/0b447226) - `expect.getState().testPath` always returns correct path - by [@​sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6472](https://github.com/vitest-dev/vitest/issues/6472) [<samp>(ac698)</samp>](https://github.com/vitest-dev/vitest/commit/ac698b1c) - UserEvent works consistently between providers - by [@​sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6480](https://github.com/vitest-dev/vitest/issues/6480) [<samp>(0b4da)</samp>](https://github.com/vitest-dev/vitest/commit/0b4da69e) - **browser**: - Print correct stack trace for unhandled errors - by [@​sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6134](https://github.com/vitest-dev/vitest/issues/6134) [<samp>(1da6c)</samp>](https://github.com/vitest-dev/vitest/commit/1da6cebe) - Use documentElement as the root for selector - by [@​sheremet-va](https://github.com/sheremet-va) [<samp>(d8077)</samp>](https://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://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6296](https://github.com/vitest-dev/vitest/issues/6296) [<samp>(30dc5)</samp>](https://github.com/vitest-dev/vitest/commit/30dc5793) - Produce valid config file if preview provider is used - by [@​sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6305](https://github.com/vitest-dev/vitest/issues/6305) [<samp>(7f0ae)</samp>](https://github.com/vitest-dev/vitest/commit/7f0ae292) - Correctly run in-source tests in the browser - by [@​sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6440](https://github.com/vitest-dev/vitest/issues/6440) [<samp>(c8531)</samp>](https://github.com/vitest-dev/vitest/commit/c853126e) - Exclude missed packages from optimization, print help message - by [@​sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6445](https://github.com/vitest-dev/vitest/issues/6445) [<samp>(8d883)</samp>](https://github.com/vitest-dev/vitest/commit/8d883cf0) - Define mocker as a dependency - by [@​sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6476](https://github.com/vitest-dev/vitest/issues/6476) [<samp>(9560a)</samp>](https://github.com/vitest-dev/vitest/commit/9560ab7f) - **coverage**: - Warn if `vitest` and `@vitest/*` versions don't match - by [@​AriPerkkio](https://github.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/6317](https://github.com/vitest-dev/vitest/issues/6317) [<samp>(e662c)</samp>](https://github.com/vitest-dev/vitest/commit/e662c7b2) - V8 to support source maps with multiple sources - by [@​AriPerkkio](https://github.com/AriPerkkio) and [@​sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6120](https://github.com/vitest-dev/vitest/issues/6120) [<samp>(1f6cb)</samp>](https://github.com/vitest-dev/vitest/commit/1f6cb59f) - V8 to warn instead of crash when conversion fails - by [@​AriPerkkio](https://github.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/6318](https://github.com/vitest-dev/vitest/issues/6318) [<samp>(91dea)</samp>](https://github.com/vitest-dev/vitest/commit/91dea8c1) - Use project specific `vitenode` for uncovered files - by [@​AriPerkkio](https://github.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/6044](https://github.com/vitest-dev/vitest/issues/6044) [<samp>(da52d)</samp>](https://github.com/vitest-dev/vitest/commit/da52d23f) - **runner**: - Use `performance.now` instead of `Date.now` for duration - by [@​LuciNyan](https://github.com/LuciNyan) in [https://github.com/vitest-dev/vitest/issues/6382](https://github.com/vitest-dev/vitest/issues/6382) [<samp>(fe489)</samp>](https://github.com/vitest-dev/vitest/commit/fe489432) - Async assertion auto await should timeout - by [@​hi-ogawa](https://github.com/hi-ogawa) in [https://github.com/vitest-dev/vitest/issues/6391](https://github.com/vitest-dev/vitest/issues/6391) [<samp>(ad6e7)</samp>](https://github.com/vitest-dev/vitest/commit/ad6e72fc) - **snapshot**: - Reject multiple `toMatchInlineSnapshot` updates at the same location - by [@​hi-ogawa](https://github.com/hi-ogawa) in [https://github.com/vitest-dev/vitest/issues/6332](https://github.com/vitest-dev/vitest/issues/6332) [<samp>(1606f)</samp>](https://github.com/vitest-dev/vitest/commit/1606f34f) - Improve inline snapshot inside loop rejection - by [@​hi-ogawa](https://github.com/hi-ogawa) in [https://github.com/vitest-dev/vitest/issues/6339](https://github.com/vitest-dev/vitest/issues/6339) [<samp>(e0368)</samp>](https://github.com/vitest-dev/vitest/commit/e03683c5) - **typecheck**: - Run both runtime and typecheck tests if `typecheck.include` overlaps with `include` - by [@​sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6256](https://github.com/vitest-dev/vitest/issues/6256) [<samp>(153ff)</samp>](https://github.com/vitest-dev/vitest/commit/153ff01b) - **types**: - Allow Callbacks Passed to before\*/after\* to Return Anything - by [@​LuciNyan](https://github.com/LuciNyan) in [https://github.com/vitest-dev/vitest/issues/6393](https://github.com/vitest-dev/vitest/issues/6393) [<samp>(f6217)</samp>](https://github.com/vitest-dev/vitest/commit/f6217a22) - **ui**: - Remove "filters" flickering - by [@​sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6463](https://github.com/vitest-dev/vitest/issues/6463) [<samp>(0223b)</samp>](https://github.com/vitest-dev/vitest/commit/0223bb79) - Render project name consistently - by [@​sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6329](https://github.com/vitest-dev/vitest/issues/6329) [<samp>(94a18)</samp>](https://github.com/vitest-dev/vitest/commit/94a186ec) - **vite-node**: - Disable watcher if hmr is disabled - by [@​sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6251](https://github.com/vitest-dev/vitest/issues/6251) [<samp>(c51c6)</samp>](https://github.com/vitest-dev/vitest/commit/c51c67aa) - Fix watch on vite 6 - by [@​hi-ogawa](https://github.com/hi-ogawa) in [https://github.com/vitest-dev/vitest/issues/6422](https://github.com/vitest-dev/vitest/issues/6422) [<samp>(c3ac4)</samp>](https://github.com/vitest-dev/vitest/commit/c3ac43c1) - **vitest**: - Update json reporter output - by [@​Emiyaaaaa](https://github.com/Emiyaaaaa) in [https://github.com/vitest-dev/vitest/issues/6064](https://github.com/vitest-dev/vitest/issues/6064) [<samp>(c9979)</samp>](https://github.com/vitest-dev/vitest/commit/c997937b) - Add more type guards for --merge-reports - by [@​sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6307](https://github.com/vitest-dev/vitest/issues/6307) [<samp>(0a5d8)</samp>](https://github.com/vitest-dev/vitest/commit/0a5d8169) - Always resolve vitest to the root version - by [@​sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6369](https://github.com/vitest-dev/vitest/issues/6369) [<samp>(163d7)</samp>](https://github.com/vitest-dev/vitest/commit/163d7624) - Dispose vmForks listeners to avoid memory leak - by [@​sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6448](https://github.com/vitest-dev/vitest/issues/6448) [<samp>(2673c)</samp>](https://github.com/vitest-dev/vitest/commit/2673c3bb) - **workspace**: - Correctly resolve workspace globs and file paths - by [@​sheremet-va](https://github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6316](https://github.com/vitest-dev/vitest/issues/6316) [<samp>(afdcb)</samp>](https://github.com/vitest-dev/vitest/commit/afdcb8f2) ##### [View changes on GitHub](https://github.com/vitest-dev/vitest/compare/v2.0.5...v2.1.0) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, 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 was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/Johannes-Andersen/Johannes). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC43NC4xIiwidXBkYXRlZEluVmVyIjoiMzguNzQuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
- Loading branch information