vitest-browser-vue 2.0.2 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/{pure-CE5Uqrcq.d.ts → pure-B6xBGwMp.d.ts} +22 -3
- package/dist/{pure-DJ28KYrc.js → pure-epEwB8Ps.js} +33 -3
- package/dist/pure.d.ts +1 -1
- package/dist/pure.js +1 -1
- package/package.json +5 -4
package/README.md
CHANGED
|
@@ -9,7 +9,7 @@ import { render } from 'vitest-browser-vue'
|
|
|
9
9
|
import { expect, test } from 'vitest'
|
|
10
10
|
|
|
11
11
|
test('counter button increments the count', async () => {
|
|
12
|
-
const screen = render(Component, {
|
|
12
|
+
const screen = await render(Component, {
|
|
13
13
|
props: {
|
|
14
14
|
initialCount: 1,
|
|
15
15
|
}
|
|
@@ -44,7 +44,7 @@ export default defineConfig({
|
|
|
44
44
|
import { page } from 'vitest/browser'
|
|
45
45
|
|
|
46
46
|
test('counter button increments the count', async () => {
|
|
47
|
-
const screen = page.render(Component, {
|
|
47
|
+
const screen = await page.render(Component, {
|
|
48
48
|
props: {
|
|
49
49
|
initialCount: 1,
|
|
50
50
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as render, i as config, n as RenderResult, r as cleanup, t as ComponentRenderOptions } from "./pure-
|
|
1
|
+
import { a as render, i as config, n as RenderResult, r as cleanup, t as ComponentRenderOptions } from "./pure-B6xBGwMp.js";
|
|
2
2
|
|
|
3
3
|
//#region src/index.d.ts
|
|
4
4
|
declare module "vitest/browser" {
|
package/dist/index.js
CHANGED
|
@@ -11,22 +11,41 @@ interface RenderResult<Props$1> extends LocatorSelectors {
|
|
|
11
11
|
baseElement: HTMLElement;
|
|
12
12
|
locator: Locator;
|
|
13
13
|
debug(el?: HTMLElement | HTMLElement[] | Locator | Locator[], maxLength?: number, options?: PrettyDOMOptions): void;
|
|
14
|
-
|
|
14
|
+
/**
|
|
15
|
+
* Unmount the component. Also records a `vue.unmount` trace mark.
|
|
16
|
+
*
|
|
17
|
+
* Synchronous usage is deprecated and will be removed in the next major version.
|
|
18
|
+
* Please use `await unmount()` instead of `unmount()`.
|
|
19
|
+
*/
|
|
20
|
+
unmount(): Promise<void>;
|
|
15
21
|
emitted<T = unknown>(): Record<string, T[]>;
|
|
16
22
|
emitted<T = unknown[]>(eventName: string): undefined | T[];
|
|
17
|
-
|
|
23
|
+
/**
|
|
24
|
+
* Update the component props. Also records a `vue.rerender` trace mark.
|
|
25
|
+
*
|
|
26
|
+
* Synchronous usage is deprecated and will be removed in the next major version.
|
|
27
|
+
* Please use `await rerender(props)` instead of `rerender(props)`.
|
|
28
|
+
*/
|
|
29
|
+
rerender(props: Partial<Props$1>): Promise<void>;
|
|
18
30
|
}
|
|
19
31
|
interface ComponentRenderOptions<C, P$1 extends ComponentProps<C>> extends ComponentMountingOptions<C, P$1> {
|
|
20
32
|
container?: HTMLElement;
|
|
21
33
|
baseElement?: HTMLElement;
|
|
22
34
|
}
|
|
35
|
+
/**
|
|
36
|
+
* Render a Vue component into the document.
|
|
37
|
+
* Also records a `vue.render` trace mark.
|
|
38
|
+
*
|
|
39
|
+
* Synchronous usage is deprecated and will be removed in the next major version.
|
|
40
|
+
* Please use `await render(Component)` instead of `render(Component)`.
|
|
41
|
+
*/
|
|
23
42
|
declare function render<T$1, C = (T$1 extends ((...args: any) => any) | (new (...args: any) => any) ? T$1 : T$1 extends {
|
|
24
43
|
props?: infer Props;
|
|
25
44
|
} ? DefineComponent<Props extends Readonly<(infer PropNames)[]> | (infer PropNames)[] ? { [key in PropNames extends string ? PropNames : string]?: any } : Props> : DefineComponent), P$1 extends ComponentProps<C> = ComponentProps<C>>(Component: T$1, {
|
|
26
45
|
container: customContainer,
|
|
27
46
|
baseElement: customBaseElement,
|
|
28
47
|
...mountOptions
|
|
29
|
-
}?: ComponentRenderOptions<C, P$1>): RenderResult<P$1
|
|
48
|
+
}?: ComponentRenderOptions<C, P$1>): RenderResult<P$1> & PromiseLike<RenderResult<P$1>>;
|
|
30
49
|
declare function cleanup(): void;
|
|
31
50
|
//#endregion
|
|
32
51
|
export { render as a, config as i, RenderResult as n, cleanup as r, ComponentRenderOptions as t };
|
|
@@ -9,6 +9,13 @@ function ensureTestIdAttribute(element) {
|
|
|
9
9
|
const attributeId = server.config.browser.locators.testIdAttribute;
|
|
10
10
|
if (!element.hasAttribute(attributeId)) element.setAttribute(attributeId, `__vitest_${idx++}__`);
|
|
11
11
|
}
|
|
12
|
+
/**
|
|
13
|
+
* Render a Vue component into the document.
|
|
14
|
+
* Also records a `vue.render` trace mark.
|
|
15
|
+
*
|
|
16
|
+
* Synchronous usage is deprecated and will be removed in the next major version.
|
|
17
|
+
* Please use `await render(Component)` instead of `render(Component)`.
|
|
18
|
+
*/
|
|
12
19
|
function render(Component, { container: customContainer, baseElement: customBaseElement,...mountOptions } = {}) {
|
|
13
20
|
const baseElement = customBaseElement || customContainer || document.body;
|
|
14
21
|
const container = customContainer || baseElement.appendChild(document.createElement("div"));
|
|
@@ -21,16 +28,39 @@ function render(Component, { container: customContainer, baseElement: customBase
|
|
|
21
28
|
});
|
|
22
29
|
unwrapNode(wrapper.parentElement);
|
|
23
30
|
mountedWrappers.add(wrapper);
|
|
24
|
-
|
|
31
|
+
const renderResult = {
|
|
25
32
|
container,
|
|
26
33
|
baseElement,
|
|
27
34
|
locator: page.elementLocator(container),
|
|
28
35
|
debug: (el = baseElement, maxLength, options) => debug(el, maxLength, options),
|
|
29
|
-
unmount: () =>
|
|
36
|
+
unmount: () => {
|
|
37
|
+
wrapper.unmount();
|
|
38
|
+
return markThenable(renderResult.locator, "vue.unmount", renderResult.unmount, void 0);
|
|
39
|
+
},
|
|
30
40
|
emitted: ((name) => wrapper.emitted(name)),
|
|
31
|
-
rerender: (props) =>
|
|
41
|
+
rerender: async (props) => {
|
|
42
|
+
await wrapper.setProps(props);
|
|
43
|
+
return markThenable(renderResult.locator, "vue.rerender", renderResult.rerender, void 0);
|
|
44
|
+
},
|
|
32
45
|
...getElementLocatorSelectors(baseElement)
|
|
33
46
|
};
|
|
47
|
+
return {
|
|
48
|
+
...renderResult,
|
|
49
|
+
...markThenable(renderResult.locator, "vue.render", render, renderResult)
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
function markThenable(locator, name, fn, value) {
|
|
53
|
+
if (!locator.mark) return Promise.resolve(value);
|
|
54
|
+
const error = new Error(name);
|
|
55
|
+
if ("captureStackTrace" in Error) Error.captureStackTrace(error, fn);
|
|
56
|
+
return { async then(onfulfilled, onrejected) {
|
|
57
|
+
try {
|
|
58
|
+
await locator.mark(name, error);
|
|
59
|
+
return Promise.resolve(value).then(onfulfilled, onrejected);
|
|
60
|
+
} catch (e) {
|
|
61
|
+
return Promise.reject(e).then(onfulfilled, onrejected);
|
|
62
|
+
}
|
|
63
|
+
} };
|
|
34
64
|
}
|
|
35
65
|
function cleanup() {
|
|
36
66
|
mountedWrappers.forEach((wrapper) => {
|
package/dist/pure.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as render, i as config, n as RenderResult, r as cleanup, t as ComponentRenderOptions } from "./pure-
|
|
1
|
+
import { a as render, i as config, n as RenderResult, r as cleanup, t as ComponentRenderOptions } from "./pure-B6xBGwMp.js";
|
|
2
2
|
export { ComponentRenderOptions, RenderResult, cleanup, config, render };
|
package/dist/pure.js
CHANGED
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vitest-browser-vue",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "2.0
|
|
4
|
+
"version": "2.1.0",
|
|
5
5
|
"description": "Render Vue components in Vitest Browser Mode",
|
|
6
6
|
"author": "Vitest Community",
|
|
7
7
|
"license": "MIT",
|
|
@@ -48,16 +48,17 @@
|
|
|
48
48
|
},
|
|
49
49
|
"devDependencies": {
|
|
50
50
|
"@antfu/eslint-config": "^2.24.1",
|
|
51
|
+
"@playwright/test": "^1.58.2",
|
|
51
52
|
"@vitejs/plugin-vue": "^6.0.1",
|
|
52
|
-
"@vitest/browser-playwright": "
|
|
53
|
+
"@vitest/browser-playwright": "4.1.0-beta.6",
|
|
53
54
|
"bumpp": "^9.4.2",
|
|
54
55
|
"changelogithub": "^0.13.9",
|
|
55
56
|
"eslint": "^9.8.0",
|
|
56
|
-
"playwright": "^1.
|
|
57
|
+
"playwright": "^1.58.2",
|
|
57
58
|
"tsdown": "^0.15.9",
|
|
58
59
|
"tsx": "^4.16.5",
|
|
59
60
|
"typescript": "^5.5.4",
|
|
60
|
-
"vitest": "
|
|
61
|
+
"vitest": "4.1.0-beta.6",
|
|
61
62
|
"vue": "^3.4.35",
|
|
62
63
|
"zx": "^8.1.4"
|
|
63
64
|
},
|