@vitest/browser 2.1.1 → 2.1.3
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/context.js +17 -1
- package/dist/client/.vite/manifest.json +2 -2
- package/dist/client/__vitest__/assets/{index-DsWp6aFQ.js → index-CADIw8eX.js} +5 -5
- package/dist/client/__vitest__/index.html +1 -1
- package/dist/client/__vitest_browser__/orchestrator-BCPid0xo.js +1099 -0
- package/dist/client/__vitest_browser__/{tester-Bm6k0JOu.js → tester-DZCtFstH.js} +11 -3
- package/dist/client/orchestrator.html +1 -1
- package/dist/client/tester/tester.html +1 -1
- package/dist/index.js +30 -9
- package/dist/locators/preview.js +1 -1
- package/matchers.d.ts +1 -1
- package/package.json +9 -9
- package/dist/client/__vitest_browser__/orchestrator-qtq9EW1J.js +0 -541
|
@@ -7,7 +7,7 @@ import { page } from "@vitest/browser/context";
|
|
|
7
7
|
import { globalChannel, channel, client, onCancel, waitForChannel } from "@vitest/browser/client";
|
|
8
8
|
import { getSafeTimers, stringify, format, TraceMap, originalPositionFor } from "vitest/utils";
|
|
9
9
|
import { VitestTestRunner, NodeBenchmarkRunner } from "vitest/runners";
|
|
10
|
-
import { expect } from "vitest";
|
|
10
|
+
import { expect, chai } from "vitest";
|
|
11
11
|
function mockObject(options, object, mockExports = {}) {
|
|
12
12
|
const finalizers = new Array();
|
|
13
13
|
const refs = new RefTracker();
|
|
@@ -782,6 +782,7 @@ function createBrowserRunner(runnerClass, mocker, state, coverageModule) {
|
|
|
782
782
|
if (coverage) {
|
|
783
783
|
await rpc$1().onAfterSuiteRun({
|
|
784
784
|
coverage,
|
|
785
|
+
testFiles: files.map((file) => file.name),
|
|
785
786
|
transformMode: "browser",
|
|
786
787
|
projectName: this.config.name
|
|
787
788
|
});
|
|
@@ -880,11 +881,13 @@ class VitestBrowserClientMocker extends ModuleMocker {
|
|
|
880
881
|
const exports = Object.keys(module);
|
|
881
882
|
channel.postMessage({
|
|
882
883
|
type: "mock-factory:response",
|
|
884
|
+
eventId: e.data.eventId,
|
|
883
885
|
exports
|
|
884
886
|
});
|
|
885
887
|
} catch (err) {
|
|
886
888
|
channel.postMessage({
|
|
887
889
|
type: "mock-factory:error",
|
|
890
|
+
eventId: e.data.eventId,
|
|
888
891
|
error: {
|
|
889
892
|
name: err.name,
|
|
890
893
|
message: err.message,
|
|
@@ -12049,10 +12052,15 @@ async function setupExpectDom() {
|
|
|
12049
12052
|
if (!(elementOrLocator instanceof Element) && !("element" in elementOrLocator)) {
|
|
12050
12053
|
throw new Error(`Invalid element or locator: ${elementOrLocator}. Expected an instance of Element or Locator, received ${typeof elementOrLocator}`);
|
|
12051
12054
|
}
|
|
12052
|
-
return expect.poll(()
|
|
12053
|
-
if (elementOrLocator instanceof Element) {
|
|
12055
|
+
return expect.poll(function element() {
|
|
12056
|
+
if (elementOrLocator instanceof Element || elementOrLocator == null) {
|
|
12054
12057
|
return elementOrLocator;
|
|
12055
12058
|
}
|
|
12059
|
+
const isNot = chai.util.flag(this, "negate");
|
|
12060
|
+
const name = chai.util.flag(this, "_name");
|
|
12061
|
+
if (isNot && name === "toBeInTheDocument") {
|
|
12062
|
+
return elementOrLocator.query();
|
|
12063
|
+
}
|
|
12056
12064
|
return elementOrLocator.element();
|
|
12057
12065
|
}, options);
|
|
12058
12066
|
};
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
{__VITEST_INJECTOR__}
|
|
27
27
|
{__VITEST_ERROR_CATCHER__}
|
|
28
28
|
{__VITEST_SCRIPTS__}
|
|
29
|
-
<script type="module" crossorigin src="/__vitest_browser__/orchestrator-
|
|
29
|
+
<script type="module" crossorigin src="/__vitest_browser__/orchestrator-BCPid0xo.js"></script>
|
|
30
30
|
<link rel="modulepreload" crossorigin href="/__vitest_browser__/preload-helper-D-WYp1PK.js">
|
|
31
31
|
</head>
|
|
32
32
|
<body>
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
<script>{__VITEST_STATE__}</script>
|
|
21
21
|
{__VITEST_INTERNAL_SCRIPTS__}
|
|
22
22
|
{__VITEST_SCRIPTS__}
|
|
23
|
-
<script type="module" crossorigin src="/__vitest_browser__/tester-
|
|
23
|
+
<script type="module" crossorigin src="/__vitest_browser__/tester-DZCtFstH.js"></script>
|
|
24
24
|
<link rel="modulepreload" crossorigin href="/__vitest_browser__/preload-helper-D-WYp1PK.js">
|
|
25
25
|
</head>
|
|
26
26
|
<body>
|
package/dist/index.js
CHANGED
|
@@ -16,7 +16,7 @@ import { resolve as resolve$1, dirname as dirname$1, basename as basename$1, nor
|
|
|
16
16
|
import crypto from 'node:crypto';
|
|
17
17
|
import * as nodeos from 'node:os';
|
|
18
18
|
|
|
19
|
-
var version = "2.1.
|
|
19
|
+
var version = "2.1.3";
|
|
20
20
|
|
|
21
21
|
const _DRIVE_LETTER_START_RE = /^[A-Za-z]:\//;
|
|
22
22
|
function normalizeWindowsPath(input = "") {
|
|
@@ -1949,7 +1949,7 @@ async function resolveTester(server, url, res) {
|
|
|
1949
1949
|
const testerScripts = await server.formatScripts(
|
|
1950
1950
|
project.config.browser.testerScripts
|
|
1951
1951
|
);
|
|
1952
|
-
const clientScript = `<script type="module" src="${server.
|
|
1952
|
+
const clientScript = `<script type="module" src="${server.base}@vite/client"><\/script>`;
|
|
1953
1953
|
const stateJs = typeof server.stateJs === "string" ? server.stateJs : await server.stateJs;
|
|
1954
1954
|
const stateScript = `<script type="module">${stateJs}<\/script>`;
|
|
1955
1955
|
server.testerScripts = `${stateScript}${clientScript}${testerScripts}`;
|
|
@@ -2201,7 +2201,7 @@ var BrowserPlugin = (browserServer, base = "/") => {
|
|
|
2201
2201
|
{
|
|
2202
2202
|
name: "vitest:browser:resolve-virtual",
|
|
2203
2203
|
async resolveId(rawId) {
|
|
2204
|
-
if (rawId === "/
|
|
2204
|
+
if (rawId === "/mockServiceWorker.js") {
|
|
2205
2205
|
return this.resolve("msw/mockServiceWorker.js", distRoot, {
|
|
2206
2206
|
skipSelf: true
|
|
2207
2207
|
});
|
|
@@ -2210,8 +2210,14 @@ var BrowserPlugin = (browserServer, base = "/") => {
|
|
|
2210
2210
|
},
|
|
2211
2211
|
{
|
|
2212
2212
|
name: "vitest:browser:assets",
|
|
2213
|
+
configureServer(server) {
|
|
2214
|
+
server.middlewares.use(
|
|
2215
|
+
"/__vitest__",
|
|
2216
|
+
sirv(resolve(distRoot, "client/__vitest__"))
|
|
2217
|
+
);
|
|
2218
|
+
},
|
|
2213
2219
|
resolveId(id) {
|
|
2214
|
-
if (id.startsWith("/__vitest_browser__/")
|
|
2220
|
+
if (id.startsWith("/__vitest_browser__/")) {
|
|
2215
2221
|
return resolve(distRoot, "client", id.slice(1));
|
|
2216
2222
|
}
|
|
2217
2223
|
},
|
|
@@ -2231,18 +2237,20 @@ var BrowserPlugin = (browserServer, base = "/") => {
|
|
|
2231
2237
|
enforce: "post",
|
|
2232
2238
|
async config(viteConfig) {
|
|
2233
2239
|
// Enables using ignore hint for coverage providers with @preserve keyword
|
|
2234
|
-
viteConfig.esbuild
|
|
2235
|
-
|
|
2236
|
-
|
|
2240
|
+
if (viteConfig.esbuild !== false) {
|
|
2241
|
+
viteConfig.esbuild ||= {};
|
|
2242
|
+
viteConfig.esbuild.legalComments = "inline";
|
|
2243
|
+
}
|
|
2244
|
+
const api = resolveApiServerConfig(
|
|
2237
2245
|
viteConfig.test?.browser || {},
|
|
2238
2246
|
defaultBrowserPort
|
|
2239
2247
|
) || {
|
|
2240
2248
|
port: defaultBrowserPort
|
|
2241
2249
|
};
|
|
2242
|
-
server.middlewareMode = false;
|
|
2243
2250
|
viteConfig.server = {
|
|
2244
2251
|
...viteConfig.server,
|
|
2245
|
-
...
|
|
2252
|
+
...api,
|
|
2253
|
+
middlewareMode: false,
|
|
2246
2254
|
open: false
|
|
2247
2255
|
};
|
|
2248
2256
|
viteConfig.server.fs ??= {};
|
|
@@ -2278,6 +2286,19 @@ var BrowserPlugin = (browserServer, base = "/") => {
|
|
|
2278
2286
|
};
|
|
2279
2287
|
}
|
|
2280
2288
|
},
|
|
2289
|
+
{
|
|
2290
|
+
name: "vitest:browser:worker",
|
|
2291
|
+
transform(code, id, _options) {
|
|
2292
|
+
if (/(?:\?|&)worker_file&type=\w+(?:&|$)/.test(id)) {
|
|
2293
|
+
const s = new MagicString(code);
|
|
2294
|
+
s.prepend("globalThis.__vitest_browser_runner__ = { wrapDynamicImport: f => f() };\n");
|
|
2295
|
+
return {
|
|
2296
|
+
code: s.toString(),
|
|
2297
|
+
map: s.generateMap({ hires: "boundary" })
|
|
2298
|
+
};
|
|
2299
|
+
}
|
|
2300
|
+
}
|
|
2301
|
+
},
|
|
2281
2302
|
// TODO: remove this when @testing-library/vue supports ESM
|
|
2282
2303
|
{
|
|
2283
2304
|
name: "vitest:browser:support-testing-library",
|
package/dist/locators/preview.js
CHANGED
|
@@ -71,7 +71,7 @@ class PreviewLocator extends Locator {
|
|
|
71
71
|
return file2;
|
|
72
72
|
}
|
|
73
73
|
const { content: base64, basename, mime } = await this.triggerCommand("__vitest_fileInfo", file2, "base64");
|
|
74
|
-
const fileInstance = fetch(base64).then((r) => r.blob()).then((blob) => new File([blob], basename, { type: mime }));
|
|
74
|
+
const fileInstance = fetch(`data:${mime};base64,${base64}`).then((r) => r.blob()).then((blob) => new File([blob], basename, { type: mime }));
|
|
75
75
|
return fileInstance;
|
|
76
76
|
});
|
|
77
77
|
const uploadFiles = await Promise.all(uploadPromise);
|
package/matchers.d.ts
CHANGED
|
@@ -16,7 +16,7 @@ declare module 'vitest' {
|
|
|
16
16
|
type PromisifyDomAssertion<T> = Promisify<Assertion<T>>
|
|
17
17
|
|
|
18
18
|
interface ExpectStatic {
|
|
19
|
-
element: <T extends Element | Locator>(element: T, options?: ExpectPollOptions) => PromisifyDomAssertion<Awaited<Element>>
|
|
19
|
+
element: <T extends Element | Locator>(element: T, options?: ExpectPollOptions) => PromisifyDomAssertion<Awaited<Element | null>>
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
22
|
|
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.1.3",
|
|
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.1.3"
|
|
66
66
|
},
|
|
67
67
|
"peerDependenciesMeta": {
|
|
68
68
|
"playwright": {
|
|
@@ -83,8 +83,8 @@
|
|
|
83
83
|
"sirv": "^2.0.4",
|
|
84
84
|
"tinyrainbow": "^1.2.0",
|
|
85
85
|
"ws": "^8.18.0",
|
|
86
|
-
"@vitest/
|
|
87
|
-
"@vitest/
|
|
86
|
+
"@vitest/mocker": "2.1.3",
|
|
87
|
+
"@vitest/utils": "2.1.3"
|
|
88
88
|
},
|
|
89
89
|
"devDependencies": {
|
|
90
90
|
"@testing-library/jest-dom": "^6.4.8",
|
|
@@ -100,17 +100,17 @@
|
|
|
100
100
|
"playwright-core": "^1.46.0",
|
|
101
101
|
"safaridriver": "^0.1.2",
|
|
102
102
|
"webdriverio": "^8.40.2",
|
|
103
|
-
"@vitest/runner": "2.1.
|
|
104
|
-
"@vitest/
|
|
105
|
-
"@vitest/
|
|
106
|
-
"vitest": "2.1.
|
|
103
|
+
"@vitest/runner": "2.1.3",
|
|
104
|
+
"@vitest/ui": "2.1.3",
|
|
105
|
+
"@vitest/ws-client": "2.1.3",
|
|
106
|
+
"vitest": "2.1.3"
|
|
107
107
|
},
|
|
108
108
|
"scripts": {
|
|
109
109
|
"build": "rimraf dist && pnpm build:node && pnpm build:client",
|
|
110
110
|
"build:client": "vite build src/client",
|
|
111
111
|
"build:node": "rollup -c",
|
|
112
112
|
"dev:client": "vite build src/client --watch",
|
|
113
|
-
"dev:node": "rollup -c --watch --watch.include 'src
|
|
113
|
+
"dev:node": "rollup -c --watch --watch.include 'src/**'",
|
|
114
114
|
"dev": "rimraf dist && pnpm run --stream '/^dev:/'"
|
|
115
115
|
}
|
|
116
116
|
}
|