-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
feat: add typechecking functionality #2107
Conversation
faf4081
to
1a183f6
Compare
ffd1377
to
2b5d9cc
Compare
@mmkal hello 👋🏻 I don't know if you saw our proposal about using We are thinking about inlining you package entirely to have more control over error messages and such. Do you think, you can merge mmkal/expect-type#13 for at least partial support? And maybe you can also review documentation, I mentioned error messages there. Thank you 😄 |
I'll try to take another look this weekend, there is another open PR which is also an attempt to improve error messages. Is there a particular docs file you'd like me to look at here in the meantime? There are 50+ changed 😬 |
This file: docs/guide/testing-types.md Particularly "Reading Errors" section. 😄 |
[![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://togithub.com/vitest-dev/vitest) | [`0.24.5` -> `0.25.1`](https://renovatebot.com/diffs/npm/vitest/0.24.5/0.25.1) | [![age](https://badges.renovateapi.com/packages/npm/vitest/0.25.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/vitest/0.25.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/vitest/0.25.1/compatibility-slim/0.24.5)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/vitest/0.25.1/confidence-slim/0.24.5)](https://docs.renovatebot.com/merge-confidence/) | | [vitest](https://togithub.com/vitest-dev/vitest) | [`0.24.3` -> `0.25.1`](https://renovatebot.com/diffs/npm/vitest/0.24.3/0.25.1) | [![age](https://badges.renovateapi.com/packages/npm/vitest/0.25.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/vitest/0.25.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/vitest/0.25.1/compatibility-slim/0.24.3)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/vitest/0.25.1/confidence-slim/0.24.3)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>vitest-dev/vitest</summary> ### [`v0.25.1`](https://togithub.com/vitest-dev/vitest/releases/tag/v0.25.1) [Compare Source](https://togithub.com/vitest-dev/vitest/compare/v0.25.0...v0.25.1) ##### 🚀 Features - Add `vi.setConfig` helper - by [@​sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2293](https://togithub.com/vitest-dev/vitest/issues/2293) - Allow hooks to be executed in a stack or list - by [@​sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2294](https://togithub.com/vitest-dev/vitest/issues/2294) ##### 🐞 Bug Fixes - Always rewrite defined jsdom keys - by [@​sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2290](https://togithub.com/vitest-dev/vitest/issues/2290) - Default reporter regression - by [@​antfu](https://togithub.com/antfu) in [https://github.com/vitest-dev/vitest/issues/2292](https://togithub.com/vitest-dev/vitest/issues/2292) - Don't fail `bench` when using options - by [@​poyoho](https://togithub.com/poyoho) in [https://github.com/vitest-dev/vitest/issues/2295](https://togithub.com/vitest-dev/vitest/issues/2295) ##### [View changes on GitHub](https://togithub.com/vitest-dev/vitest/compare/v0.25.0...v0.25.1) ### [`v0.25.0`](https://togithub.com/vitest-dev/vitest/releases/tag/v0.25.0) [Compare Source](https://togithub.com/vitest-dev/vitest/compare/v0.24.5...v0.25.0) ##### ✅ Builtin TypeChecking In v0.25.0, Vitest allows you to write tests for your types, using `expectTypeOf` or `assertType` syntaxes. By default all tests inside `*.test-d.ts` files are considered type tests. Run `vitest typecheck` to run type tests. ```ts // my.test-d.ts import { assertType, expectTypeOf } from 'vitest' import { mount } from './mount.js' test('my types work properly', () => { expectTypeOf(mount).toBeFunction() expectTypeOf(mount).parameter(0).toMatchTypeOf<{ name: string }>() // @​ts-expect-error name is a string assertType(mount({ name: 42 })) }) ``` Learn more at [the documentation](https://vitest.dev/guide/testing-types.html) and this [RFC](https://togithub.com/vitest-dev/vitest/issues/1954) ##### 🚨 Breaking Changes - Return context in `startVitest()` - by [@​antfu](https://togithub.com/antfu) in [https://github.com/vitest-dev/vitest/issues/2072](https://togithub.com/vitest-dev/vitest/issues/2072) ##### 🚀 Features - `onTestFailed` hook - by [@​antfu](https://togithub.com/antfu) in [https://github.com/vitest-dev/vitest/issues/2210](https://togithub.com/vitest-dev/vitest/issues/2210) - Display error frame if present (like Vite) - by [@​haikyuu](https://togithub.com/haikyuu) and [@​sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2257](https://togithub.com/vitest-dev/vitest/issues/2257) - Benchmark table report - by [@​poyoho](https://togithub.com/poyoho) in [https://github.com/vitest-dev/vitest/issues/2179](https://togithub.com/vitest-dev/vitest/issues/2179) - Add typechecking functionality - by [@​sheremet-va](https://togithub.com/sheremet-va) and [@​antfu](https://togithub.com/antfu) in [https://github.com/vitest-dev/vitest/issues/2107](https://togithub.com/vitest-dev/vitest/issues/2107) ##### 🐞 Bug Fixes - Clear full screen only in watch mode - by [@​sheremet-va](https://togithub.com/sheremet-va) [<samp>(c3d89)</samp>](https://togithub.com/vitest-dev/vitest/commit/c3d89504) - Don't serialize symbols and immutables - by [@​sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2266](https://togithub.com/vitest-dev/vitest/issues/2266) - Use --conditions instead of -C - by [@​sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2267](https://togithub.com/vitest-dev/vitest/issues/2267) - Show correct stack trace in errors and console - by [@​sheremet-va](https://togithub.com/sheremet-va) and [@​antfu](https://togithub.com/antfu) in [https://github.com/vitest-dev/vitest/issues/2248](https://togithub.com/vitest-dev/vitest/issues/2248) - Align `.each` behavior with jest - by [@​bartoszgolebiowski](https://togithub.com/bartoszgolebiowski) and [@​antfu](https://togithub.com/antfu) in [https://github.com/vitest-dev/vitest/issues/2064](https://togithub.com/vitest-dev/vitest/issues/2064) - Remove undefined values in options - by [@​g4rry420](https://togithub.com/g4rry420) and [@​antfu](https://togithub.com/antfu) in [https://github.com/vitest-dev/vitest/issues/2281](https://togithub.com/vitest-dev/vitest/issues/2281) - **coverage**: Istanbul provider to preserve implicit else - by [@​AriPerkkio](https://togithub.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/2275](https://togithub.com/vitest-dev/vitest/issues/2275) ##### [View changes on GitHub](https://togithub.com/vitest-dev/vitest/compare/v0.24.5...v0.25.0) </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/fwouts/previewjs). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4xOS4wIiwidXBkYXRlZEluVmVyIjoiMzQuMTkuMCJ9--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
[![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://togithub.com/vitest-dev/vitest) | [`0.24.3` -> `0.25.1`](https://renovatebot.com/diffs/npm/vitest/0.24.3/0.25.1) | [![age](https://badges.renovateapi.com/packages/npm/vitest/0.25.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/vitest/0.25.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/vitest/0.25.1/compatibility-slim/0.24.3)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/vitest/0.25.1/confidence-slim/0.24.3)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>vitest-dev/vitest</summary> ### [`v0.25.1`](https://togithub.com/vitest-dev/vitest/releases/tag/v0.25.1) [Compare Source](https://togithub.com/vitest-dev/vitest/compare/v0.25.0...v0.25.1) ##### 🚀 Features - Add `vi.setConfig` helper - by [@​sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2293](https://togithub.com/vitest-dev/vitest/issues/2293) - Allow hooks to be executed in a stack or list - by [@​sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2294](https://togithub.com/vitest-dev/vitest/issues/2294) ##### 🐞 Bug Fixes - Always rewrite defined jsdom keys - by [@​sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2290](https://togithub.com/vitest-dev/vitest/issues/2290) - Default reporter regression - by [@​antfu](https://togithub.com/antfu) in [https://github.com/vitest-dev/vitest/issues/2292](https://togithub.com/vitest-dev/vitest/issues/2292) - Don't fail `bench` when using options - by [@​poyoho](https://togithub.com/poyoho) in [https://github.com/vitest-dev/vitest/issues/2295](https://togithub.com/vitest-dev/vitest/issues/2295) ##### [View changes on GitHub](https://togithub.com/vitest-dev/vitest/compare/v0.25.0...v0.25.1) ### [`v0.25.0`](https://togithub.com/vitest-dev/vitest/releases/tag/v0.25.0) [Compare Source](https://togithub.com/vitest-dev/vitest/compare/v0.24.5...v0.25.0) ##### ✅ Builtin TypeChecking In v0.25.0, Vitest allows you to write tests for your types, using `expectTypeOf` or `assertType` syntaxes. By default all tests inside `*.test-d.ts` files are considered type tests. Run `vitest typecheck` to run type tests. ```ts // my.test-d.ts import { assertType, expectTypeOf } from 'vitest' import { mount } from './mount.js' test('my types work properly', () => { expectTypeOf(mount).toBeFunction() expectTypeOf(mount).parameter(0).toMatchTypeOf<{ name: string }>() // @​ts-expect-error name is a string assertType(mount({ name: 42 })) }) ``` Learn more at [the documentation](https://vitest.dev/guide/testing-types.html) and this [RFC](https://togithub.com/vitest-dev/vitest/issues/1954) ##### 🚨 Breaking Changes - Return context in `startVitest()` - by [@​antfu](https://togithub.com/antfu) in [https://github.com/vitest-dev/vitest/issues/2072](https://togithub.com/vitest-dev/vitest/issues/2072) ##### 🚀 Features - `onTestFailed` hook - by [@​antfu](https://togithub.com/antfu) in [https://github.com/vitest-dev/vitest/issues/2210](https://togithub.com/vitest-dev/vitest/issues/2210) - Display error frame if present (like Vite) - by [@​haikyuu](https://togithub.com/haikyuu) and [@​sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2257](https://togithub.com/vitest-dev/vitest/issues/2257) - Benchmark table report - by [@​poyoho](https://togithub.com/poyoho) in [https://github.com/vitest-dev/vitest/issues/2179](https://togithub.com/vitest-dev/vitest/issues/2179) - Add typechecking functionality - by [@​sheremet-va](https://togithub.com/sheremet-va) and [@​antfu](https://togithub.com/antfu) in [https://github.com/vitest-dev/vitest/issues/2107](https://togithub.com/vitest-dev/vitest/issues/2107) ##### 🐞 Bug Fixes - Clear full screen only in watch mode - by [@​sheremet-va](https://togithub.com/sheremet-va) [<samp>(c3d89)</samp>](https://togithub.com/vitest-dev/vitest/commit/c3d89504) - Don't serialize symbols and immutables - by [@​sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2266](https://togithub.com/vitest-dev/vitest/issues/2266) - Use --conditions instead of -C - by [@​sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2267](https://togithub.com/vitest-dev/vitest/issues/2267) - Show correct stack trace in errors and console - by [@​sheremet-va](https://togithub.com/sheremet-va) and [@​antfu](https://togithub.com/antfu) in [https://github.com/vitest-dev/vitest/issues/2248](https://togithub.com/vitest-dev/vitest/issues/2248) - Align `.each` behavior with jest - by [@​bartoszgolebiowski](https://togithub.com/bartoszgolebiowski) and [@​antfu](https://togithub.com/antfu) in [https://github.com/vitest-dev/vitest/issues/2064](https://togithub.com/vitest-dev/vitest/issues/2064) - Remove undefined values in options - by [@​g4rry420](https://togithub.com/g4rry420) and [@​antfu](https://togithub.com/antfu) in [https://github.com/vitest-dev/vitest/issues/2281](https://togithub.com/vitest-dev/vitest/issues/2281) - **coverage**: Istanbul provider to preserve implicit else - by [@​AriPerkkio](https://togithub.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/2275](https://togithub.com/vitest-dev/vitest/issues/2275) ##### [View changes on GitHub](https://togithub.com/vitest-dev/vitest/compare/v0.24.5...v0.25.0) ### [`v0.24.5`](https://togithub.com/vitest-dev/vitest/releases/tag/v0.24.5) [Compare Source](https://togithub.com/vitest-dev/vitest/compare/v0.24.4...v0.24.5) ##### 🚀 Features - **vite-node**: Trigger beforeFullReload / beforePrune / invalidate hook - by [@​ycmjason](https://togithub.com/ycmjason) in [https://github.com/vitest-dev/vitest/issues/2079](https://togithub.com/vitest-dev/vitest/issues/2079) ##### 🐞 Bug Fixes - Respect folders with dot at the start, when mocking - by [@​sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2244](https://togithub.com/vitest-dev/vitest/issues/2244) - Prevent using mocks in rpc - by [@​sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2254](https://togithub.com/vitest-dev/vitest/issues/2254) - Show actual unhandled errors, serialize DOMErrors - by [@​sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2253](https://togithub.com/vitest-dev/vitest/issues/2253) - Load deps reporter - by [@​poyoho](https://togithub.com/poyoho) in [https://github.com/vitest-dev/vitest/issues/2249](https://togithub.com/vitest-dev/vitest/issues/2249) ##### [View changes on GitHub](https://togithub.com/vitest-dev/vitest/compare/v0.24.4...v0.24.5) ### [`v0.24.4`](https://togithub.com/vitest-dev/vitest/releases/tag/v0.24.4) [Compare Source](https://togithub.com/vitest-dev/vitest/compare/v0.24.3...v0.24.4) ##### 🚀 Features - **vite-node**: Don't exit on uncaughtException in watch mode - by [@​poyoho](https://togithub.com/poyoho) in [https://github.com/vitest-dev/vitest/issues/2186](https://togithub.com/vitest-dev/vitest/issues/2186) ##### 🐞 Bug Fixes - Add/Update `repository` properties in `package.json` - by [@​silverwind](https://togithub.com/silverwind) in [https://github.com/vitest-dev/vitest/issues/2151](https://togithub.com/vitest-dev/vitest/issues/2151) - Ignore benchmark.reporters in getSerializableConfig - by [@​kainstar](https://togithub.com/kainstar) in [https://github.com/vitest-dev/vitest/issues/2164](https://togithub.com/vitest-dev/vitest/issues/2164) - Improve config's default exclude - by [@​haikyuu](https://togithub.com/haikyuu) and [@​sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2188](https://togithub.com/vitest-dev/vitest/issues/2188) - Always use node condition - by [@​sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/1919](https://togithub.com/vitest-dev/vitest/issues/1919) - Clear terminal output before running tests, show errors in correct order - by [@​sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2228](https://togithub.com/vitest-dev/vitest/issues/2228) - Improve compatibility with native Node CJS resolution - by [@​sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2226](https://togithub.com/vitest-dev/vitest/issues/2226) - Don't use resolved paths if they don't actually exist - by [@​simon-abbott](https://togithub.com/simon-abbott) in [https://github.com/vitest-dev/vitest/issues/1868](https://togithub.com/vitest-dev/vitest/issues/1868) - **cli**: - Set inputNamePattern to RegExp source instead of string - by [@​rafedramzi](https://togithub.com/rafedramzi) in [https://github.com/vitest-dev/vitest/issues/2201](https://togithub.com/vitest-dev/vitest/issues/2201) - Normalize argument path - by [@​poyoho](https://togithub.com/poyoho) in [https://github.com/vitest-dev/vitest/issues/2180](https://togithub.com/vitest-dev/vitest/issues/2180) - **coverage**: - Trim URL parameters from file paths in istanbul coverage - by [@​AriPerkkio](https://togithub.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/2232](https://togithub.com/vitest-dev/vitest/issues/2232) - Trim URL parameters from file paths in c8 coverage - by [@​OrestHk](https://togithub.com/OrestHk) and [@​sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2181](https://togithub.com/vitest-dev/vitest/issues/2181) - **reporter**: - Load custom reporter using `executeFile` - by [@​poyoho](https://togithub.com/poyoho) in [https://github.com/vitest-dev/vitest/issues/2184](https://togithub.com/vitest-dev/vitest/issues/2184) - **vitest**: - Return detailed error when using toHaveReturnedWith - by [@​azaleta](https://togithub.com/azaleta) in [https://github.com/vitest-dev/vitest/issues/2163](https://togithub.com/vitest-dev/vitest/issues/2163) ##### [View changes on GitHub](https://togithub.com/vitest-dev/vitest/compare/v0.24.3...v0.24.4) </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:eyJjcmVhdGVkSW5WZXIiOiIzNC4xOS4wIiwidXBkYXRlZEluVmVyIjoiMzQuMTkuMCJ9--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
[![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://togithub.com/vitest-dev/vitest) | [`0.24.3` -> `0.25.3`](https://renovatebot.com/diffs/npm/@vitest%2fcoverage-c8/0.24.3/0.25.3) | [![age](https://badges.renovateapi.com/packages/npm/@vitest%2fcoverage-c8/0.25.3/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/@vitest%2fcoverage-c8/0.25.3/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/@vitest%2fcoverage-c8/0.25.3/compatibility-slim/0.24.3)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/@vitest%2fcoverage-c8/0.25.3/confidence-slim/0.24.3)](https://docs.renovatebot.com/merge-confidence/) | | [vitest](https://togithub.com/vitest-dev/vitest) | [`0.24.3` -> `0.25.3`](https://renovatebot.com/diffs/npm/vitest/0.24.3/0.25.3) | [![age](https://badges.renovateapi.com/packages/npm/vitest/0.25.3/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/vitest/0.25.3/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/vitest/0.25.3/compatibility-slim/0.24.3)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/vitest/0.25.3/confidence-slim/0.24.3)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>vitest-dev/vitest</summary> ### [`v0.25.3`](https://togithub.com/vitest-dev/vitest/releases/tag/v0.25.3) [Compare Source](https://togithub.com/vitest-dev/vitest/compare/v0.25.2...v0.25.3) ##### 🚀 Features - Test.each support string template - by [@​poyoho](https://togithub.com/poyoho) in [https://github.com/vitest-dev/vitest/issues/2337](https://togithub.com/vitest-dev/vitest/issues/2337) [<samp>(f7897)</samp>](https://togithub.com/vitest-dev/vitest/commit/f7897765) ##### 🐞 Bug Fixes - Junit consistently puts "skipped" inside "testcase" - by [@​sheremet-va](https://togithub.com/sheremet-va) [<samp>(f7b27)</samp>](https://togithub.com/vitest-dev/vitest/commit/f7b27af0) - Detect tests in folders starting with `.` - by [@​sidharthv96](https://togithub.com/sidharthv96) in [https://github.com/vitest-dev/vitest/issues/2344](https://togithub.com/vitest-dev/vitest/issues/2344) and [https://github.com/vitest-dev/vitest/issues/2359](https://togithub.com/vitest-dev/vitest/issues/2359) [<samp>(c3951)</samp>](https://togithub.com/vitest-dev/vitest/commit/c395177f) - **cli**: Don't override config by setting cli options to undefined - by [@​rmehner](https://togithub.com/rmehner) in [https://github.com/vitest-dev/vitest/issues/2330](https://togithub.com/vitest-dev/vitest/issues/2330) [<samp>(6ce3e)</samp>](https://togithub.com/vitest-dev/vitest/commit/6ce3ed7f) - **coverage**: Env-replacer to add filenames into sourcemaps - by [@​AriPerkkio](https://togithub.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/2338](https://togithub.com/vitest-dev/vitest/issues/2338) [<samp>(a2e9d)</samp>](https://togithub.com/vitest-dev/vitest/commit/a2e9daf6) - **mocker**: Clear automocked modules on unmock - by [@​mcous](https://togithub.com/mcous) in [https://github.com/vitest-dev/vitest/issues/2353](https://togithub.com/vitest-dev/vitest/issues/2353) [<samp>(60918)</samp>](https://togithub.com/vitest-dev/vitest/commit/609185bd) ##### [View changes on GitHub](https://togithub.com/vitest-dev/vitest/compare/v0.25.2...v0.25.3) ### [`v0.25.2`](https://togithub.com/vitest-dev/vitest/releases/tag/v0.25.2) [Compare Source](https://togithub.com/vitest-dev/vitest/compare/v0.25.1...v0.25.2) ##### 🐞 Bug Fixes - Dates are equal, if both are invalid - by [@​sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2326](https://togithub.com/vitest-dev/vitest/issues/2326) - Don't ignore properties, when put on a default function in CJS context - by [@​sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2325](https://togithub.com/vitest-dev/vitest/issues/2325) ##### [View changes on GitHub](https://togithub.com/vitest-dev/vitest/compare/v0.25.1...v0.25.2) ### [`v0.25.1`](https://togithub.com/vitest-dev/vitest/releases/tag/v0.25.1) [Compare Source](https://togithub.com/vitest-dev/vitest/compare/v0.25.0...v0.25.1) ##### 🚀 Features - Add `vi.setConfig` helper - by [@​sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2293](https://togithub.com/vitest-dev/vitest/issues/2293) - Allow hooks to be executed in a stack or list - by [@​sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2294](https://togithub.com/vitest-dev/vitest/issues/2294) ##### 🐞 Bug Fixes - Always rewrite defined jsdom keys - by [@​sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2290](https://togithub.com/vitest-dev/vitest/issues/2290) - Default reporter regression - by [@​antfu](https://togithub.com/antfu) in [https://github.com/vitest-dev/vitest/issues/2292](https://togithub.com/vitest-dev/vitest/issues/2292) - Don't fail `bench` when using options - by [@​poyoho](https://togithub.com/poyoho) in [https://github.com/vitest-dev/vitest/issues/2295](https://togithub.com/vitest-dev/vitest/issues/2295) ##### [View changes on GitHub](https://togithub.com/vitest-dev/vitest/compare/v0.25.0...v0.25.1) ### [`v0.25.0`](https://togithub.com/vitest-dev/vitest/releases/tag/v0.25.0) [Compare Source](https://togithub.com/vitest-dev/vitest/compare/v0.24.5...v0.25.0) ##### ✅ Builtin TypeChecking In v0.25.0, Vitest allows you to write tests for your types, using `expectTypeOf` or `assertType` syntaxes. By default all tests inside `*.test-d.ts` files are considered type tests. Run `vitest typecheck` to run type tests. ```ts // my.test-d.ts import { assertType, expectTypeOf } from 'vitest' import { mount } from './mount.js' test('my types work properly', () => { expectTypeOf(mount).toBeFunction() expectTypeOf(mount).parameter(0).toMatchTypeOf<{ name: string }>() // @​ts-expect-error name is a string assertType(mount({ name: 42 })) }) ``` Learn more at [the documentation](https://vitest.dev/guide/testing-types.html) and this [RFC](https://togithub.com/vitest-dev/vitest/issues/1954) ##### 🚨 Breaking Changes - Return context in `startVitest()` - by [@​antfu](https://togithub.com/antfu) in [https://github.com/vitest-dev/vitest/issues/2072](https://togithub.com/vitest-dev/vitest/issues/2072) ##### 🚀 Features - `onTestFailed` hook - by [@​antfu](https://togithub.com/antfu) in [https://github.com/vitest-dev/vitest/issues/2210](https://togithub.com/vitest-dev/vitest/issues/2210) - Display error frame if present (like Vite) - by [@​haikyuu](https://togithub.com/haikyuu) and [@​sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2257](https://togithub.com/vitest-dev/vitest/issues/2257) - Benchmark table report - by [@​poyoho](https://togithub.com/poyoho) in [https://github.com/vitest-dev/vitest/issues/2179](https://togithub.com/vitest-dev/vitest/issues/2179) - Add typechecking functionality - by [@​sheremet-va](https://togithub.com/sheremet-va) and [@​antfu](https://togithub.com/antfu) in [https://github.com/vitest-dev/vitest/issues/2107](https://togithub.com/vitest-dev/vitest/issues/2107) ##### 🐞 Bug Fixes - Clear full screen only in watch mode - by [@​sheremet-va](https://togithub.com/sheremet-va) [<samp>(c3d89)</samp>](https://togithub.com/vitest-dev/vitest/commit/c3d89504) - Don't serialize symbols and immutables - by [@​sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2266](https://togithub.com/vitest-dev/vitest/issues/2266) - Use --conditions instead of -C - by [@​sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2267](https://togithub.com/vitest-dev/vitest/issues/2267) - Show correct stack trace in errors and console - by [@​sheremet-va](https://togithub.com/sheremet-va) and [@​antfu](https://togithub.com/antfu) in [https://github.com/vitest-dev/vitest/issues/2248](https://togithub.com/vitest-dev/vitest/issues/2248) - Align `.each` behavior with jest - by [@​bartoszgolebiowski](https://togithub.com/bartoszgolebiowski) and [@​antfu](https://togithub.com/antfu) in [https://github.com/vitest-dev/vitest/issues/2064](https://togithub.com/vitest-dev/vitest/issues/2064) - Remove undefined values in options - by [@​g4rry420](https://togithub.com/g4rry420) and [@​antfu](https://togithub.com/antfu) in [https://github.com/vitest-dev/vitest/issues/2281](https://togithub.com/vitest-dev/vitest/issues/2281) - **coverage**: Istanbul provider to preserve implicit else - by [@​AriPerkkio](https://togithub.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/2275](https://togithub.com/vitest-dev/vitest/issues/2275) ##### [View changes on GitHub](https://togithub.com/vitest-dev/vitest/compare/v0.24.5...v0.25.0) ### [`v0.24.5`](https://togithub.com/vitest-dev/vitest/releases/tag/v0.24.5) [Compare Source](https://togithub.com/vitest-dev/vitest/compare/v0.24.4...v0.24.5) ##### 🚀 Features - **vite-node**: Trigger beforeFullReload / beforePrune / invalidate hook - by [@​ycmjason](https://togithub.com/ycmjason) in [https://github.com/vitest-dev/vitest/issues/2079](https://togithub.com/vitest-dev/vitest/issues/2079) ##### 🐞 Bug Fixes - Respect folders with dot at the start, when mocking - by [@​sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2244](https://togithub.com/vitest-dev/vitest/issues/2244) - Prevent using mocks in rpc - by [@​sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2254](https://togithub.com/vitest-dev/vitest/issues/2254) - Show actual unhandled errors, serialize DOMErrors - by [@​sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2253](https://togithub.com/vitest-dev/vitest/issues/2253) - Load deps reporter - by [@​poyoho](https://togithub.com/poyoho) in [https://github.com/vitest-dev/vitest/issues/2249](https://togithub.com/vitest-dev/vitest/issues/2249) ##### [View changes on GitHub](https://togithub.com/vitest-dev/vitest/compare/v0.24.4...v0.24.5) ### [`v0.24.4`](https://togithub.com/vitest-dev/vitest/releases/tag/v0.24.4) [Compare Source](https://togithub.com/vitest-dev/vitest/compare/v0.24.3...v0.24.4) ##### 🚀 Features - **vite-node**: Don't exit on uncaughtException in watch mode - by [@​poyoho](https://togithub.com/poyoho) in [https://github.com/vitest-dev/vitest/issues/2186](https://togithub.com/vitest-dev/vitest/issues/2186) ##### 🐞 Bug Fixes - Add/Update `repository` properties in `package.json` - by [@​silverwind](https://togithub.com/silverwind) in [https://github.com/vitest-dev/vitest/issues/2151](https://togithub.com/vitest-dev/vitest/issues/2151) - Ignore benchmark.reporters in getSerializableConfig - by [@​kainstar](https://togithub.com/kainstar) in [https://github.com/vitest-dev/vitest/issues/2164](https://togithub.com/vitest-dev/vitest/issues/2164) - Improve config's default exclude - by [@​haikyuu](https://togithub.com/haikyuu) and [@​sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2188](https://togithub.com/vitest-dev/vitest/issues/2188) - Always use node condition - by [@​sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/1919](https://togithub.com/vitest-dev/vitest/issues/1919) - Clear terminal output before running tests, show errors in correct order - by [@​sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2228](https://togithub.com/vitest-dev/vitest/issues/2228) - Improve compatibility with native Node CJS resolution - by [@​sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2226](https://togithub.com/vitest-dev/vitest/issues/2226) - Don't use resolved paths if they don't actually exist - by [@​simon-abbott](https://togithub.com/simon-abbott) in [https://github.com/vitest-dev/vitest/issues/1868](https://togithub.com/vitest-dev/vitest/issues/1868) - **cli**: - Set inputNamePattern to RegExp source instead of string - by [@​rafedramzi](https://togithub.com/rafedramzi) in [https://github.com/vitest-dev/vitest/issues/2201](https://togithub.com/vitest-dev/vitest/issues/2201) - Normalize argument path - by [@​poyoho](https://togithub.com/poyoho) in [https://github.com/vitest-dev/vitest/issues/2180](https://togithub.com/vitest-dev/vitest/issues/2180) - **coverage**: - Trim URL parameters from file paths in istanbul coverage - by [@​AriPerkkio](https://togithub.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/2232](https://togithub.com/vitest-dev/vitest/issues/2232) - Trim URL parameters from file paths in c8 coverage - by [@​OrestHk](https://togithub.com/OrestHk) and [@​sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2181](https://togithub.com/vitest-dev/vitest/issues/2181) - **reporter**: - Load custom reporter using `executeFile` - by [@​poyoho](https://togithub.com/poyoho) in [https://github.com/vitest-dev/vitest/issues/2184](https://togithub.com/vitest-dev/vitest/issues/2184) - **vitest**: - Return detailed error when using toHaveReturnedWith - by [@​azaleta](https://togithub.com/azaleta) in [https://github.com/vitest-dev/vitest/issues/2163](https://togithub.com/vitest-dev/vitest/issues/2163) ##### [View changes on GitHub](https://togithub.com/vitest-dev/vitest/compare/v0.24.3...v0.24.4) </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 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/andipaetzold/react-firehooks). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC45LjIiLCJ1cGRhdGVkSW5WZXIiOiIzNC4zMC4yIn0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Currently implemented running typechecking and showing errors. Exports
expectTypeOf
.expect
is inSupport shortcutsinclude
)vitest typecheck
even, if there are no potential tests (vitest still shows source errors)@ts-check
Closes #1954