@vitest/browser 2.1.4 → 2.2.0-beta.1
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 +7 -21
- package/dist/client/.vite/manifest.json +6 -6
- package/dist/client/__vitest__/index.html +2 -2
- package/dist/client/__vitest_browser__/{orchestrator-NReaboR_.js → orchestrator-DnP17K36.js} +5 -117
- package/dist/client/__vitest_browser__/{tester-CAAquV6P.js → tester-BaiNqOPw.js} +1251 -2
- package/dist/client/__vitest_browser__/utils-Owv5OOOf.js +195 -0
- package/dist/client/orchestrator.html +2 -2
- package/dist/client/tester/tester.html +2 -13
- package/dist/context.js +74 -34
- package/dist/{index-Cgg35wOd.js → index-CKtADM3n.js} +35 -3
- package/dist/index.js +59 -18
- package/dist/locators/index.js +1 -1
- package/dist/locators/playwright.js +1 -1
- package/dist/locators/preview.js +10 -10
- package/dist/locators/webdriverio.js +1 -1
- package/dist/providers.js +8 -7
- package/package.json +13 -13
- package/dist/client/__vitest_browser__/utils-CUwLt_eT.js +0 -81
package/dist/locators/preview.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { userEvent } from '@testing-library/user-event';
|
|
2
2
|
import { page, server } from '@vitest/browser/context';
|
|
3
3
|
import { g as getByLabelSelector, a as getByRoleSelector, b as getByTestIdSelector, c as getByAltTextSelector, d as getByPlaceholderSelector, e as getByTextSelector, f as getByTitleSelector, h as getElementError } from '../public-utils-D6S2-5kI.js';
|
|
4
|
-
import { s as selectorEngine, L as Locator, c as convertElementToCssSelector } from '../index-
|
|
4
|
+
import { s as selectorEngine, L as Locator, c as convertElementToCssSelector, e as ensureAwaited } from '../index-CKtADM3n.js';
|
|
5
5
|
import 'vitest/utils';
|
|
6
6
|
|
|
7
7
|
page.extend({
|
|
@@ -47,23 +47,23 @@ class PreviewLocator extends Locator {
|
|
|
47
47
|
return selectors.join(", ");
|
|
48
48
|
}
|
|
49
49
|
click() {
|
|
50
|
-
return userEvent.click(this.element());
|
|
50
|
+
return ensureAwaited(() => userEvent.click(this.element()));
|
|
51
51
|
}
|
|
52
52
|
dblClick() {
|
|
53
|
-
return userEvent.dblClick(this.element());
|
|
53
|
+
return ensureAwaited(() => userEvent.dblClick(this.element()));
|
|
54
54
|
}
|
|
55
55
|
tripleClick() {
|
|
56
|
-
return userEvent.tripleClick(this.element());
|
|
56
|
+
return ensureAwaited(() => userEvent.tripleClick(this.element()));
|
|
57
57
|
}
|
|
58
58
|
hover() {
|
|
59
|
-
return userEvent.hover(this.element());
|
|
59
|
+
return ensureAwaited(() => userEvent.hover(this.element()));
|
|
60
60
|
}
|
|
61
61
|
unhover() {
|
|
62
|
-
return userEvent.unhover(this.element());
|
|
62
|
+
return ensureAwaited(() => userEvent.unhover(this.element()));
|
|
63
63
|
}
|
|
64
64
|
async fill(text) {
|
|
65
65
|
await this.clear();
|
|
66
|
-
return userEvent.type(this.element(), text);
|
|
66
|
+
return ensureAwaited(() => userEvent.type(this.element(), text));
|
|
67
67
|
}
|
|
68
68
|
async upload(file) {
|
|
69
69
|
const uploadPromise = (Array.isArray(file) ? file : [file]).map(async (file2) => {
|
|
@@ -75,7 +75,7 @@ class PreviewLocator extends Locator {
|
|
|
75
75
|
return fileInstance;
|
|
76
76
|
});
|
|
77
77
|
const uploadFiles = await Promise.all(uploadPromise);
|
|
78
|
-
return userEvent.upload(this.element(), uploadFiles);
|
|
78
|
+
return ensureAwaited(() => userEvent.upload(this.element(), uploadFiles));
|
|
79
79
|
}
|
|
80
80
|
selectOptions(options_) {
|
|
81
81
|
const options = (Array.isArray(options_) ? options_ : [options_]).map((option) => {
|
|
@@ -84,13 +84,13 @@ class PreviewLocator extends Locator {
|
|
|
84
84
|
}
|
|
85
85
|
return option;
|
|
86
86
|
});
|
|
87
|
-
return userEvent.selectOptions(this.element(), options);
|
|
87
|
+
return ensureAwaited(() => userEvent.selectOptions(this.element(), options));
|
|
88
88
|
}
|
|
89
89
|
async dropTo() {
|
|
90
90
|
throw new Error('The "preview" provider doesn\'t support `dropTo` method.');
|
|
91
91
|
}
|
|
92
92
|
clear() {
|
|
93
|
-
return userEvent.clear(this.element());
|
|
93
|
+
return ensureAwaited(() => userEvent.clear(this.element()));
|
|
94
94
|
}
|
|
95
95
|
async screenshot() {
|
|
96
96
|
throw new Error('The "preview" provider doesn\'t support `screenshot` method.');
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { page, server } from '@vitest/browser/context';
|
|
2
2
|
import { g as getByLabelSelector, a as getByRoleSelector, b as getByTestIdSelector, c as getByAltTextSelector, d as getByPlaceholderSelector, e as getByTextSelector, f as getByTitleSelector, h as getElementError } from '../public-utils-D6S2-5kI.js';
|
|
3
|
-
import { s as selectorEngine, L as Locator, c as convertElementToCssSelector } from '../index-
|
|
3
|
+
import { s as selectorEngine, L as Locator, c as convertElementToCssSelector } from '../index-CKtADM3n.js';
|
|
4
4
|
import 'vitest/utils';
|
|
5
5
|
|
|
6
6
|
page.extend({
|
package/dist/providers.js
CHANGED
|
@@ -3,7 +3,7 @@ import { W as WebdriverBrowserProvider, P as PlaywrightBrowserProvider } from '.
|
|
|
3
3
|
class PreviewBrowserProvider {
|
|
4
4
|
name = "preview";
|
|
5
5
|
supportsParallelism = false;
|
|
6
|
-
|
|
6
|
+
project;
|
|
7
7
|
open = false;
|
|
8
8
|
getSupportedBrowsers() {
|
|
9
9
|
return [];
|
|
@@ -14,24 +14,25 @@ class PreviewBrowserProvider {
|
|
|
14
14
|
getCommandsContext() {
|
|
15
15
|
return {};
|
|
16
16
|
}
|
|
17
|
-
async initialize(
|
|
18
|
-
this.
|
|
17
|
+
async initialize(project) {
|
|
18
|
+
this.project = project;
|
|
19
19
|
this.open = false;
|
|
20
|
-
if (
|
|
20
|
+
if (project.config.browser.headless) {
|
|
21
21
|
throw new Error(
|
|
22
22
|
`You've enabled headless mode for "preview" provider but it doesn't support it. Use "playwright" or "webdriverio" instead: https://vitest.dev/guide/browser/#configuration`
|
|
23
23
|
);
|
|
24
24
|
}
|
|
25
|
+
project.ctx.logger.printBrowserBanner(project);
|
|
25
26
|
}
|
|
26
27
|
async openPage(_contextId, url) {
|
|
27
28
|
this.open = true;
|
|
28
|
-
if (!this.
|
|
29
|
+
if (!this.project.browser) {
|
|
29
30
|
throw new Error("Browser is not initialized");
|
|
30
31
|
}
|
|
31
|
-
const options = this.
|
|
32
|
+
const options = this.project.browser.vite.config.server;
|
|
32
33
|
const _open = options.open;
|
|
33
34
|
options.open = url;
|
|
34
|
-
this.
|
|
35
|
+
this.project.browser.vite.openBrowser();
|
|
35
36
|
options.open = _open;
|
|
36
37
|
}
|
|
37
38
|
async close() {
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vitest/browser",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "2.1
|
|
4
|
+
"version": "2.2.0-beta.1",
|
|
5
5
|
"description": "Browser running for Vitest",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"funding": "https://opencollective.com/vitest",
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
"peerDependencies": {
|
|
63
63
|
"playwright": "*",
|
|
64
64
|
"webdriverio": "*",
|
|
65
|
-
"vitest": "2.1
|
|
65
|
+
"vitest": "2.2.0-beta.1"
|
|
66
66
|
},
|
|
67
67
|
"peerDependenciesMeta": {
|
|
68
68
|
"playwright": {
|
|
@@ -79,16 +79,16 @@
|
|
|
79
79
|
"@testing-library/dom": "^10.4.0",
|
|
80
80
|
"@testing-library/user-event": "^14.5.2",
|
|
81
81
|
"magic-string": "^0.30.12",
|
|
82
|
-
"msw": "^2.
|
|
82
|
+
"msw": "^2.6.4",
|
|
83
83
|
"sirv": "^3.0.0",
|
|
84
84
|
"tinyrainbow": "^1.2.0",
|
|
85
85
|
"ws": "^8.18.0",
|
|
86
|
-
"@vitest/mocker": "2.1
|
|
87
|
-
"@vitest/utils": "2.1
|
|
86
|
+
"@vitest/mocker": "2.2.0-beta.1",
|
|
87
|
+
"@vitest/utils": "2.2.0-beta.1"
|
|
88
88
|
},
|
|
89
89
|
"devDependencies": {
|
|
90
|
-
"@testing-library/jest-dom": "^6.6.
|
|
91
|
-
"@types/ws": "^8.5.
|
|
90
|
+
"@testing-library/jest-dom": "^6.6.3",
|
|
91
|
+
"@types/ws": "^8.5.13",
|
|
92
92
|
"@wdio/protocols": "^8.40.3",
|
|
93
93
|
"birpc": "0.2.19",
|
|
94
94
|
"flatted": "^3.3.1",
|
|
@@ -96,14 +96,14 @@
|
|
|
96
96
|
"mime": "^4.0.4",
|
|
97
97
|
"pathe": "^1.1.2",
|
|
98
98
|
"periscopic": "^4.0.2",
|
|
99
|
-
"playwright": "^1.48.
|
|
100
|
-
"playwright-core": "^1.48.
|
|
99
|
+
"playwright": "^1.48.2",
|
|
100
|
+
"playwright-core": "^1.48.2",
|
|
101
101
|
"safaridriver": "^0.1.2",
|
|
102
102
|
"webdriverio": "^8.40.6",
|
|
103
|
-
"@vitest/runner": "2.1
|
|
104
|
-
"@vitest/
|
|
105
|
-
"@vitest/
|
|
106
|
-
"vitest": "2.1
|
|
103
|
+
"@vitest/runner": "2.2.0-beta.1",
|
|
104
|
+
"@vitest/ui": "2.2.0-beta.1",
|
|
105
|
+
"@vitest/ws-client": "2.2.0-beta.1",
|
|
106
|
+
"vitest": "2.2.0-beta.1"
|
|
107
107
|
},
|
|
108
108
|
"scripts": {
|
|
109
109
|
"build": "rimraf dist && pnpm build:node && pnpm build:client",
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
(function polyfill() {
|
|
2
|
-
const relList = document.createElement("link").relList;
|
|
3
|
-
if (relList && relList.supports && relList.supports("modulepreload")) {
|
|
4
|
-
return;
|
|
5
|
-
}
|
|
6
|
-
for (const link of document.querySelectorAll('link[rel="modulepreload"]')) {
|
|
7
|
-
processPreload(link);
|
|
8
|
-
}
|
|
9
|
-
new MutationObserver((mutations) => {
|
|
10
|
-
for (const mutation of mutations) {
|
|
11
|
-
if (mutation.type !== "childList") {
|
|
12
|
-
continue;
|
|
13
|
-
}
|
|
14
|
-
for (const node of mutation.addedNodes) {
|
|
15
|
-
if (node.tagName === "LINK" && node.rel === "modulepreload")
|
|
16
|
-
processPreload(node);
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
}).observe(document, { childList: true, subtree: true });
|
|
20
|
-
function getFetchOpts(link) {
|
|
21
|
-
const fetchOpts = {};
|
|
22
|
-
if (link.integrity) fetchOpts.integrity = link.integrity;
|
|
23
|
-
if (link.referrerPolicy) fetchOpts.referrerPolicy = link.referrerPolicy;
|
|
24
|
-
if (link.crossOrigin === "use-credentials")
|
|
25
|
-
fetchOpts.credentials = "include";
|
|
26
|
-
else if (link.crossOrigin === "anonymous") fetchOpts.credentials = "omit";
|
|
27
|
-
else fetchOpts.credentials = "same-origin";
|
|
28
|
-
return fetchOpts;
|
|
29
|
-
}
|
|
30
|
-
function processPreload(link) {
|
|
31
|
-
if (link.ep)
|
|
32
|
-
return;
|
|
33
|
-
link.ep = true;
|
|
34
|
-
const fetchOpts = getFetchOpts(link);
|
|
35
|
-
fetch(link.href, fetchOpts);
|
|
36
|
-
}
|
|
37
|
-
})();
|
|
38
|
-
async function importId(id) {
|
|
39
|
-
const name = `/@id/${id}`.replace(/\\/g, "/");
|
|
40
|
-
return (/* @__PURE__ */ getBrowserState()).wrapModule(() => import(
|
|
41
|
-
/* @vite-ignore */
|
|
42
|
-
name
|
|
43
|
-
));
|
|
44
|
-
}
|
|
45
|
-
async function importFs(id) {
|
|
46
|
-
const name = `/@fs/${id}`.replace(/\\/g, "/");
|
|
47
|
-
return (/* @__PURE__ */ getBrowserState()).wrapModule(() => import(
|
|
48
|
-
/* @vite-ignore */
|
|
49
|
-
name
|
|
50
|
-
));
|
|
51
|
-
}
|
|
52
|
-
const executor = {
|
|
53
|
-
isBrowser: true,
|
|
54
|
-
executeId: (id) => {
|
|
55
|
-
if (id[0] === "/" || id[1] === ":") {
|
|
56
|
-
return importFs(id);
|
|
57
|
-
}
|
|
58
|
-
return importId(id);
|
|
59
|
-
}
|
|
60
|
-
};
|
|
61
|
-
function getConfig() {
|
|
62
|
-
return (/* @__PURE__ */ getBrowserState()).config;
|
|
63
|
-
}
|
|
64
|
-
// @__NO_SIDE_EFFECTS__
|
|
65
|
-
function getBrowserState() {
|
|
66
|
-
return window.__vitest_browser_runner__;
|
|
67
|
-
}
|
|
68
|
-
// @__NO_SIDE_EFFECTS__
|
|
69
|
-
function getWorkerState() {
|
|
70
|
-
const state = window.__vitest_worker__;
|
|
71
|
-
if (!state) {
|
|
72
|
-
throw new Error("Worker state is not found. This is an issue with Vitest. Please, open an issue.");
|
|
73
|
-
}
|
|
74
|
-
return state;
|
|
75
|
-
}
|
|
76
|
-
export {
|
|
77
|
-
getConfig as a,
|
|
78
|
-
getWorkerState as b,
|
|
79
|
-
executor as e,
|
|
80
|
-
getBrowserState as g
|
|
81
|
-
};
|