@vitest/browser-playwright 5.0.0-beta.2 → 5.0.0-beta.4
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/dist/index.js +31 -24
- package/package.json +6 -6
package/dist/index.js
CHANGED
|
@@ -527,7 +527,7 @@ async function takeScreenshot(context, name, options) {
|
|
|
527
527
|
const mask = options.mask?.map((selector) => getDescribedLocator(context, selector));
|
|
528
528
|
const style = context.project.config.browser.ui ? options.style === undefined ? SCREENSHOT_STYLES : SCREENSHOT_STYLES + options.style : options.style;
|
|
529
529
|
if (options.element) {
|
|
530
|
-
const { element: selector, ...config } = options;
|
|
530
|
+
const { element: selector, target: _target, ...config } = options;
|
|
531
531
|
const element = getDescribedLocator(context, selector);
|
|
532
532
|
const buffer = await element.screenshot({
|
|
533
533
|
...config,
|
|
@@ -540,11 +540,17 @@ async function takeScreenshot(context, name, options) {
|
|
|
540
540
|
path
|
|
541
541
|
};
|
|
542
542
|
}
|
|
543
|
-
const
|
|
543
|
+
const { target, ...config } = options;
|
|
544
|
+
const buffer = target === "page" ? await context.page.screenshot({
|
|
545
|
+
...config,
|
|
546
|
+
mask,
|
|
547
|
+
path: savePath,
|
|
548
|
+
style
|
|
549
|
+
}) : await getDescribedLocator(context, {
|
|
544
550
|
selector: "body",
|
|
545
551
|
locator: "locator('body')"
|
|
546
552
|
}).screenshot({
|
|
547
|
-
...
|
|
553
|
+
...config,
|
|
548
554
|
mask,
|
|
549
555
|
path: savePath,
|
|
550
556
|
style
|
|
@@ -955,7 +961,7 @@ class PlaywrightBrowserProvider {
|
|
|
955
961
|
createMocker() {
|
|
956
962
|
const idPredicates = new Map();
|
|
957
963
|
const sessionIds = new Map();
|
|
958
|
-
function createPredicate(
|
|
964
|
+
function createPredicate(url) {
|
|
959
965
|
const moduleUrl = new URL(url, "http://localhost");
|
|
960
966
|
const predicate = (url) => {
|
|
961
967
|
if (url.searchParams.has("_vitest_original")) {
|
|
@@ -980,11 +986,10 @@ class PlaywrightBrowserProvider {
|
|
|
980
986
|
}
|
|
981
987
|
return true;
|
|
982
988
|
};
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
return predicate;
|
|
989
|
+
return {
|
|
990
|
+
url: moduleUrl.href,
|
|
991
|
+
predicate
|
|
992
|
+
};
|
|
988
993
|
}
|
|
989
994
|
function predicateKey(sessionId, url) {
|
|
990
995
|
return `${sessionId}:${url}`;
|
|
@@ -992,7 +997,17 @@ class PlaywrightBrowserProvider {
|
|
|
992
997
|
return {
|
|
993
998
|
register: async (sessionId, module) => {
|
|
994
999
|
const page = this.getPage(sessionId);
|
|
995
|
-
|
|
1000
|
+
const { url: moduleUrl, predicate } = createPredicate(module.url);
|
|
1001
|
+
const key = predicateKey(sessionId, moduleUrl);
|
|
1002
|
+
const existingPredicate = idPredicates.get(key);
|
|
1003
|
+
if (existingPredicate) {
|
|
1004
|
+
await page.context().unroute(existingPredicate);
|
|
1005
|
+
}
|
|
1006
|
+
const ids = sessionIds.get(sessionId) ?? new Set();
|
|
1007
|
+
ids.add(moduleUrl);
|
|
1008
|
+
sessionIds.set(sessionId, ids);
|
|
1009
|
+
idPredicates.set(key, predicate);
|
|
1010
|
+
await page.context().route(predicate, async (route) => {
|
|
996
1011
|
if (module.type === "manual") {
|
|
997
1012
|
const exports$1 = Object.keys(await module.resolve());
|
|
998
1013
|
const body = createManualModuleSource(module.url, exports$1);
|
|
@@ -1053,8 +1068,8 @@ class PlaywrightBrowserProvider {
|
|
|
1053
1068
|
},
|
|
1054
1069
|
clear: async (sessionId) => {
|
|
1055
1070
|
const page = this.getPage(sessionId);
|
|
1056
|
-
const ids = sessionIds.get(sessionId)
|
|
1057
|
-
const promises = ids.map((id) => {
|
|
1071
|
+
const ids = sessionIds.get(sessionId) ?? new Set();
|
|
1072
|
+
const promises = [...ids].map((id) => {
|
|
1058
1073
|
const key = predicateKey(sessionId, id);
|
|
1059
1074
|
const predicate = idPredicates.get(key);
|
|
1060
1075
|
if (predicate) {
|
|
@@ -1176,18 +1191,10 @@ class PlaywrightBrowserProvider {
|
|
|
1176
1191
|
const page = this.getPage(sessionid);
|
|
1177
1192
|
const cdp = await page.context().newCDPSession(page);
|
|
1178
1193
|
return {
|
|
1179
|
-
send(
|
|
1180
|
-
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
return cdp.on(event, listener);
|
|
1184
|
-
},
|
|
1185
|
-
off(event, listener) {
|
|
1186
|
-
return cdp.off(event, listener);
|
|
1187
|
-
},
|
|
1188
|
-
once(event, listener) {
|
|
1189
|
-
return cdp.once(event, listener);
|
|
1190
|
-
}
|
|
1194
|
+
send: cdp.send.bind(cdp),
|
|
1195
|
+
on: cdp.on.bind(cdp),
|
|
1196
|
+
off: cdp.off.bind(cdp),
|
|
1197
|
+
once: cdp.once.bind(cdp)
|
|
1191
1198
|
};
|
|
1192
1199
|
}
|
|
1193
1200
|
async close() {
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vitest/browser-playwright",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "5.0.0-beta.
|
|
4
|
+
"version": "5.0.0-beta.4",
|
|
5
5
|
"description": "Browser running for Vitest using playwright",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"funding": "https://opencollective.com/vitest",
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
],
|
|
43
43
|
"peerDependencies": {
|
|
44
44
|
"playwright": "*",
|
|
45
|
-
"vitest": "5.0.0-beta.
|
|
45
|
+
"vitest": "5.0.0-beta.4"
|
|
46
46
|
},
|
|
47
47
|
"peerDependenciesMeta": {
|
|
48
48
|
"playwright": {
|
|
@@ -51,12 +51,12 @@
|
|
|
51
51
|
},
|
|
52
52
|
"dependencies": {
|
|
53
53
|
"tinyrainbow": "^3.1.0",
|
|
54
|
-
"@vitest/
|
|
55
|
-
"@vitest/
|
|
54
|
+
"@vitest/mocker": "5.0.0-beta.4",
|
|
55
|
+
"@vitest/browser": "5.0.0-beta.4"
|
|
56
56
|
},
|
|
57
57
|
"devDependencies": {
|
|
58
|
-
"playwright": "^1.
|
|
59
|
-
"vitest": "5.0.0-beta.
|
|
58
|
+
"playwright": "^1.60.0",
|
|
59
|
+
"vitest": "5.0.0-beta.4"
|
|
60
60
|
},
|
|
61
61
|
"scripts": {
|
|
62
62
|
"build": "premove dist && pnpm rollup -c",
|