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

feat: add typechecking functionality #2107

Merged
merged 38 commits into from
Nov 7, 2022
Merged

feat: add typechecking functionality #2107

merged 38 commits into from
Nov 7, 2022

Conversation

sheremet-va
Copy link
Member

@sheremet-va sheremet-va commented Oct 1, 2022

Currently implemented running typechecking and showing errors. Exports expectTypeOf.

  • Determines the group expect is in
  • Don't show "skip"/"todo" tests
  • Show only "only" tests, if suite has "only" flag
  • Add options to ignore source type errors
  • Support shortcuts
  • Show list of potentially tested files (include)
  • Allow running vitest typecheck even, if there are no potential tests (vitest still shows source errors)
  • Allow checking JS files with @ts-check
  • Documentation
  • Tests

Closes #1954

@sheremet-va
Copy link
Member Author

@mmkal hello 👋🏻 I don't know if you saw our proposal about using expect-type in Vitest, and I was wondering if you have any thoughts on this proposal.

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 😄

@mmkal
Copy link
Contributor

mmkal commented Oct 29, 2022

@mmkal hello 👋🏻 I don't know if you saw our proposal about using expect-type in Vitest, and I was wondering if you have any thoughts on this proposal.

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 😬

@sheremet-va
Copy link
Member Author

Is there a particular docs file you'd like me to look at here in the meantime?

This file: docs/guide/testing-types.md

Particularly "Reading Errors" section. 😄

@antfu antfu modified the milestones: 0.25.0, Next Nov 1, 2022
@antfu antfu enabled auto-merge (squash) November 7, 2022 11:58
@antfu antfu disabled auto-merge November 7, 2022 15:48
@antfu antfu merged commit 7c7f33d into main Nov 7, 2022
@antfu antfu deleted the feat/typechecking branch November 7, 2022 15:49
renovate bot referenced this pull request in fwouts/previewjs Nov 10, 2022
[![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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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 }>()

  // @&#8203;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
[@&#8203;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 [@&#8203;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
[@&#8203;haikyuu](https://togithub.com/haikyuu) and
[@&#8203;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
[@&#8203;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
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) and
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) and
[@&#8203;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
[@&#8203;bartoszgolebiowski](https://togithub.com/bartoszgolebiowski)
and [@&#8203;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
[@&#8203;g4rry420](https://togithub.com/g4rry420) and
[@&#8203;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
[@&#8203;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>
ivarconr referenced this pull request in Unleash/unleash Nov 10, 2022
[![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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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 }>()

  // @&#8203;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
[@&#8203;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 [@&#8203;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
[@&#8203;haikyuu](https://togithub.com/haikyuu) and
[@&#8203;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
[@&#8203;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
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) and
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) and
[@&#8203;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
[@&#8203;bartoszgolebiowski](https://togithub.com/bartoszgolebiowski)
and [@&#8203;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
[@&#8203;g4rry420](https://togithub.com/g4rry420) and
[@&#8203;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
[@&#8203;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 [@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;haikyuu](https://togithub.com/haikyuu) and
[@&#8203;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
[@&#8203;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 [@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;OrestHk](https://togithub.com/OrestHk) and
[@&#8203;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
[@&#8203;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
[@&#8203;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>
andipaetzold referenced this pull request in andipaetzold/react-firehooks Nov 25, 2022
[![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
[@&#8203;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
[@&#8203;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
[@&#8203;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 [@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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 [@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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 }>()

  // @&#8203;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
[@&#8203;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 [@&#8203;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
[@&#8203;haikyuu](https://togithub.com/haikyuu) and
[@&#8203;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
[@&#8203;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
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) and
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;sheremet-va](https://togithub.com/sheremet-va) and
[@&#8203;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
[@&#8203;bartoszgolebiowski](https://togithub.com/bartoszgolebiowski)
and [@&#8203;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
[@&#8203;g4rry420](https://togithub.com/g4rry420) and
[@&#8203;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
[@&#8203;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 [@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;haikyuu](https://togithub.com/haikyuu) and
[@&#8203;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
[@&#8203;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 [@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;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
[@&#8203;OrestHk](https://togithub.com/OrestHk) and
[@&#8203;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
[@&#8203;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
[@&#8203;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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[RFC] Testing types with expectTypeOf and assertType
5 participants