@vitest/browser 5.0.0-beta.7 → 5.0.0-rc.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/dist/client/.vite/manifest.json +10 -10
- package/dist/client/__vitest_browser__/{defineProperty-WHpdAQXR.js → defineProperty-BOtRrjRA.js} +13 -1
- package/dist/client/__vitest_browser__/{orchestrator-Bdv4lWwV.js → orchestrator-DJgIeTMM.js} +1 -1
- package/dist/client/__vitest_browser__/{rrweb-snapshot-DkFyu2W8.js → rrweb-snapshot-g5vjbXoV.js} +6 -4
- package/dist/client/__vitest_browser__/{tester-CREI5Ivt.js → tester-Ck66x6M6.js} +38 -18
- package/dist/client/orchestrator.html +2 -2
- package/dist/client/tester/tester.html +2 -2
- package/dist/client/tester/trace.d.ts +3 -3
- package/dist/client.js +14 -14
- package/dist/context.js +2 -0
- package/dist/expect-element.js +30 -30
- package/dist/index.d.ts +1 -1
- package/dist/index.js +68 -42
- package/dist/locators-BTqFw5Up.js +5 -0
- package/dist/locators.js +1 -1
- package/dist/state.js +3 -1
- package/dist/types.d.ts +1 -10
- package/jest-dom.d.ts +5 -5
- package/matchers.d.ts +5 -13
- package/package.json +16 -16
- package/dist/locators-Cxk-0tRh.js +0 -5
|
@@ -1,33 +1,33 @@
|
|
|
1
1
|
{
|
|
2
|
-
"../../../../node_modules/.pnpm/rrweb-snapshot@2.
|
|
3
|
-
"file": "__vitest_browser__/rrweb-snapshot-
|
|
2
|
+
"../../../../node_modules/.pnpm/rrweb-snapshot@2.1.1_patch_hash=0b0dbc551d27a6f24438e9582c41a0ec34fd444760d383a4172013031d73c4e7/node_modules/rrweb-snapshot/dist/rrweb-snapshot.js": {
|
|
3
|
+
"file": "__vitest_browser__/rrweb-snapshot-g5vjbXoV.js",
|
|
4
4
|
"name": "rrweb-snapshot",
|
|
5
|
-
"src": "../../../../node_modules/.pnpm/rrweb-snapshot@2.
|
|
5
|
+
"src": "../../../../node_modules/.pnpm/rrweb-snapshot@2.1.1_patch_hash=0b0dbc551d27a6f24438e9582c41a0ec34fd444760d383a4172013031d73c4e7/node_modules/rrweb-snapshot/dist/rrweb-snapshot.js",
|
|
6
6
|
"isDynamicEntry": true
|
|
7
7
|
},
|
|
8
|
-
"_defineProperty-
|
|
9
|
-
"file": "__vitest_browser__/defineProperty-
|
|
8
|
+
"_defineProperty-BOtRrjRA.js": {
|
|
9
|
+
"file": "__vitest_browser__/defineProperty-BOtRrjRA.js",
|
|
10
10
|
"name": "defineProperty"
|
|
11
11
|
},
|
|
12
12
|
"orchestrator.html": {
|
|
13
|
-
"file": "__vitest_browser__/orchestrator-
|
|
13
|
+
"file": "__vitest_browser__/orchestrator-DJgIeTMM.js",
|
|
14
14
|
"name": "orchestrator",
|
|
15
15
|
"src": "orchestrator.html",
|
|
16
16
|
"isEntry": true,
|
|
17
17
|
"imports": [
|
|
18
|
-
"_defineProperty-
|
|
18
|
+
"_defineProperty-BOtRrjRA.js"
|
|
19
19
|
]
|
|
20
20
|
},
|
|
21
21
|
"tester/tester.html": {
|
|
22
|
-
"file": "__vitest_browser__/tester-
|
|
22
|
+
"file": "__vitest_browser__/tester-Ck66x6M6.js",
|
|
23
23
|
"name": "tester",
|
|
24
24
|
"src": "tester/tester.html",
|
|
25
25
|
"isEntry": true,
|
|
26
26
|
"imports": [
|
|
27
|
-
"_defineProperty-
|
|
27
|
+
"_defineProperty-BOtRrjRA.js"
|
|
28
28
|
],
|
|
29
29
|
"dynamicImports": [
|
|
30
|
-
"../../../../node_modules/.pnpm/rrweb-snapshot@2.
|
|
30
|
+
"../../../../node_modules/.pnpm/rrweb-snapshot@2.1.1_patch_hash=0b0dbc551d27a6f24438e9582c41a0ec34fd444760d383a4172013031d73c4e7/node_modules/rrweb-snapshot/dist/rrweb-snapshot.js"
|
|
31
31
|
]
|
|
32
32
|
}
|
|
33
33
|
}
|
package/dist/client/__vitest_browser__/{defineProperty-WHpdAQXR.js → defineProperty-BOtRrjRA.js}
RENAMED
|
@@ -121,6 +121,18 @@ var relative = function(from, to) {
|
|
|
121
121
|
}
|
|
122
122
|
return [..._from.map(() => ".."), ..._to].join("/");
|
|
123
123
|
};
|
|
124
|
+
var basename = function(p, extension) {
|
|
125
|
+
const segments = normalizeWindowsPath(p).split("/");
|
|
126
|
+
let lastSegment = "";
|
|
127
|
+
for (let i = segments.length - 1; i >= 0; i--) {
|
|
128
|
+
const val = segments[i];
|
|
129
|
+
if (val) {
|
|
130
|
+
lastSegment = val;
|
|
131
|
+
break;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
return extension && lastSegment.endsWith(extension) ? lastSegment.slice(0, -extension.length) : lastSegment;
|
|
135
|
+
};
|
|
124
136
|
|
|
125
137
|
//#endregion
|
|
126
138
|
//#region ../vitest/src/utils/tasks.ts
|
|
@@ -307,4 +319,4 @@ function _defineProperty(e, r, t) {
|
|
|
307
319
|
}
|
|
308
320
|
|
|
309
321
|
//#endregion
|
|
310
|
-
export { moduleRunner as a, generateFileHash as c,
|
|
322
|
+
export { moduleRunner as a, generateFileHash as c, relative as d, resolve as f, getWorkerState as i, getTestName as l, getBrowserState as n, now as o, getConfig as r, __vitePreload as s, _defineProperty as t, basename as u };
|
package/dist/client/__vitest_browser__/{orchestrator-Bdv4lWwV.js → orchestrator-DJgIeTMM.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { c as generateFileHash, n as getBrowserState, r as getConfig, t as _defineProperty
|
|
1
|
+
import { c as generateFileHash, d as relative, n as getBrowserState, r as getConfig, t as _defineProperty } from "./defineProperty-BOtRrjRA.js";
|
|
2
2
|
import { channel, client, globalChannel } from "@vitest/browser/client";
|
|
3
3
|
import { Traces } from "vitest/internal/traces";
|
|
4
4
|
|
package/dist/client/__vitest_browser__/{rrweb-snapshot-DkFyu2W8.js → rrweb-snapshot-g5vjbXoV.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
//#region ../../node_modules/.pnpm/rrweb-snapshot@2.
|
|
1
|
+
//#region ../../node_modules/.pnpm/rrweb-snapshot@2.1.1_patch_hash=0b0dbc551d27a6f24438e9582c41a0ec34fd444760d383a4172013031d73c4e7/node_modules/rrweb-snapshot/dist/rrweb-snapshot.js
|
|
2
2
|
var __defProp = Object.defineProperty;
|
|
3
3
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, {
|
|
4
4
|
enumerable: true,
|
|
@@ -358,13 +358,15 @@ function absolutifyURLs(cssText, href) {
|
|
|
358
358
|
if (URL_PROTOCOL_MATCH.test(filePath) || URL_WWW_MATCH.test(filePath)) return `url(${maybeQuote}${filePath}${maybeQuote})`;
|
|
359
359
|
if (DATA_URI.test(filePath)) return `url(${maybeQuote}${filePath}${maybeQuote})`;
|
|
360
360
|
if (filePath[0] === "/") return `url(${maybeQuote}${extractOrigin(href) + filePath}${maybeQuote})`;
|
|
361
|
-
const
|
|
362
|
-
const
|
|
361
|
+
const filePathNoHash = filePath.split("#")[0];
|
|
362
|
+
const maybeHash = filePath.substring(filePathNoHash.length);
|
|
363
|
+
const stack = href.split("#")[0].split("/");
|
|
364
|
+
const parts = filePathNoHash.split("/");
|
|
363
365
|
stack.pop();
|
|
364
366
|
for (const part of parts) if (part === ".") continue;
|
|
365
367
|
else if (part === "..") stack.pop();
|
|
366
368
|
else stack.push(part);
|
|
367
|
-
return `url(${maybeQuote}${stack.join("/")}${maybeQuote})`;
|
|
369
|
+
return `url(${maybeQuote}${stack.join("/")}${maybeHash}${maybeQuote})`;
|
|
368
370
|
});
|
|
369
371
|
}
|
|
370
372
|
function normalizeCssString(cssText, _testNoPxNorm = false) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as moduleRunner,
|
|
1
|
+
import { a as moduleRunner, f as resolve, i as getWorkerState, l as getTestName, n as getBrowserState, o as now$1, r as getConfig, s as __vitePreload, t as _defineProperty, u as basename } from "./defineProperty-BOtRrjRA.js";
|
|
2
2
|
import { channel, client, globalChannel, onCancel, registerPageMarkHandler } from "@vitest/browser/client";
|
|
3
3
|
import { Traces } from "vitest/internal/traces";
|
|
4
4
|
import { page, server, userEvent } from "vitest/browser";
|
|
@@ -33,7 +33,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
33
33
|
}) : target, mod));
|
|
34
34
|
|
|
35
35
|
//#endregion
|
|
36
|
-
//#region ../../node_modules/.pnpm/flatted@3.4.
|
|
36
|
+
//#region ../../node_modules/.pnpm/flatted@3.4.4/node_modules/flatted/esm/index.js
|
|
37
37
|
var { parse: $parse, stringify: $stringify } = JSON;
|
|
38
38
|
var { keys } = Object;
|
|
39
39
|
var Primitive = String;
|
|
@@ -898,10 +898,10 @@ function createBrowserRunner(mocker, state, coverageModule) {
|
|
|
898
898
|
const lastErrorContext = (_task$result3 = task.result) === null || _task$result3 === void 0 || (_task$result3 = _task$result3.errors) === null || _task$result3 === void 0 || (_task$result3 = _task$result3.at(-1)) === null || _task$result3 === void 0 ? void 0 : _task$result3.__vitest_error_context__;
|
|
899
899
|
if (this.config.browser.screenshotFailures && document.body.clientHeight > 0 && ((_task$result4 = task.result) === null || _task$result4 === void 0 ? void 0 : _task$result4.state) === "fail" && task.type === "test" && !(lastErrorContext && Reflect.get(lastErrorContext, "assertionName") === "toMatchScreenshot" && ((_Reflect$get = Reflect.get(lastErrorContext, "meta")) === null || _Reflect$get === void 0 ? void 0 : _Reflect$get.outcome) !== "unstable-screenshot")) {
|
|
900
900
|
var _this$config$browser$;
|
|
901
|
-
const screenshot = await page.screenshot(
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
).catch((err) => {
|
|
901
|
+
const screenshot = await page.screenshot({
|
|
902
|
+
timeout: ((_this$config$browser$ = this.config.browser.providerOptions) === null || _this$config$browser$ === void 0 ? void 0 : _this$config$browser$.actionTimeout) ?? 5e3,
|
|
903
|
+
path: resolve(this.config.attachmentsDir, "failure-screenshots", basename(task.file.filepath), `${task.fullTestName.replace(/\W/g, "-")}.png`)
|
|
904
|
+
}).catch((err) => {
|
|
905
905
|
console.error("[vitest] Failed to take a screenshot", err);
|
|
906
906
|
});
|
|
907
907
|
if (screenshot) await recordArtifact(task, {
|
|
@@ -1032,7 +1032,7 @@ function createBrowserRunner(mocker, state, coverageModule) {
|
|
|
1032
1032
|
return;
|
|
1033
1033
|
}
|
|
1034
1034
|
if (shouldTraceView) {
|
|
1035
|
-
(/* @__PURE__ */ getBrowserState()).browserTraceDomSnapshot = await __vitePreload(() => import("./rrweb-snapshot-
|
|
1035
|
+
(/* @__PURE__ */ getBrowserState()).browserTraceDomSnapshot = await __vitePreload(() => import("./rrweb-snapshot-g5vjbXoV.js"), []);
|
|
1036
1036
|
(/* @__PURE__ */ getBrowserState()).browserTraceAttempts.set(test.id, {
|
|
1037
1037
|
retry,
|
|
1038
1038
|
repeats,
|
|
@@ -1276,6 +1276,9 @@ var MockerRegistry = class {
|
|
|
1276
1276
|
};
|
|
1277
1277
|
var AutomockedModule = class AutomockedModule {
|
|
1278
1278
|
constructor(raw, id, url) {
|
|
1279
|
+
_defineProperty(this, "raw", void 0);
|
|
1280
|
+
_defineProperty(this, "id", void 0);
|
|
1281
|
+
_defineProperty(this, "url", void 0);
|
|
1279
1282
|
_defineProperty(this, "type", "automock");
|
|
1280
1283
|
this.raw = raw;
|
|
1281
1284
|
this.id = id;
|
|
@@ -1295,6 +1298,9 @@ var AutomockedModule = class AutomockedModule {
|
|
|
1295
1298
|
};
|
|
1296
1299
|
var AutospiedModule = class AutospiedModule {
|
|
1297
1300
|
constructor(raw, id, url) {
|
|
1301
|
+
_defineProperty(this, "raw", void 0);
|
|
1302
|
+
_defineProperty(this, "id", void 0);
|
|
1303
|
+
_defineProperty(this, "url", void 0);
|
|
1298
1304
|
_defineProperty(this, "type", "autospy");
|
|
1299
1305
|
this.raw = raw;
|
|
1300
1306
|
this.id = id;
|
|
@@ -1314,6 +1320,10 @@ var AutospiedModule = class AutospiedModule {
|
|
|
1314
1320
|
};
|
|
1315
1321
|
var RedirectedModule = class RedirectedModule {
|
|
1316
1322
|
constructor(raw, id, url, redirect) {
|
|
1323
|
+
_defineProperty(this, "raw", void 0);
|
|
1324
|
+
_defineProperty(this, "id", void 0);
|
|
1325
|
+
_defineProperty(this, "url", void 0);
|
|
1326
|
+
_defineProperty(this, "redirect", void 0);
|
|
1317
1327
|
_defineProperty(this, "type", "redirect");
|
|
1318
1328
|
this.raw = raw;
|
|
1319
1329
|
this.id = id;
|
|
@@ -1335,6 +1345,10 @@ var RedirectedModule = class RedirectedModule {
|
|
|
1335
1345
|
};
|
|
1336
1346
|
var ManualMockedModule = class ManualMockedModule {
|
|
1337
1347
|
constructor(raw, id, url, factory) {
|
|
1348
|
+
_defineProperty(this, "raw", void 0);
|
|
1349
|
+
_defineProperty(this, "id", void 0);
|
|
1350
|
+
_defineProperty(this, "url", void 0);
|
|
1351
|
+
_defineProperty(this, "factory", void 0);
|
|
1338
1352
|
_defineProperty(this, "cache", void 0);
|
|
1339
1353
|
_defineProperty(this, "type", "manual");
|
|
1340
1354
|
this.raw = raw;
|
|
@@ -1344,20 +1358,20 @@ var ManualMockedModule = class ManualMockedModule {
|
|
|
1344
1358
|
}
|
|
1345
1359
|
resolve() {
|
|
1346
1360
|
if (this.cache) return this.cache;
|
|
1347
|
-
let exports
|
|
1361
|
+
let exports;
|
|
1348
1362
|
try {
|
|
1349
|
-
exports
|
|
1363
|
+
exports = this.factory();
|
|
1350
1364
|
} catch (err) {
|
|
1351
1365
|
throw createHelpfulError(err);
|
|
1352
1366
|
}
|
|
1353
|
-
if (typeof exports
|
|
1367
|
+
if (typeof exports === "object" && typeof (exports === null || exports === void 0 ? void 0 : exports.then) === "function") return exports.then((result) => {
|
|
1354
1368
|
assertValidExports(this.raw, result);
|
|
1355
1369
|
return this.cache = result;
|
|
1356
1370
|
}, (error) => {
|
|
1357
1371
|
throw createHelpfulError(error);
|
|
1358
1372
|
});
|
|
1359
|
-
assertValidExports(this.raw, exports
|
|
1360
|
-
return this.cache = exports
|
|
1373
|
+
assertValidExports(this.raw, exports);
|
|
1374
|
+
return this.cache = exports;
|
|
1361
1375
|
}
|
|
1362
1376
|
static fromJSON(data, factory) {
|
|
1363
1377
|
return new ManualMockedModule(data.raw, data.id, data.url, factory);
|
|
@@ -1376,8 +1390,8 @@ function createHelpfulError(cause) {
|
|
|
1376
1390
|
error.cause = cause;
|
|
1377
1391
|
return error;
|
|
1378
1392
|
}
|
|
1379
|
-
function assertValidExports(raw, exports
|
|
1380
|
-
if (exports
|
|
1393
|
+
function assertValidExports(raw, exports) {
|
|
1394
|
+
if (exports === null || typeof exports !== "object" || Array.isArray(exports)) throw new TypeError(`[vitest] vi.mock("${raw}", factory?: () => unknown) is not returning an object. Did you mean to return an object with a "default" key?`);
|
|
1381
1395
|
}
|
|
1382
1396
|
|
|
1383
1397
|
//#endregion
|
|
@@ -1446,14 +1460,14 @@ function mockObject(options, object, mockExports = {}) {
|
|
|
1446
1460
|
continue;
|
|
1447
1461
|
}
|
|
1448
1462
|
if (options.type === "autospy" && type === "Module") {
|
|
1449
|
-
const exports
|
|
1450
|
-
Object.defineProperty(exports
|
|
1463
|
+
const exports = Object.create(null);
|
|
1464
|
+
Object.defineProperty(exports, Symbol.toStringTag, {
|
|
1451
1465
|
value: "Module",
|
|
1452
1466
|
configurable: true,
|
|
1453
1467
|
writable: true
|
|
1454
1468
|
});
|
|
1455
1469
|
try {
|
|
1456
|
-
newContainer[property] = exports
|
|
1470
|
+
newContainer[property] = exports;
|
|
1457
1471
|
} catch {
|
|
1458
1472
|
continue;
|
|
1459
1473
|
}
|
|
@@ -1652,6 +1666,10 @@ var REGEXP_VITEST = new RegExp(`vitest=\\d{${NOW_LENGTH}}`);
|
|
|
1652
1666
|
var { now } = Date;
|
|
1653
1667
|
var ModuleMocker = class {
|
|
1654
1668
|
constructor(interceptor, rpc, createMockInstance, config) {
|
|
1669
|
+
_defineProperty(this, "interceptor", void 0);
|
|
1670
|
+
_defineProperty(this, "rpc", void 0);
|
|
1671
|
+
_defineProperty(this, "createMockInstance", void 0);
|
|
1672
|
+
_defineProperty(this, "config", void 0);
|
|
1655
1673
|
_defineProperty(this, "registry", new MockerRegistry());
|
|
1656
1674
|
_defineProperty(this, "queue", /* @__PURE__ */ new Set());
|
|
1657
1675
|
_defineProperty(this, "mockedIds", /* @__PURE__ */ new Set());
|
|
@@ -1942,8 +1960,10 @@ var traces = new Traces({
|
|
|
1942
1960
|
});
|
|
1943
1961
|
var rootTesterSpan;
|
|
1944
1962
|
(/* @__PURE__ */ getBrowserState()).traces = traces;
|
|
1963
|
+
var isEmbedded = window.self !== window.top;
|
|
1945
1964
|
channel.addEventListener("message", async (e) => {
|
|
1946
1965
|
const data = e.data;
|
|
1966
|
+
if (!isEmbedded) return;
|
|
1947
1967
|
if (!isEvent(data)) {
|
|
1948
1968
|
await client.waitForConnection();
|
|
1949
1969
|
unhandledError(/* @__PURE__ */ new Error(`Unknown message: ${JSON.stringify(e.data)}`), "Unknown Iframe Message");
|
|
@@ -2010,7 +2030,7 @@ var commands = new CommandsManager();
|
|
|
2010
2030
|
(/* @__PURE__ */ getBrowserState()).browserTraceAttempts = /* @__PURE__ */ new Map();
|
|
2011
2031
|
(/* @__PURE__ */ getBrowserState()).iframeId = iframeId;
|
|
2012
2032
|
registerPageMarkHandler((name, options) => page.mark(name, options));
|
|
2013
|
-
channel.postMessage({
|
|
2033
|
+
if (isEmbedded) channel.postMessage({
|
|
2014
2034
|
event: "ready",
|
|
2015
2035
|
iframeId
|
|
2016
2036
|
});
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
{__VITEST_INJECTOR__}
|
|
27
27
|
{__VITEST_ERROR_CATCHER__}
|
|
28
28
|
{__VITEST_SCRIPTS__}
|
|
29
|
-
<script type="module" crossorigin src="/__vitest_browser__/orchestrator-
|
|
30
|
-
<link rel="modulepreload" crossorigin href="/__vitest_browser__/defineProperty-
|
|
29
|
+
<script type="module" crossorigin src="/__vitest_browser__/orchestrator-DJgIeTMM.js"></script>
|
|
30
|
+
<link rel="modulepreload" crossorigin href="/__vitest_browser__/defineProperty-BOtRrjRA.js">
|
|
31
31
|
</head>
|
|
32
32
|
<body>
|
|
33
33
|
<div id="vitest-tester"></div>
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
<link rel="icon" href="{__VITEST_FAVICON__}" type="image/svg+xml">
|
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
7
7
|
<title>Vitest Browser Tester</title>
|
|
8
|
-
<script type="module" crossorigin src="/__vitest_browser__/tester-
|
|
9
|
-
<link rel="modulepreload" crossorigin href="/__vitest_browser__/defineProperty-
|
|
8
|
+
<script type="module" crossorigin src="/__vitest_browser__/tester-Ck66x6M6.js"></script>
|
|
9
|
+
<link rel="modulepreload" crossorigin href="/__vitest_browser__/defineProperty-BOtRrjRA.js">
|
|
10
10
|
</head>
|
|
11
11
|
<body>
|
|
12
12
|
</body>
|
|
@@ -8,9 +8,9 @@ export interface BrowserTraceData {
|
|
|
8
8
|
entries: BrowserTraceEntry[];
|
|
9
9
|
}
|
|
10
10
|
export type BrowserTraceEntryStatus = "pass" | "fail";
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
type BrowserTraceEntryRangePhase = "start" | "end";
|
|
12
|
+
type BrowserTraceSelectorResolution = "matched" | "missing" | "error";
|
|
13
|
+
interface BrowserTraceEntryRange {
|
|
14
14
|
id: string;
|
|
15
15
|
phase: BrowserTraceEntryRangePhase;
|
|
16
16
|
}
|
package/dist/client.js
CHANGED
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
//#region src/messages.ts
|
|
2
|
-
const TYPE_REQUEST = "q";
|
|
3
|
-
const TYPE_RESPONSE = "s";
|
|
4
|
-
|
|
5
|
-
//#endregion
|
|
6
1
|
//#region src/utils.ts
|
|
7
2
|
function createPromiseWithResolvers() {
|
|
8
3
|
let resolve;
|
|
@@ -25,7 +20,6 @@ function nanoid(size = 21) {
|
|
|
25
20
|
return id;
|
|
26
21
|
}
|
|
27
22
|
|
|
28
|
-
//#endregion
|
|
29
23
|
//#region src/main.ts
|
|
30
24
|
const DEFAULT_TIMEOUT = 6e4;
|
|
31
25
|
const defaultSerialize = (i) => i;
|
|
@@ -42,7 +36,7 @@ function createBirpc($functions, options) {
|
|
|
42
36
|
const req = {
|
|
43
37
|
m: method,
|
|
44
38
|
a: args,
|
|
45
|
-
t:
|
|
39
|
+
t: "q"
|
|
46
40
|
};
|
|
47
41
|
if (optional) req.o = true;
|
|
48
42
|
const send = async (_req) => post(serialize(_req));
|
|
@@ -96,7 +90,7 @@ function createBirpc($functions, options) {
|
|
|
96
90
|
$call: (method, ...args) => _call(method, args, false),
|
|
97
91
|
$callOptional: (method, ...args) => _call(method, args, false, true),
|
|
98
92
|
$callEvent: (method, ...args) => _call(method, args, true),
|
|
99
|
-
$callRaw: (options
|
|
93
|
+
$callRaw: (options) => _call(options.method, options.args, options.event, options.optional),
|
|
100
94
|
$rejectPendingCalls,
|
|
101
95
|
get $closed() {
|
|
102
96
|
return $closed;
|
|
@@ -108,7 +102,7 @@ function createBirpc($functions, options) {
|
|
|
108
102
|
$functions
|
|
109
103
|
};
|
|
110
104
|
if (proxify) rpc = new Proxy({}, { get(_, method) {
|
|
111
|
-
if (Object.
|
|
105
|
+
if (Object.hasOwn(builtinMethods, method)) return builtinMethods[method];
|
|
112
106
|
if (method === "then" && !eventNames.includes("then") && !("then" in $functions)) return void 0;
|
|
113
107
|
const sendEvent = (...args) => _call(method, args, true);
|
|
114
108
|
if (eventNames.includes(method)) {
|
|
@@ -152,7 +146,7 @@ function createBirpc($functions, options) {
|
|
|
152
146
|
if (options.onGeneralError?.call(rpc, e) !== true) throw e;
|
|
153
147
|
return;
|
|
154
148
|
}
|
|
155
|
-
if (msg.t ===
|
|
149
|
+
if (msg.t === "q") {
|
|
156
150
|
const { m: method, a: args, o: optional } = msg;
|
|
157
151
|
let result, error;
|
|
158
152
|
let fn = await (resolver ? resolver.call(rpc, method, $functions[method]) : $functions[method]);
|
|
@@ -169,7 +163,7 @@ function createBirpc($functions, options) {
|
|
|
169
163
|
}
|
|
170
164
|
if (!error) try {
|
|
171
165
|
await post(serialize({
|
|
172
|
-
t:
|
|
166
|
+
t: "s",
|
|
173
167
|
i: msg.i,
|
|
174
168
|
r: result
|
|
175
169
|
}), ...extra);
|
|
@@ -180,7 +174,7 @@ function createBirpc($functions, options) {
|
|
|
180
174
|
}
|
|
181
175
|
try {
|
|
182
176
|
await post(serialize({
|
|
183
|
-
t:
|
|
177
|
+
t: "s",
|
|
184
178
|
i: msg.i,
|
|
185
179
|
e: error
|
|
186
180
|
}), ...extra);
|
|
@@ -336,6 +330,12 @@ const ENTRY_URL = `${location.protocol === "https:" ? "wss:" : "ws:"}//${HOST}/_
|
|
|
336
330
|
const onCancelCallbacks = [];
|
|
337
331
|
function onCancel(callback) {
|
|
338
332
|
onCancelCallbacks.push(callback);
|
|
333
|
+
return () => {
|
|
334
|
+
const index = onCancelCallbacks.indexOf(callback);
|
|
335
|
+
if (index !== -1) {
|
|
336
|
+
onCancelCallbacks.splice(index, 1);
|
|
337
|
+
}
|
|
338
|
+
};
|
|
339
339
|
}
|
|
340
340
|
let pageMarkHandler = null;
|
|
341
341
|
function registerPageMarkHandler(handler) {
|
|
@@ -405,8 +405,8 @@ function createClient() {
|
|
|
405
405
|
responseId
|
|
406
406
|
};
|
|
407
407
|
}
|
|
408
|
-
const exports
|
|
409
|
-
const keys = Object.keys(exports
|
|
408
|
+
const exports = await mocker.resolveFactoryModule(url);
|
|
409
|
+
const keys = Object.keys(exports);
|
|
410
410
|
return {
|
|
411
411
|
url,
|
|
412
412
|
keys,
|
package/dist/context.js
CHANGED
|
@@ -372,6 +372,7 @@ function createUserEvent(__tl_user_event_base__, options) {
|
|
|
372
372
|
upload(element, files, options) {
|
|
373
373
|
return convertToLocator(element).upload(files, options);
|
|
374
374
|
},
|
|
375
|
+
// non userEvent events, but still useful
|
|
375
376
|
fill(element, text, options) {
|
|
376
377
|
return convertToLocator(element).fill(text, options);
|
|
377
378
|
},
|
|
@@ -380,6 +381,7 @@ function createUserEvent(__tl_user_event_base__, options) {
|
|
|
380
381
|
const targetLocator = convertToLocator(target);
|
|
381
382
|
return sourceLocator.dropTo(targetLocator, options);
|
|
382
383
|
},
|
|
384
|
+
// testing-library user-event
|
|
383
385
|
type(element, text, options) {
|
|
384
386
|
return ensureAwaited(async (error) => {
|
|
385
387
|
const serializedElement = await serializeElement(element, options);
|