@vitest/browser 4.1.0-beta.3 → 4.1.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/context.d.ts +1 -1
- package/dist/client/.vite/manifest.json +6 -6
- package/dist/client/__vitest__/assets/{index-DC7speYS.css → index-C71EXv4T.css} +1 -1
- package/dist/client/__vitest__/assets/index-CPanfHPD.js +63 -0
- package/dist/client/__vitest__/index.html +2 -2
- package/dist/client/__vitest_browser__/{orchestrator-fh7lJzlE.js → orchestrator-CXs6qrFe.js} +1 -1
- package/dist/client/__vitest_browser__/{tester-CH-bVWK6.js → tester-CgiVtoKi.js} +15 -8
- package/dist/client/__vitest_browser__/{utils-uxqdqUz8.js → utils-C2ISqq1C.js} +2 -2
- package/dist/client/orchestrator.html +2 -2
- package/dist/client/tester/tester.html +2 -2
- package/dist/index.js +6 -70
- package/package.json +6 -6
- package/dist/client/__vitest__/assets/index-BcP0bNv8.js +0 -59
|
@@ -23,8 +23,8 @@
|
|
|
23
23
|
})();
|
|
24
24
|
</script>
|
|
25
25
|
<!-- !LOAD_METADATA! -->
|
|
26
|
-
<script type="module" src="./assets/index-
|
|
27
|
-
<link rel="stylesheet" href="./assets/index-
|
|
26
|
+
<script type="module" src="./assets/index-CPanfHPD.js"></script>
|
|
27
|
+
<link rel="stylesheet" href="./assets/index-C71EXv4T.css">
|
|
28
28
|
</head>
|
|
29
29
|
<body>
|
|
30
30
|
<div id="app"></div>
|
package/dist/client/__vitest_browser__/{orchestrator-fh7lJzlE.js → orchestrator-CXs6qrFe.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { g as getBrowserState, a as getConfig, r as relative, b as generateFileHash } from "./utils-
|
|
1
|
+
import { g as getBrowserState, a as getConfig, r as relative, b as generateFileHash } from "./utils-C2ISqq1C.js";
|
|
2
2
|
import { channel, globalChannel, client } from "@vitest/browser/client";
|
|
3
3
|
import { Traces } from "vitest/internal/browser";
|
|
4
4
|
// @__NO_SIDE_EFFECTS__
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { c as resolve, m as moduleRunner, d as getWorkerState, g as getBrowserState, e as getTestName, a as getConfig } from "./utils-
|
|
1
|
+
import { c as resolve, m as moduleRunner, d as getWorkerState, g as getBrowserState, e as getTestName, a as getConfig } from "./utils-C2ISqq1C.js";
|
|
2
2
|
import { onCancel, globalChannel, channel, client } from "@vitest/browser/client";
|
|
3
3
|
import { userEvent, page, server } from "vitest/browser";
|
|
4
4
|
import { getSafeTimers, DecodedMap as DecodedMap$1, getOriginalPosition as getOriginalPosition$1, loadDiffConfig, loadSnapshotSerializers, takeCoverageInsideWorker, browserFormat, Traces, setupCommonEnv, startCoverageInsideWorker, stopCoverageInsideWorker, startTests, collectTests, SpyModule } from "vitest/internal/browser";
|
|
5
|
-
import { TestRunner, BenchmarkRunner } from "vitest";
|
|
5
|
+
import { TestRunner, BenchmarkRunner, recordArtifact } from "vitest";
|
|
6
6
|
const scriptRel = "modulepreload";
|
|
7
7
|
const assetsURL = function(dep) {
|
|
8
8
|
return "/" + dep;
|
|
@@ -684,7 +684,11 @@ function createStackString(stacks) {
|
|
|
684
684
|
}
|
|
685
685
|
function parseStacktrace(stack, options = {}) {
|
|
686
686
|
const { ignoreStackEntries = stackIgnorePatterns } = options;
|
|
687
|
-
|
|
687
|
+
let stacks = !CHROME_IE_STACK_REGEXP.test(stack) ? parseFFOrSafariStackTrace(stack) : parseV8Stacktrace(stack);
|
|
688
|
+
const helperIndex = stacks.findLastIndex((s) => s.method === "__VITEST_HELPER__" || s.method === "async*__VITEST_HELPER__");
|
|
689
|
+
if (helperIndex >= 0) {
|
|
690
|
+
stacks = stacks.slice(helperIndex + 1);
|
|
691
|
+
}
|
|
688
692
|
return stacks.map((stack2) => {
|
|
689
693
|
var _a;
|
|
690
694
|
if (options.getUrlId) {
|
|
@@ -737,7 +741,7 @@ class DecodedMap {
|
|
|
737
741
|
this._decodedMemo = memoizedState();
|
|
738
742
|
this.url = from;
|
|
739
743
|
this.resolvedSources = (sources || []).map(
|
|
740
|
-
(s) => resolve(s || ""
|
|
744
|
+
(s) => resolve(from, "..", s || "")
|
|
741
745
|
);
|
|
742
746
|
}
|
|
743
747
|
_encoded;
|
|
@@ -921,7 +925,10 @@ function createBrowserRunner(runnerClass, mocker, state, coverageModule) {
|
|
|
921
925
|
console.error("[vitest] Failed to take a screenshot", err);
|
|
922
926
|
});
|
|
923
927
|
if (screenshot) {
|
|
924
|
-
task
|
|
928
|
+
await recordArtifact(task, {
|
|
929
|
+
type: "internal:failureScreenshot",
|
|
930
|
+
attachments: [{ contentType: "image/png", path: screenshot, originalPath: screenshot }]
|
|
931
|
+
});
|
|
925
932
|
}
|
|
926
933
|
}
|
|
927
934
|
};
|
|
@@ -1395,7 +1402,7 @@ class ManualMockedModule {
|
|
|
1395
1402
|
} catch (err) {
|
|
1396
1403
|
throw createHelpfulError(err);
|
|
1397
1404
|
}
|
|
1398
|
-
if (typeof exports$1 === "object" && typeof (exports$1
|
|
1405
|
+
if (typeof exports$1 === "object" && typeof (exports$1 == null ? void 0 : exports$1.then) === "function") {
|
|
1399
1406
|
return exports$1.then((result) => {
|
|
1400
1407
|
assertValidExports(this.raw, result);
|
|
1401
1408
|
return this.cache = result;
|
|
@@ -1802,7 +1809,7 @@ class ModuleMocker {
|
|
|
1802
1809
|
return mod;
|
|
1803
1810
|
}
|
|
1804
1811
|
const m = mod.default;
|
|
1805
|
-
return (m
|
|
1812
|
+
return (m == null ? void 0 : m.__esModule) ? m : {
|
|
1806
1813
|
...typeof m === "object" && !Array.isArray(m) || typeof m === "function" ? m : {},
|
|
1807
1814
|
default: m
|
|
1808
1815
|
};
|
|
@@ -1859,7 +1866,7 @@ class ModuleMocker {
|
|
|
1859
1866
|
return { callstack: null };
|
|
1860
1867
|
}
|
|
1861
1868
|
queueMock(rawId, importer, factoryOrOptions) {
|
|
1862
|
-
const promise = this.rpc.resolveMock(rawId, importer, { mock: typeof factoryOrOptions === "function" ? "factory" : (factoryOrOptions
|
|
1869
|
+
const promise = this.rpc.resolveMock(rawId, importer, { mock: typeof factoryOrOptions === "function" ? "factory" : (factoryOrOptions == null ? void 0 : factoryOrOptions.spy) ? "spy" : "auto" }).then(async ({ redirectUrl, resolvedId, resolvedUrl, needsInterop, mockType }) => {
|
|
1863
1870
|
const mockUrl = this.resolveMockPath(cleanVersion(resolvedUrl));
|
|
1864
1871
|
this.mockedIds.add(resolvedId);
|
|
1865
1872
|
const factory = typeof factoryOrOptions === "function" ? async () => {
|
|
@@ -159,9 +159,9 @@ function generateFileHash(file, projectName) {
|
|
|
159
159
|
function getNames(task) {
|
|
160
160
|
const names = [task.name];
|
|
161
161
|
let current = task;
|
|
162
|
-
while (current
|
|
162
|
+
while (current == null ? void 0 : current.suite) {
|
|
163
163
|
current = current.suite;
|
|
164
|
-
if (current
|
|
164
|
+
if (current == null ? void 0 : current.name) {
|
|
165
165
|
names.unshift(current.name);
|
|
166
166
|
}
|
|
167
167
|
}
|
|
@@ -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__/utils-
|
|
29
|
+
<script type="module" crossorigin src="/__vitest_browser__/orchestrator-CXs6qrFe.js"></script>
|
|
30
|
+
<link rel="modulepreload" crossorigin href="/__vitest_browser__/utils-C2ISqq1C.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__/utils-
|
|
8
|
+
<script type="module" crossorigin src="/__vitest_browser__/tester-CgiVtoKi.js"></script>
|
|
9
|
+
<link rel="modulepreload" crossorigin href="/__vitest_browser__/utils-C2ISqq1C.js">
|
|
10
10
|
</head>
|
|
11
11
|
<body>
|
|
12
12
|
</body>
|
package/dist/index.js
CHANGED
|
@@ -3,12 +3,11 @@ import { dynamicImportPlugin, ServerMockResolver, interceptorPlugin } from '@vit
|
|
|
3
3
|
import c from 'tinyrainbow';
|
|
4
4
|
import { isValidApiRequest, isFileServingAllowed, distDir, resolveApiServerConfig, resolveFsAllow, rolldownVersion, isFileLoadingAllowed, createDebugger, createViteLogger, createViteServer } from 'vitest/node';
|
|
5
5
|
import { fileURLToPath } from 'node:url';
|
|
6
|
-
import fs, { readFileSync,
|
|
6
|
+
import fs, { readFileSync, createReadStream, promises, existsSync } from 'node:fs';
|
|
7
7
|
import { createRequire } from 'node:module';
|
|
8
8
|
import { slash as slash$1, toArray, deepMerge } from '@vitest/utils/helpers';
|
|
9
9
|
import MagicString from 'magic-string';
|
|
10
10
|
import sirv from 'sirv';
|
|
11
|
-
import { coverageConfigDefaults } from 'vitest/config';
|
|
12
11
|
import crypto from 'node:crypto';
|
|
13
12
|
import { readFile as readFile$1, mkdir, writeFile as writeFile$1 } from 'node:fs/promises';
|
|
14
13
|
import { parseErrorStacktrace, parseStacktrace } from '@vitest/utils/source-map';
|
|
@@ -18,7 +17,7 @@ import { PNG } from 'pngjs';
|
|
|
18
17
|
import pm from 'pixelmatch';
|
|
19
18
|
import { WebSocketServer } from 'ws';
|
|
20
19
|
|
|
21
|
-
var version = "4.1.0-beta.
|
|
20
|
+
var version = "4.1.0-beta.4";
|
|
22
21
|
|
|
23
22
|
const _DRIVE_LETTER_START_RE = /^[A-Za-z]:\//;
|
|
24
23
|
function normalizeWindowsPath(input = "") {
|
|
@@ -942,13 +941,10 @@ var BrowserPlugin = (parentServer, base = "/") => {
|
|
|
942
941
|
res.write(content, "utf-8");
|
|
943
942
|
res.end();
|
|
944
943
|
});
|
|
945
|
-
|
|
946
|
-
const
|
|
947
|
-
if (
|
|
948
|
-
|
|
949
|
-
}
|
|
950
|
-
if (coverageFolder) {
|
|
951
|
-
server.middlewares.use(coveragePath, sirv(coverageFolder[0], {
|
|
944
|
+
// Serve coverage HTML at ./coverage if configured
|
|
945
|
+
const coverageHtmlDir = parentServer.vitest.config.coverage?.htmlDir;
|
|
946
|
+
if (coverageHtmlDir) {
|
|
947
|
+
server.middlewares.use("/__vitest_test__/coverage", sirv(coverageHtmlDir, {
|
|
952
948
|
single: true,
|
|
953
949
|
dev: true,
|
|
954
950
|
setHeaders: (res) => {
|
|
@@ -962,46 +958,6 @@ var BrowserPlugin = (parentServer, base = "/") => {
|
|
|
962
958
|
}
|
|
963
959
|
}));
|
|
964
960
|
}
|
|
965
|
-
const uiEnabled = parentServer.config.browser.ui;
|
|
966
|
-
if (uiEnabled) {
|
|
967
|
-
// eslint-disable-next-line prefer-arrow-callback
|
|
968
|
-
server.middlewares.use(`${base}__screenshot-error`, function vitestBrowserScreenshotError(req, res) {
|
|
969
|
-
if (!req.url) {
|
|
970
|
-
res.statusCode = 404;
|
|
971
|
-
res.end();
|
|
972
|
-
return;
|
|
973
|
-
}
|
|
974
|
-
const url = new URL(req.url, "http://localhost");
|
|
975
|
-
const id = url.searchParams.get("id");
|
|
976
|
-
if (!id) {
|
|
977
|
-
res.statusCode = 404;
|
|
978
|
-
res.end();
|
|
979
|
-
return;
|
|
980
|
-
}
|
|
981
|
-
const task = parentServer.vitest.state.idMap.get(id);
|
|
982
|
-
const file = task?.meta.failScreenshotPath;
|
|
983
|
-
if (!file) {
|
|
984
|
-
res.statusCode = 404;
|
|
985
|
-
res.end();
|
|
986
|
-
return;
|
|
987
|
-
}
|
|
988
|
-
let stat;
|
|
989
|
-
try {
|
|
990
|
-
stat = lstatSync(file);
|
|
991
|
-
} catch {}
|
|
992
|
-
if (!stat?.isFile()) {
|
|
993
|
-
res.statusCode = 404;
|
|
994
|
-
res.end();
|
|
995
|
-
return;
|
|
996
|
-
}
|
|
997
|
-
const ext = extname(file);
|
|
998
|
-
const buffer = readFileSync(file);
|
|
999
|
-
res.setHeader("Cache-Control", "public,max-age=0,must-revalidate");
|
|
1000
|
-
res.setHeader("Content-Length", buffer.length);
|
|
1001
|
-
res.setHeader("Content-Type", ext === "jpeg" || ext === "jpg" ? "image/jpeg" : ext === "webp" ? "image/webp" : "image/png");
|
|
1002
|
-
res.end(buffer);
|
|
1003
|
-
});
|
|
1004
|
-
}
|
|
1005
961
|
server.middlewares.use((req, res, next) => {
|
|
1006
962
|
// 9000 mega head move
|
|
1007
963
|
// Vite always caches optimized dependencies, but users might mock
|
|
@@ -1412,26 +1368,6 @@ function getRequire() {
|
|
|
1412
1368
|
}
|
|
1413
1369
|
return _require;
|
|
1414
1370
|
}
|
|
1415
|
-
function resolveCoverageFolder(vitest) {
|
|
1416
|
-
const options = vitest.config;
|
|
1417
|
-
const coverageOptions = vitest._coverageOptions;
|
|
1418
|
-
const htmlReporter = coverageOptions?.enabled ? toArray(options.coverage.reporter).find((reporter) => {
|
|
1419
|
-
if (typeof reporter === "string") {
|
|
1420
|
-
return reporter === "html";
|
|
1421
|
-
}
|
|
1422
|
-
return reporter[0] === "html";
|
|
1423
|
-
}) : undefined;
|
|
1424
|
-
if (!htmlReporter) {
|
|
1425
|
-
return undefined;
|
|
1426
|
-
}
|
|
1427
|
-
// reportsDirectory not resolved yet
|
|
1428
|
-
const root = resolve(options.root || process.cwd(), coverageOptions.reportsDirectory || coverageConfigDefaults.reportsDirectory);
|
|
1429
|
-
const subdir = Array.isArray(htmlReporter) && htmlReporter.length > 1 && "subdir" in htmlReporter[1] ? htmlReporter[1].subdir : undefined;
|
|
1430
|
-
if (!subdir || typeof subdir !== "string") {
|
|
1431
|
-
return [root, `/${basename(root)}/`];
|
|
1432
|
-
}
|
|
1433
|
-
return [resolve(root, subdir), `/${basename(root)}/${subdir}/`];
|
|
1434
|
-
}
|
|
1435
1371
|
const postfixRE = /[?#].*$/;
|
|
1436
1372
|
function cleanUrl(url) {
|
|
1437
1373
|
return url.replace(postfixRE, "");
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vitest/browser",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "4.1.0-beta.
|
|
4
|
+
"version": "4.1.0-beta.4",
|
|
5
5
|
"description": "Browser running for Vitest",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"funding": "https://opencollective.com/vitest",
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"providers"
|
|
52
52
|
],
|
|
53
53
|
"peerDependencies": {
|
|
54
|
-
"vitest": "4.1.0-beta.
|
|
54
|
+
"vitest": "4.1.0-beta.4"
|
|
55
55
|
},
|
|
56
56
|
"dependencies": {
|
|
57
57
|
"magic-string": "^0.30.21",
|
|
@@ -60,8 +60,8 @@
|
|
|
60
60
|
"sirv": "^3.0.2",
|
|
61
61
|
"tinyrainbow": "^3.0.3",
|
|
62
62
|
"ws": "^8.19.0",
|
|
63
|
-
"@vitest/mocker": "4.1.0-beta.
|
|
64
|
-
"@vitest/utils": "4.1.0-beta.
|
|
63
|
+
"@vitest/mocker": "4.1.0-beta.4",
|
|
64
|
+
"@vitest/utils": "4.1.0-beta.4"
|
|
65
65
|
},
|
|
66
66
|
"devDependencies": {
|
|
67
67
|
"@opentelemetry/api": "^1.9.0",
|
|
@@ -73,8 +73,8 @@
|
|
|
73
73
|
"ivya": "^1.7.1",
|
|
74
74
|
"mime": "^4.1.0",
|
|
75
75
|
"pathe": "^2.0.3",
|
|
76
|
-
"
|
|
77
|
-
"vitest": "4.1.0-beta.
|
|
76
|
+
"vitest": "4.1.0-beta.4",
|
|
77
|
+
"@vitest/runner": "4.1.0-beta.4"
|
|
78
78
|
},
|
|
79
79
|
"scripts": {
|
|
80
80
|
"typecheck": "tsc -p ./src/client/tsconfig.json --noEmit",
|