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

fix: stricter props types #2137

Merged
merged 1 commit into from
Oct 17, 2023
Merged

fix: stricter props types #2137

merged 1 commit into from
Oct 17, 2023

Conversation

alecgibson
Copy link
Contributor

At the moment, mount() offers strong typing of props, but this strong typing is lost when dealing with the VueWrapper through either the props() or setProps() methods.

This change strengthens the typing of these methods to help raise compile-time errors when trying to get or set incorrect props.

@netlify
Copy link

netlify bot commented Jul 25, 2023

Deploy Preview for vue-test-utils-docs ready!

Name Link
🔨 Latest commit dac5950
🔍 Latest deploy log https://app.netlify.com/sites/vue-test-utils-docs/deploys/6523da9562733c0008d0ccaf
😎 Deploy Preview https://deploy-preview-2137--vue-test-utils-docs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site configuration.

@alecgibson alecgibson force-pushed the props-types branch 2 times, most recently from db15b9d to 4c055cd Compare July 25, 2023 11:11
@@ -342,7 +343,7 @@ describe('props', () => {
})

it('should get props from functional component', async () => {
const wrapper = mount(Title, {
const wrapper: VueWrapper<any> = mount(Title, {
Copy link
Contributor Author

@alecgibson alecgibson Jul 25, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I had to add this to make the compilation pass; I'm not sure I understand why this isn't working properly with the functional component? Feels like this is an issue with functional component types rather than my change, right...?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure.

@johnsoncodehk Would you mind taking a look at this PR please? Is this the proper way to type props?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we add something that requires users to add code to their code base (like this) I think this would be a breaking change, which I'm not sure we'd want to do.

Not sure if Johnson will have time to 👀 , we may need to have a look. Vue types are too complex 😓

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Okay have applied @pikax 's suggestion and the build is green without this cast

Copy link
Member

@cexbrayat cexbrayat left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we need @johnsoncodehk insight

@@ -342,7 +343,7 @@ describe('props', () => {
})

it('should get props from functional component', async () => {
const wrapper = mount(Title, {
const wrapper: VueWrapper<any> = mount(Title, {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure.

@johnsoncodehk Would you mind taking a look at this PR please? Is this the proper way to type props?

@lmiller1990
Copy link
Member

We may need to just find some wild code bases to validate if this breaks anything. Maybe GitLab (not sure if they are on Vue 3 yet) or Cypress (cypress/vue uses Test Utils)

@pikax
Copy link
Member

pikax commented Oct 7, 2023

@alecgibson if you change the mount to:

export function mount<
  T,
  C = T extends ((...args: any) => any) | (new (...args: any) => any)
    ? T
    : T extends { props?: infer Props }
    ? DefineComponent<
        Props extends Readonly<(infer PropNames)[]> | (infer PropNames)[]
          ? { [key in PropNames extends string ? PropNames : string]?: any }
          : Props
      >
    : DefineComponent
>(
  originalComponent: T,
  options?: ComponentMountingOptions<C>
): VueWrapper<
  ComponentProps<C> & ComponentData<C> & ComponentExposed<C>,
  ComponentPublicInstance<
    ComponentProps<C>,
    ComponentData<C> & ComponentExposed<C>
  >
>

it should work without needing to cast on functional components

const wrapper: VueWrapper<any> = mount(Title, {

At the moment, `mount()` offers [strong typing][1] of props, but this
strong typing is lost when dealing with the `VueWrapper` through either
the `props()` or `setProps()` methods.

This change strengthens the typing of these methods to help raise
compile-time errors when trying to get or set incorrect props.

[1]: https://github.com/vuejs/test-utils/blob/11b34745e8e66fc747881dfb1ce94cef537c455e/src/types.ts#L44
Copy link
Member

@cexbrayat cexbrayat left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM 👍

@johnsoncodehk
Copy link
Member

LGTM 👍 (Sorry for the delay!)

@cexbrayat cexbrayat merged commit 1db42c8 into vuejs:main Oct 17, 2023
6 checks passed
renovate bot referenced this pull request in slipmatio/toolbelt Nov 20, 2023
[![Mend Renovate logo
banner](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@playwright/test](https://playwright.dev)
([source](https://togithub.com/microsoft/playwright)) | [`1.39.0` ->
`1.40.0`](https://renovatebot.com/diffs/npm/@playwright%2ftest/1.39.0/1.40.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@playwright%2ftest/1.40.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@playwright%2ftest/1.40.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@playwright%2ftest/1.39.0/1.40.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@playwright%2ftest/1.39.0/1.40.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@types/node](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node)
([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped)) |
[`20.8.10` ->
`20.9.1`](https://renovatebot.com/diffs/npm/@types%2fnode/20.8.10/20.9.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/20.9.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fnode/20.9.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fnode/20.8.10/20.9.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/20.8.10/20.9.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@vitejs/plugin-vue](https://togithub.com/vitejs/vite-plugin-vue/tree/main/packages/plugin-vue#readme)
([source](https://togithub.com/vitejs/vite-plugin-vue)) | [`4.4.0` ->
`4.5.0`](https://renovatebot.com/diffs/npm/@vitejs%2fplugin-vue/4.4.0/4.5.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@vitejs%2fplugin-vue/4.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vitejs%2fplugin-vue/4.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vitejs%2fplugin-vue/4.4.0/4.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vitejs%2fplugin-vue/4.4.0/4.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [@vue/test-utils](https://togithub.com/vuejs/test-utils) | [`2.4.1` ->
`2.4.2`](https://renovatebot.com/diffs/npm/@vue%2ftest-utils/2.4.1/2.4.2)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@vue%2ftest-utils/2.4.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vue%2ftest-utils/2.4.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vue%2ftest-utils/2.4.1/2.4.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vue%2ftest-utils/2.4.1/2.4.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [vite](https://togithub.com/vitejs/vite/tree/main/#readme)
([source](https://togithub.com/vitejs/vite)) | [`4.5.0` ->
`5.0.0`](https://renovatebot.com/diffs/npm/vite/4.5.0/5.0.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vite/5.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vite/5.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vite/4.5.0/5.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vite/4.5.0/5.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [vue](https://togithub.com/vuejs/core/tree/main/packages/vue#readme)
([source](https://togithub.com/vuejs/core)) | [`3.3.7` ->
`3.3.8`](https://renovatebot.com/diffs/npm/vue/3.3.7/3.3.8) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vue/3.3.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vue/3.3.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vue/3.3.7/3.3.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vue/3.3.7/3.3.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>microsoft/playwright (@&#8203;playwright/test)</summary>

###
[`v1.40.0`](https://togithub.com/microsoft/playwright/releases/tag/v1.40.0)

[Compare
Source](https://togithub.com/microsoft/playwright/compare/v1.39.0...v1.40.0)

#### Test Generator Update

![Playwright Test
Generator](https://togithub.com/microsoft/playwright/assets/9881434/e8d67e2e-f36d-4301-8631-023948d3e190)

New tools to generate assertions:

- "Assert visibility" tool generates
[expect(locator).toBeVisible()](https://playwright.dev/docs/api/class-locatorassertions#locator-assertions-to-be-visible).
- "Assert value" tool generates
[expect(locator).toHaveValue(value)](https://playwright.dev/docs/api/class-locatorassertions#locator-assertions-to-have-value).
- "Assert text" tool generates
[expect(locator).toContainText(text)](https://playwright.dev/docs/api/class-locatorassertions#locator-assertions-to-contain-text).

Here is an example of a generated test with assertions:

```js
import { test, expect } from '@&#8203;playwright/test';

test('test', async ({ page }) => {
  await page.goto('https://playwright.dev/');
  await page.getByRole('link', { name: 'Get started' }).click();
  await expect(page.getByLabel('Breadcrumbs').getByRole('list')).toContainText('Installation');
  await expect(page.getByLabel('Search')).toBeVisible();
  await page.getByLabel('Search').click();
  await page.getByPlaceholder('Search docs').fill('locator');
  await expect(page.getByPlaceholder('Search docs')).toHaveValue('locator');
});
```

#### New APIs

- Option `reason` in
[page.close()](https://playwright.dev/docs/api/class-page#page-close),
[browserContext.close()](https://playwright.dev/docs/api/class-browsercontext#browser-context-close)
and
[browser.close()](https://playwright.dev/docs/api/class-browser#browser-close).
Close reason is reported for all operations interrupted by the closure.
- Option `firefoxUserPrefs` in
[browserType.launchPersistentContext(userDataDir)](https://playwright.dev/docs/api/class-browsertype#browser-type-launch-persistent-context).

#### Other Changes

- Methods
[download.path()](https://playwright.dev/docs/api/class-download#download-path)
and
[download.createReadStream()](https://playwright.dev/docs/api/class-download#download-create-read-stream)
throw an error for failed and cancelled downloads.
- Playwright [docker image](https://playwright.dev/docs/docker) now
comes with Node.js v20.

#### Browser Versions

-   Chromium 120.0.6099.28
-   Mozilla Firefox 119.0
-   WebKit 17.4

This version was also tested against the following stable channels:

-   Google Chrome 119
-   Microsoft Edge 119

</details>

<details>
<summary>vitejs/vite-plugin-vue (@&#8203;vitejs/plugin-vue)</summary>

###
[`v4.5.0`](https://togithub.com/vitejs/vite-plugin-vue/blob/HEAD/packages/plugin-vue/CHANGELOG.md#450-2023-11-16)

- chore: update peerDependencies to support Vite 5
([#&#8203;290](https://togithub.com/vitejs/vite-plugin-vue/issues/290))
([f92861a](https://togithub.com/vitejs/vite-plugin-vue/commit/f92861a)),
closes
[#&#8203;290](https://togithub.com/vitejs/vite-plugin-vue/issues/290)
- chore: upgrade deps
([c046eba](https://togithub.com/vitejs/vite-plugin-vue/commit/c046eba))
- fix(deps): update all non-major dependencies
([#&#8203;262](https://togithub.com/vitejs/vite-plugin-vue/issues/262))
([c316d43](https://togithub.com/vitejs/vite-plugin-vue/commit/c316d43)),
closes
[#&#8203;262](https://togithub.com/vitejs/vite-plugin-vue/issues/262)

###
[`v4.4.1`](https://togithub.com/vitejs/vite-plugin-vue/blob/HEAD/packages/plugin-vue/CHANGELOG.md#small441-2023-11-08-small)

- fix: fix style block hmr for vitepress md files
([a26a854](https://togithub.com/vitejs/vite-plugin-vue/commit/a26a854)),
closes
[vuejs/vitepress#3129](https://togithub.com/vuejs/vitepress/issues/3129)
- chore: make tests pass with rollup4
([#&#8203;271](https://togithub.com/vitejs/vite-plugin-vue/issues/271))
([298d419](https://togithub.com/vitejs/vite-plugin-vue/commit/298d419)),
closes
[#&#8203;271](https://togithub.com/vitejs/vite-plugin-vue/issues/271)

</details>

<details>
<summary>vuejs/test-utils (@&#8203;vue/test-utils)</summary>

###
[`v2.4.2`](https://togithub.com/vuejs/test-utils/releases/tag/v2.4.2)

[Compare
Source](https://togithub.com/vuejs/test-utils/compare/v2.4.1...v2.4.2)

#### What's Changed

##### Fix

- fix: (could be considered a feature?) allow custom `<transition>`
stubs by [@&#8203;alecgibson](https://togithub.com/alecgibson) in
[https://github.com/vuejs/test-utils/pull/2185](https://togithub.com/vuejs/test-utils/pull/2185)
- fix: Fixing prototype methods being discarded when using `setData` by
[@&#8203;rory-instil](https://togithub.com/rory-instil) in
[https://github.com/vuejs/test-utils/pull/2166](https://togithub.com/vuejs/test-utils/pull/2166)
- fix(deps): update all non-major dependencies to v1.8.8 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/vuejs/test-utils/pull/2143](https://togithub.com/vuejs/test-utils/pull/2143)
- fix(deps): update all non-major dependencies to v1.8.13 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/vuejs/test-utils/pull/2193](https://togithub.com/vuejs/test-utils/pull/2193)
- fix(deps): update all non-major dependencies to v1.8.19 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/vuejs/test-utils/pull/2211](https://togithub.com/vuejs/test-utils/pull/2211)
- fix: stricter props types by
[@&#8203;alecgibson](https://togithub.com/alecgibson) in
[https://github.com/vuejs/test-utils/pull/2137](https://togithub.com/vuejs/test-utils/pull/2137)
- fix(deps): update all non-major dependencies to v1.8.21 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/vuejs/test-utils/pull/2224](https://togithub.com/vuejs/test-utils/pull/2224)
- fix: wrapper.text method by
[@&#8203;harunari0928](https://togithub.com/harunari0928) in
[https://github.com/vuejs/test-utils/pull/2231](https://togithub.com/vuejs/test-utils/pull/2231)
- fix(types): use `VNodeChild` type from `vue` to avoid breakage by
[@&#8203;sodatea](https://togithub.com/sodatea) in
[https://github.com/vuejs/test-utils/pull/2237](https://togithub.com/vuejs/test-utils/pull/2237)
- Fixed typo in accessibility word by
[@&#8203;ramsesmoreno](https://togithub.com/ramsesmoreno) in
[https://github.com/vuejs/test-utils/pull/2160](https://togithub.com/vuejs/test-utils/pull/2160)

##### Docs

- docs: Fix omission of async keywords. by
[@&#8203;yasuaki640](https://togithub.com/yasuaki640) in
[https://github.com/vuejs/test-utils/pull/2163](https://togithub.com/vuejs/test-utils/pull/2163)
- docs: fix spell Exemple to Example by
[@&#8203;yasuaki640](https://togithub.com/yasuaki640) in
[https://github.com/vuejs/test-utils/pull/2161](https://togithub.com/vuejs/test-utils/pull/2161)
- docs: Add removal of createWrapper by
[@&#8203;AntonioDell](https://togithub.com/AntonioDell) in
[https://github.com/vuejs/test-utils/pull/2235](https://togithub.com/vuejs/test-utils/pull/2235)
- docs: comparison of functions with v1 by
[@&#8203;freakzlike](https://togithub.com/freakzlike) in
[https://github.com/vuejs/test-utils/pull/2175](https://togithub.com/vuejs/test-utils/pull/2175)
- docs: fix typo in code example by
[@&#8203;dennybiasiolli](https://togithub.com/dennybiasiolli) in
[https://github.com/vuejs/test-utils/pull/2212](https://togithub.com/vuejs/test-utils/pull/2212)
- feat: update the website application by
[@&#8203;nazarepiedady](https://togithub.com/nazarepiedady) in
[https://github.com/vuejs/test-utils/pull/2171](https://togithub.com/vuejs/test-utils/pull/2171)

##### Chore

- Add WebdriverIO to list of supporting frameworks by
[@&#8203;christian-bromann](https://togithub.com/christian-bromann) in
[https://github.com/vuejs/test-utils/pull/2189](https://togithub.com/vuejs/test-utils/pull/2189)
- ci: add node v20 and drop node v16 by
[@&#8203;cexbrayat](https://togithub.com/cexbrayat) in
[https://github.com/vuejs/test-utils/pull/2190](https://togithub.com/vuejs/test-utils/pull/2190)
- chore(deps): update all non-major dependencies by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/vuejs/test-utils/pull/2233](https://togithub.com/vuejs/test-utils/pull/2233)
- preparing for Vue 3.3.9 by [@&#8203;pikax](https://togithub.com/pikax)
in
[https://github.com/vuejs/test-utils/pull/2240](https://togithub.com/vuejs/test-utils/pull/2240)

#### New Contributors

- [@&#8203;yasuaki640](https://togithub.com/yasuaki640) made their first
contribution in
[https://github.com/vuejs/test-utils/pull/2161](https://togithub.com/vuejs/test-utils/pull/2161)
- [@&#8203;ramsesmoreno](https://togithub.com/ramsesmoreno) made their
first contribution in
[https://github.com/vuejs/test-utils/pull/2160](https://togithub.com/vuejs/test-utils/pull/2160)
- [@&#8203;rory-instil](https://togithub.com/rory-instil) made their
first contribution in
[https://github.com/vuejs/test-utils/pull/2166](https://togithub.com/vuejs/test-utils/pull/2166)
- [@&#8203;nazarepiedady](https://togithub.com/nazarepiedady) made their
first contribution in
[https://github.com/vuejs/test-utils/pull/2171](https://togithub.com/vuejs/test-utils/pull/2171)
- [@&#8203;richex-cn](https://togithub.com/richex-cn) made their first
contribution in
[https://github.com/vuejs/test-utils/pull/2178](https://togithub.com/vuejs/test-utils/pull/2178)
- [@&#8203;christian-bromann](https://togithub.com/christian-bromann)
made their first contribution in
[https://github.com/vuejs/test-utils/pull/2189](https://togithub.com/vuejs/test-utils/pull/2189)
- [@&#8203;dennybiasiolli](https://togithub.com/dennybiasiolli) made
their first contribution in
[https://github.com/vuejs/test-utils/pull/2212](https://togithub.com/vuejs/test-utils/pull/2212)
- [@&#8203;harunari0928](https://togithub.com/harunari0928) made their
first contribution in
[https://github.com/vuejs/test-utils/pull/2231](https://togithub.com/vuejs/test-utils/pull/2231)
- [@&#8203;AntonioDell](https://togithub.com/AntonioDell) made their
first contribution in
[https://github.com/vuejs/test-utils/pull/2235](https://togithub.com/vuejs/test-utils/pull/2235)

**Full Changelog**:
vuejs/test-utils@v2.4.1...v2.4.2

</details>

<details>
<summary>vitejs/vite (vite)</summary>

###
[`v5.0.0`](https://togithub.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#500-2023-11-16)

</details>

<details>
<summary>vuejs/core (vue)</summary>

###
[`v3.3.8`](https://togithub.com/vuejs/core/blob/HEAD/CHANGELOG.md#338-2023-11-06)

[Compare
Source](https://togithub.com/vuejs/core/compare/v3.3.7...v3.3.8)

##### Bug Fixes

- **compile-sfc:** support `Error` type in `defineProps`
([#&#8203;5955](https://togithub.com/vuejs/core/issues/5955))
([a989345](https://togithub.com/vuejs/core/commit/a9893458ec519aae442e1b99e64e6d74685cd22c))
- **compiler-core:** known global should be shadowed by local variables
in expression rewrite
([#&#8203;9492](https://togithub.com/vuejs/core/issues/9492))
([a75d1c5](https://togithub.com/vuejs/core/commit/a75d1c5c6242e91a73cc5ba01e6da620dea0b3d9)),
closes [#&#8203;9482](https://togithub.com/vuejs/core/issues/9482)
- **compiler-sfc:** fix dynamic directive arguments usage check for
slots ([#&#8203;9495](https://togithub.com/vuejs/core/issues/9495))
([b39fa1f](https://togithub.com/vuejs/core/commit/b39fa1f8157647859331ce439c42ae016a49b415)),
closes [#&#8203;9493](https://togithub.com/vuejs/core/issues/9493)
- **deps:** update dependency
[@&#8203;vue/repl](https://togithub.com/vue/repl) to ^2.6.2
([#&#8203;9536](https://togithub.com/vuejs/core/issues/9536))
([5cef325](https://togithub.com/vuejs/core/commit/5cef325f41e3b38657c72fa1a38dedeee1c7a60a))
- **deps:** update dependency
[@&#8203;vue/repl](https://togithub.com/vue/repl) to ^2.6.3
([#&#8203;9540](https://togithub.com/vuejs/core/issues/9540))
([176d590](https://togithub.com/vuejs/core/commit/176d59058c9aecffe9da4d4311e98496684f06d4))
- **hydration:** fix tagName access eeror on comment/text node hydration
mismatch
([dd8a0cf](https://togithub.com/vuejs/core/commit/dd8a0cf5dcde13d2cbd899262a0e07f16e14e489)),
closes [#&#8203;9531](https://togithub.com/vuejs/core/issues/9531)
- **types:** avoid exposing lru-cache types in generated dts
([462aeb3](https://togithub.com/vuejs/core/commit/462aeb3b600765e219ded2ee9a0ed1e74df61de0)),
closes [#&#8203;9521](https://togithub.com/vuejs/core/issues/9521)
- **warn:** avoid warning on empty children with Suspense
([#&#8203;3962](https://togithub.com/vuejs/core/issues/3962))
([405f345](https://togithub.com/vuejs/core/commit/405f34587a63a5f1e3d147b9848219ea98acc22d))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "before 4am on Monday" in timezone
Europe/Helsinki, Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://togithub.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- 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://developer.mend.io/github/slipmatio/toolbelt).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy41OS44IiwidXBkYXRlZEluVmVyIjoiMzcuNTkuOCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate bot referenced this pull request in slipmatio/logger Nov 20, 2023
[![Mend Renovate logo
banner](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@playwright/test](https://playwright.dev)
([source](https://togithub.com/microsoft/playwright)) | [`1.39.0` ->
`1.40.0`](https://renovatebot.com/diffs/npm/@playwright%2ftest/1.39.0/1.40.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@playwright%2ftest/1.40.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@playwright%2ftest/1.40.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@playwright%2ftest/1.39.0/1.40.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@playwright%2ftest/1.39.0/1.40.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@types/node](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node)
([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped)) |
[`20.9.0` ->
`20.9.1`](https://renovatebot.com/diffs/npm/@types%2fnode/20.9.0/20.9.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/20.9.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fnode/20.9.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fnode/20.9.0/20.9.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/20.9.0/20.9.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@vitejs/plugin-vue](https://togithub.com/vitejs/vite-plugin-vue/tree/main/packages/plugin-vue#readme)
([source](https://togithub.com/vitejs/vite-plugin-vue)) | [`4.4.1` ->
`4.5.0`](https://renovatebot.com/diffs/npm/@vitejs%2fplugin-vue/4.4.1/4.5.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@vitejs%2fplugin-vue/4.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vitejs%2fplugin-vue/4.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vitejs%2fplugin-vue/4.4.1/4.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vitejs%2fplugin-vue/4.4.1/4.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [@vue/test-utils](https://togithub.com/vuejs/test-utils) | [`2.4.1` ->
`2.4.2`](https://renovatebot.com/diffs/npm/@vue%2ftest-utils/2.4.1/2.4.2)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@vue%2ftest-utils/2.4.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vue%2ftest-utils/2.4.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vue%2ftest-utils/2.4.1/2.4.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vue%2ftest-utils/2.4.1/2.4.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [vite](https://togithub.com/vitejs/vite/tree/main/#readme)
([source](https://togithub.com/vitejs/vite)) | [`4.5.0` ->
`5.0.0`](https://renovatebot.com/diffs/npm/vite/4.5.0/5.0.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vite/5.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vite/5.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vite/4.5.0/5.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vite/4.5.0/5.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>microsoft/playwright (@&#8203;playwright/test)</summary>

###
[`v1.40.0`](https://togithub.com/microsoft/playwright/releases/tag/v1.40.0)

[Compare
Source](https://togithub.com/microsoft/playwright/compare/v1.39.0...v1.40.0)

#### Test Generator Update

![Playwright Test
Generator](https://togithub.com/microsoft/playwright/assets/9881434/e8d67e2e-f36d-4301-8631-023948d3e190)

New tools to generate assertions:

- "Assert visibility" tool generates
[expect(locator).toBeVisible()](https://playwright.dev/docs/api/class-locatorassertions#locator-assertions-to-be-visible).
- "Assert value" tool generates
[expect(locator).toHaveValue(value)](https://playwright.dev/docs/api/class-locatorassertions#locator-assertions-to-have-value).
- "Assert text" tool generates
[expect(locator).toContainText(text)](https://playwright.dev/docs/api/class-locatorassertions#locator-assertions-to-contain-text).

Here is an example of a generated test with assertions:

```js
import { test, expect } from '@&#8203;playwright/test';

test('test', async ({ page }) => {
  await page.goto('https://playwright.dev/');
  await page.getByRole('link', { name: 'Get started' }).click();
  await expect(page.getByLabel('Breadcrumbs').getByRole('list')).toContainText('Installation');
  await expect(page.getByLabel('Search')).toBeVisible();
  await page.getByLabel('Search').click();
  await page.getByPlaceholder('Search docs').fill('locator');
  await expect(page.getByPlaceholder('Search docs')).toHaveValue('locator');
});
```

#### New APIs

- Option `reason` in
[page.close()](https://playwright.dev/docs/api/class-page#page-close),
[browserContext.close()](https://playwright.dev/docs/api/class-browsercontext#browser-context-close)
and
[browser.close()](https://playwright.dev/docs/api/class-browser#browser-close).
Close reason is reported for all operations interrupted by the closure.
- Option `firefoxUserPrefs` in
[browserType.launchPersistentContext(userDataDir)](https://playwright.dev/docs/api/class-browsertype#browser-type-launch-persistent-context).

#### Other Changes

- Methods
[download.path()](https://playwright.dev/docs/api/class-download#download-path)
and
[download.createReadStream()](https://playwright.dev/docs/api/class-download#download-create-read-stream)
throw an error for failed and cancelled downloads.
- Playwright [docker image](https://playwright.dev/docs/docker) now
comes with Node.js v20.

#### Browser Versions

-   Chromium 120.0.6099.28
-   Mozilla Firefox 119.0
-   WebKit 17.4

This version was also tested against the following stable channels:

-   Google Chrome 119
-   Microsoft Edge 119

</details>

<details>
<summary>vitejs/vite-plugin-vue (@&#8203;vitejs/plugin-vue)</summary>

###
[`v4.5.0`](https://togithub.com/vitejs/vite-plugin-vue/blob/HEAD/packages/plugin-vue/CHANGELOG.md#450-2023-11-16)

- chore: update peerDependencies to support Vite 5
([#&#8203;290](https://togithub.com/vitejs/vite-plugin-vue/issues/290))
([f92861a](https://togithub.com/vitejs/vite-plugin-vue/commit/f92861a)),
closes
[#&#8203;290](https://togithub.com/vitejs/vite-plugin-vue/issues/290)
- chore: upgrade deps
([c046eba](https://togithub.com/vitejs/vite-plugin-vue/commit/c046eba))
- fix(deps): update all non-major dependencies
([#&#8203;262](https://togithub.com/vitejs/vite-plugin-vue/issues/262))
([c316d43](https://togithub.com/vitejs/vite-plugin-vue/commit/c316d43)),
closes
[#&#8203;262](https://togithub.com/vitejs/vite-plugin-vue/issues/262)

</details>

<details>
<summary>vuejs/test-utils (@&#8203;vue/test-utils)</summary>

###
[`v2.4.2`](https://togithub.com/vuejs/test-utils/releases/tag/v2.4.2)

[Compare
Source](https://togithub.com/vuejs/test-utils/compare/v2.4.1...v2.4.2)

#### What's Changed

##### Fix

- fix: (could be considered a feature?) allow custom `<transition>`
stubs by [@&#8203;alecgibson](https://togithub.com/alecgibson) in
[https://github.com/vuejs/test-utils/pull/2185](https://togithub.com/vuejs/test-utils/pull/2185)
- fix: Fixing prototype methods being discarded when using `setData` by
[@&#8203;rory-instil](https://togithub.com/rory-instil) in
[https://github.com/vuejs/test-utils/pull/2166](https://togithub.com/vuejs/test-utils/pull/2166)
- fix(deps): update all non-major dependencies to v1.8.8 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/vuejs/test-utils/pull/2143](https://togithub.com/vuejs/test-utils/pull/2143)
- fix(deps): update all non-major dependencies to v1.8.13 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/vuejs/test-utils/pull/2193](https://togithub.com/vuejs/test-utils/pull/2193)
- fix(deps): update all non-major dependencies to v1.8.19 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/vuejs/test-utils/pull/2211](https://togithub.com/vuejs/test-utils/pull/2211)
- fix: stricter props types by
[@&#8203;alecgibson](https://togithub.com/alecgibson) in
[https://github.com/vuejs/test-utils/pull/2137](https://togithub.com/vuejs/test-utils/pull/2137)
- fix(deps): update all non-major dependencies to v1.8.21 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/vuejs/test-utils/pull/2224](https://togithub.com/vuejs/test-utils/pull/2224)
- fix: wrapper.text method by
[@&#8203;harunari0928](https://togithub.com/harunari0928) in
[https://github.com/vuejs/test-utils/pull/2231](https://togithub.com/vuejs/test-utils/pull/2231)
- fix(types): use `VNodeChild` type from `vue` to avoid breakage by
[@&#8203;sodatea](https://togithub.com/sodatea) in
[https://github.com/vuejs/test-utils/pull/2237](https://togithub.com/vuejs/test-utils/pull/2237)
- Fixed typo in accessibility word by
[@&#8203;ramsesmoreno](https://togithub.com/ramsesmoreno) in
[https://github.com/vuejs/test-utils/pull/2160](https://togithub.com/vuejs/test-utils/pull/2160)

##### Docs

- docs: Fix omission of async keywords. by
[@&#8203;yasuaki640](https://togithub.com/yasuaki640) in
[https://github.com/vuejs/test-utils/pull/2163](https://togithub.com/vuejs/test-utils/pull/2163)
- docs: fix spell Exemple to Example by
[@&#8203;yasuaki640](https://togithub.com/yasuaki640) in
[https://github.com/vuejs/test-utils/pull/2161](https://togithub.com/vuejs/test-utils/pull/2161)
- docs: Add removal of createWrapper by
[@&#8203;AntonioDell](https://togithub.com/AntonioDell) in
[https://github.com/vuejs/test-utils/pull/2235](https://togithub.com/vuejs/test-utils/pull/2235)
- docs: comparison of functions with v1 by
[@&#8203;freakzlike](https://togithub.com/freakzlike) in
[https://github.com/vuejs/test-utils/pull/2175](https://togithub.com/vuejs/test-utils/pull/2175)
- docs: fix typo in code example by
[@&#8203;dennybiasiolli](https://togithub.com/dennybiasiolli) in
[https://github.com/vuejs/test-utils/pull/2212](https://togithub.com/vuejs/test-utils/pull/2212)
- feat: update the website application by
[@&#8203;nazarepiedady](https://togithub.com/nazarepiedady) in
[https://github.com/vuejs/test-utils/pull/2171](https://togithub.com/vuejs/test-utils/pull/2171)

##### Chore

- Add WebdriverIO to list of supporting frameworks by
[@&#8203;christian-bromann](https://togithub.com/christian-bromann) in
[https://github.com/vuejs/test-utils/pull/2189](https://togithub.com/vuejs/test-utils/pull/2189)
- ci: add node v20 and drop node v16 by
[@&#8203;cexbrayat](https://togithub.com/cexbrayat) in
[https://github.com/vuejs/test-utils/pull/2190](https://togithub.com/vuejs/test-utils/pull/2190)
- chore(deps): update all non-major dependencies by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/vuejs/test-utils/pull/2233](https://togithub.com/vuejs/test-utils/pull/2233)
- preparing for Vue 3.3.9 by [@&#8203;pikax](https://togithub.com/pikax)
in
[https://github.com/vuejs/test-utils/pull/2240](https://togithub.com/vuejs/test-utils/pull/2240)

#### New Contributors

- [@&#8203;yasuaki640](https://togithub.com/yasuaki640) made their first
contribution in
[https://github.com/vuejs/test-utils/pull/2161](https://togithub.com/vuejs/test-utils/pull/2161)
- [@&#8203;ramsesmoreno](https://togithub.com/ramsesmoreno) made their
first contribution in
[https://github.com/vuejs/test-utils/pull/2160](https://togithub.com/vuejs/test-utils/pull/2160)
- [@&#8203;rory-instil](https://togithub.com/rory-instil) made their
first contribution in
[https://github.com/vuejs/test-utils/pull/2166](https://togithub.com/vuejs/test-utils/pull/2166)
- [@&#8203;nazarepiedady](https://togithub.com/nazarepiedady) made their
first contribution in
[https://github.com/vuejs/test-utils/pull/2171](https://togithub.com/vuejs/test-utils/pull/2171)
- [@&#8203;richex-cn](https://togithub.com/richex-cn) made their first
contribution in
[https://github.com/vuejs/test-utils/pull/2178](https://togithub.com/vuejs/test-utils/pull/2178)
- [@&#8203;christian-bromann](https://togithub.com/christian-bromann)
made their first contribution in
[https://github.com/vuejs/test-utils/pull/2189](https://togithub.com/vuejs/test-utils/pull/2189)
- [@&#8203;dennybiasiolli](https://togithub.com/dennybiasiolli) made
their first contribution in
[https://github.com/vuejs/test-utils/pull/2212](https://togithub.com/vuejs/test-utils/pull/2212)
- [@&#8203;harunari0928](https://togithub.com/harunari0928) made their
first contribution in
[https://github.com/vuejs/test-utils/pull/2231](https://togithub.com/vuejs/test-utils/pull/2231)
- [@&#8203;AntonioDell](https://togithub.com/AntonioDell) made their
first contribution in
[https://github.com/vuejs/test-utils/pull/2235](https://togithub.com/vuejs/test-utils/pull/2235)

**Full Changelog**:
vuejs/test-utils@v2.4.1...v2.4.2

</details>

<details>
<summary>vitejs/vite (vite)</summary>

###
[`v5.0.0`](https://togithub.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#500-2023-11-16)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "before 4am on Monday" in timezone
Europe/Helsinki, Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://togithub.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- 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://developer.mend.io/github/slipmatio/logger).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy41OS44IiwidXBkYXRlZEluVmVyIjoiMzcuNTkuOCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate bot referenced this pull request in slipmatio/ui Nov 20, 2023
[![Mend Renovate logo
banner](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@playwright/test](https://playwright.dev)
([source](https://togithub.com/microsoft/playwright)) | [`1.39.0` ->
`1.40.0`](https://renovatebot.com/diffs/npm/@playwright%2ftest/1.39.0/1.40.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@playwright%2ftest/1.40.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@playwright%2ftest/1.40.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@playwright%2ftest/1.39.0/1.40.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@playwright%2ftest/1.39.0/1.40.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@types/node](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node)
([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped)) |
[`20.9.0` ->
`20.9.1`](https://renovatebot.com/diffs/npm/@types%2fnode/20.9.0/20.9.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/20.9.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fnode/20.9.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fnode/20.9.0/20.9.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/20.9.0/20.9.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@vitejs/plugin-vue](https://togithub.com/vitejs/vite-plugin-vue/tree/main/packages/plugin-vue#readme)
([source](https://togithub.com/vitejs/vite-plugin-vue)) | [`4.4.1` ->
`4.5.0`](https://renovatebot.com/diffs/npm/@vitejs%2fplugin-vue/4.4.1/4.5.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@vitejs%2fplugin-vue/4.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vitejs%2fplugin-vue/4.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vitejs%2fplugin-vue/4.4.1/4.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vitejs%2fplugin-vue/4.4.1/4.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [@vue/test-utils](https://togithub.com/vuejs/test-utils) | [`2.4.1` ->
`2.4.2`](https://renovatebot.com/diffs/npm/@vue%2ftest-utils/2.4.1/2.4.2)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@vue%2ftest-utils/2.4.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vue%2ftest-utils/2.4.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vue%2ftest-utils/2.4.1/2.4.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vue%2ftest-utils/2.4.1/2.4.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [vite](https://togithub.com/vitejs/vite/tree/main/#readme)
([source](https://togithub.com/vitejs/vite)) | [`4.5.0` ->
`5.0.0`](https://renovatebot.com/diffs/npm/vite/4.5.0/5.0.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vite/5.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vite/5.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vite/4.5.0/5.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vite/4.5.0/5.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>microsoft/playwright (@&#8203;playwright/test)</summary>

###
[`v1.40.0`](https://togithub.com/microsoft/playwright/releases/tag/v1.40.0)

[Compare
Source](https://togithub.com/microsoft/playwright/compare/v1.39.0...v1.40.0)

#### Test Generator Update

![Playwright Test
Generator](https://togithub.com/microsoft/playwright/assets/9881434/e8d67e2e-f36d-4301-8631-023948d3e190)

New tools to generate assertions:

- "Assert visibility" tool generates
[expect(locator).toBeVisible()](https://playwright.dev/docs/api/class-locatorassertions#locator-assertions-to-be-visible).
- "Assert value" tool generates
[expect(locator).toHaveValue(value)](https://playwright.dev/docs/api/class-locatorassertions#locator-assertions-to-have-value).
- "Assert text" tool generates
[expect(locator).toContainText(text)](https://playwright.dev/docs/api/class-locatorassertions#locator-assertions-to-contain-text).

Here is an example of a generated test with assertions:

```js
import { test, expect } from '@&#8203;playwright/test';

test('test', async ({ page }) => {
  await page.goto('https://playwright.dev/');
  await page.getByRole('link', { name: 'Get started' }).click();
  await expect(page.getByLabel('Breadcrumbs').getByRole('list')).toContainText('Installation');
  await expect(page.getByLabel('Search')).toBeVisible();
  await page.getByLabel('Search').click();
  await page.getByPlaceholder('Search docs').fill('locator');
  await expect(page.getByPlaceholder('Search docs')).toHaveValue('locator');
});
```

#### New APIs

- Option `reason` in
[page.close()](https://playwright.dev/docs/api/class-page#page-close),
[browserContext.close()](https://playwright.dev/docs/api/class-browsercontext#browser-context-close)
and
[browser.close()](https://playwright.dev/docs/api/class-browser#browser-close).
Close reason is reported for all operations interrupted by the closure.
- Option `firefoxUserPrefs` in
[browserType.launchPersistentContext(userDataDir)](https://playwright.dev/docs/api/class-browsertype#browser-type-launch-persistent-context).

#### Other Changes

- Methods
[download.path()](https://playwright.dev/docs/api/class-download#download-path)
and
[download.createReadStream()](https://playwright.dev/docs/api/class-download#download-create-read-stream)
throw an error for failed and cancelled downloads.
- Playwright [docker image](https://playwright.dev/docs/docker) now
comes with Node.js v20.

#### Browser Versions

-   Chromium 120.0.6099.28
-   Mozilla Firefox 119.0
-   WebKit 17.4

This version was also tested against the following stable channels:

-   Google Chrome 119
-   Microsoft Edge 119

</details>

<details>
<summary>vitejs/vite-plugin-vue (@&#8203;vitejs/plugin-vue)</summary>

###
[`v4.5.0`](https://togithub.com/vitejs/vite-plugin-vue/blob/HEAD/packages/plugin-vue/CHANGELOG.md#450-2023-11-16)

- chore: update peerDependencies to support Vite 5
([#&#8203;290](https://togithub.com/vitejs/vite-plugin-vue/issues/290))
([f92861a](https://togithub.com/vitejs/vite-plugin-vue/commit/f92861a)),
closes
[#&#8203;290](https://togithub.com/vitejs/vite-plugin-vue/issues/290)
- chore: upgrade deps
([c046eba](https://togithub.com/vitejs/vite-plugin-vue/commit/c046eba))
- fix(deps): update all non-major dependencies
([#&#8203;262](https://togithub.com/vitejs/vite-plugin-vue/issues/262))
([c316d43](https://togithub.com/vitejs/vite-plugin-vue/commit/c316d43)),
closes
[#&#8203;262](https://togithub.com/vitejs/vite-plugin-vue/issues/262)

</details>

<details>
<summary>vuejs/test-utils (@&#8203;vue/test-utils)</summary>

###
[`v2.4.2`](https://togithub.com/vuejs/test-utils/releases/tag/v2.4.2)

[Compare
Source](https://togithub.com/vuejs/test-utils/compare/v2.4.1...v2.4.2)

#### What's Changed

##### Fix

- fix: (could be considered a feature?) allow custom `<transition>`
stubs by [@&#8203;alecgibson](https://togithub.com/alecgibson) in
[https://github.com/vuejs/test-utils/pull/2185](https://togithub.com/vuejs/test-utils/pull/2185)
- fix: Fixing prototype methods being discarded when using `setData` by
[@&#8203;rory-instil](https://togithub.com/rory-instil) in
[https://github.com/vuejs/test-utils/pull/2166](https://togithub.com/vuejs/test-utils/pull/2166)
- fix(deps): update all non-major dependencies to v1.8.8 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/vuejs/test-utils/pull/2143](https://togithub.com/vuejs/test-utils/pull/2143)
- fix(deps): update all non-major dependencies to v1.8.13 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/vuejs/test-utils/pull/2193](https://togithub.com/vuejs/test-utils/pull/2193)
- fix(deps): update all non-major dependencies to v1.8.19 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/vuejs/test-utils/pull/2211](https://togithub.com/vuejs/test-utils/pull/2211)
- fix: stricter props types by
[@&#8203;alecgibson](https://togithub.com/alecgibson) in
[https://github.com/vuejs/test-utils/pull/2137](https://togithub.com/vuejs/test-utils/pull/2137)
- fix(deps): update all non-major dependencies to v1.8.21 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/vuejs/test-utils/pull/2224](https://togithub.com/vuejs/test-utils/pull/2224)
- fix: wrapper.text method by
[@&#8203;harunari0928](https://togithub.com/harunari0928) in
[https://github.com/vuejs/test-utils/pull/2231](https://togithub.com/vuejs/test-utils/pull/2231)
- fix(types): use `VNodeChild` type from `vue` to avoid breakage by
[@&#8203;sodatea](https://togithub.com/sodatea) in
[https://github.com/vuejs/test-utils/pull/2237](https://togithub.com/vuejs/test-utils/pull/2237)
- Fixed typo in accessibility word by
[@&#8203;ramsesmoreno](https://togithub.com/ramsesmoreno) in
[https://github.com/vuejs/test-utils/pull/2160](https://togithub.com/vuejs/test-utils/pull/2160)

##### Docs

- docs: Fix omission of async keywords. by
[@&#8203;yasuaki640](https://togithub.com/yasuaki640) in
[https://github.com/vuejs/test-utils/pull/2163](https://togithub.com/vuejs/test-utils/pull/2163)
- docs: fix spell Exemple to Example by
[@&#8203;yasuaki640](https://togithub.com/yasuaki640) in
[https://github.com/vuejs/test-utils/pull/2161](https://togithub.com/vuejs/test-utils/pull/2161)
- docs: Add removal of createWrapper by
[@&#8203;AntonioDell](https://togithub.com/AntonioDell) in
[https://github.com/vuejs/test-utils/pull/2235](https://togithub.com/vuejs/test-utils/pull/2235)
- docs: comparison of functions with v1 by
[@&#8203;freakzlike](https://togithub.com/freakzlike) in
[https://github.com/vuejs/test-utils/pull/2175](https://togithub.com/vuejs/test-utils/pull/2175)
- docs: fix typo in code example by
[@&#8203;dennybiasiolli](https://togithub.com/dennybiasiolli) in
[https://github.com/vuejs/test-utils/pull/2212](https://togithub.com/vuejs/test-utils/pull/2212)
- feat: update the website application by
[@&#8203;nazarepiedady](https://togithub.com/nazarepiedady) in
[https://github.com/vuejs/test-utils/pull/2171](https://togithub.com/vuejs/test-utils/pull/2171)

##### Chore

- Add WebdriverIO to list of supporting frameworks by
[@&#8203;christian-bromann](https://togithub.com/christian-bromann) in
[https://github.com/vuejs/test-utils/pull/2189](https://togithub.com/vuejs/test-utils/pull/2189)
- ci: add node v20 and drop node v16 by
[@&#8203;cexbrayat](https://togithub.com/cexbrayat) in
[https://github.com/vuejs/test-utils/pull/2190](https://togithub.com/vuejs/test-utils/pull/2190)
- chore(deps): update all non-major dependencies by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/vuejs/test-utils/pull/2233](https://togithub.com/vuejs/test-utils/pull/2233)
- preparing for Vue 3.3.9 by [@&#8203;pikax](https://togithub.com/pikax)
in
[https://github.com/vuejs/test-utils/pull/2240](https://togithub.com/vuejs/test-utils/pull/2240)

#### New Contributors

- [@&#8203;yasuaki640](https://togithub.com/yasuaki640) made their first
contribution in
[https://github.com/vuejs/test-utils/pull/2161](https://togithub.com/vuejs/test-utils/pull/2161)
- [@&#8203;ramsesmoreno](https://togithub.com/ramsesmoreno) made their
first contribution in
[https://github.com/vuejs/test-utils/pull/2160](https://togithub.com/vuejs/test-utils/pull/2160)
- [@&#8203;rory-instil](https://togithub.com/rory-instil) made their
first contribution in
[https://github.com/vuejs/test-utils/pull/2166](https://togithub.com/vuejs/test-utils/pull/2166)
- [@&#8203;nazarepiedady](https://togithub.com/nazarepiedady) made their
first contribution in
[https://github.com/vuejs/test-utils/pull/2171](https://togithub.com/vuejs/test-utils/pull/2171)
- [@&#8203;richex-cn](https://togithub.com/richex-cn) made their first
contribution in
[https://github.com/vuejs/test-utils/pull/2178](https://togithub.com/vuejs/test-utils/pull/2178)
- [@&#8203;christian-bromann](https://togithub.com/christian-bromann)
made their first contribution in
[https://github.com/vuejs/test-utils/pull/2189](https://togithub.com/vuejs/test-utils/pull/2189)
- [@&#8203;dennybiasiolli](https://togithub.com/dennybiasiolli) made
their first contribution in
[https://github.com/vuejs/test-utils/pull/2212](https://togithub.com/vuejs/test-utils/pull/2212)
- [@&#8203;harunari0928](https://togithub.com/harunari0928) made their
first contribution in
[https://github.com/vuejs/test-utils/pull/2231](https://togithub.com/vuejs/test-utils/pull/2231)
- [@&#8203;AntonioDell](https://togithub.com/AntonioDell) made their
first contribution in
[https://github.com/vuejs/test-utils/pull/2235](https://togithub.com/vuejs/test-utils/pull/2235)

**Full Changelog**:
vuejs/test-utils@v2.4.1...v2.4.2

</details>

<details>
<summary>vitejs/vite (vite)</summary>

###
[`v5.0.0`](https://togithub.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#500-2023-11-16)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "before 4am on Monday" in timezone
Europe/Helsinki, Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://togithub.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- 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://developer.mend.io/github/slipmatio/ui).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy41OS44IiwidXBkYXRlZEluVmVyIjoiMzcuNTkuOCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
@DanielleHuisman
Copy link

This PR (released in 2.4.2) breaks existing TypeScript projects, because setProps is too strict. I see this has already been addressed in e9fe51f by making it Partial. When can we expect this fix to be released?

@cexbrayat
Copy link
Member

@DanielleHuisman We're waiting on another PR to land that should improve typings from @pikax #2242
In the meantime, you can use v2.4.1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants