@vitest/browser 2.1.0-beta.4 → 2.1.0-beta.6

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.
@@ -23,8 +23,8 @@
23
23
  })();
24
24
  </script>
25
25
  <!-- !LOAD_METADATA! -->
26
- <script type="module" crossorigin src="./assets/index-uh8h5Yzr.js"></script>
27
- <link rel="stylesheet" crossorigin href="./assets/index-JTfsnJeu.css">
26
+ <script type="module" crossorigin src="./assets/index-D7jfm8wn.js"></script>
27
+ <link rel="stylesheet" crossorigin href="./assets/index-BevOiAy-.css">
28
28
  </head>
29
29
  <body>
30
30
  <div id="app"></div>
@@ -1,7 +1,7 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
3
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
4
- import { _ as __vitePreload, g as getBrowserState, a as getConfig, r as relative } from "./preload-helper-Btt6SgIy.js";
4
+ import { _ as __vitePreload, g as getBrowserState, a as getConfig, r as relative } from "./preload-helper-YsBSwBkS.js";
5
5
  import { channel, client, globalChannel } from "@vitest/browser/client";
6
6
  function generateHash(str) {
7
7
  let hash = 0;
@@ -216,6 +216,15 @@ async function importFs(id) {
216
216
  name
217
217
  ));
218
218
  }
219
+ const executor = {
220
+ isBrowser: true,
221
+ executeId: (id) => {
222
+ if (id[0] === "/" || id[1] === ":") {
223
+ return importFs(id);
224
+ }
225
+ return importId(id);
226
+ }
227
+ };
219
228
  function getConfig() {
220
229
  return (/* @__PURE__ */ getBrowserState()).config;
221
230
  }
@@ -278,7 +287,9 @@ const __vitePreload = function preload(baseModule, deps, importerUrl) {
278
287
  );
279
288
  }
280
289
  return promise.then(() => baseModule()).catch((err) => {
281
- const e = new Event("vite:preloadError", { cancelable: true });
290
+ const e = new Event("vite:preloadError", {
291
+ cancelable: true
292
+ });
282
293
  e.payload = err;
283
294
  window.dispatchEvent(e);
284
295
  if (!e.defaultPrevented) {
@@ -289,11 +300,11 @@ const __vitePreload = function preload(baseModule, deps, importerUrl) {
289
300
  export {
290
301
  __vitePreload as _,
291
302
  getConfig as a,
292
- importId as b,
303
+ extname as b,
293
304
  getWorkerState as c,
294
- extname as e,
305
+ executor as e,
295
306
  getBrowserState as g,
296
- importFs as i,
307
+ importId as i,
297
308
  join as j,
298
309
  relative as r
299
310
  };
@@ -1,8 +1,8 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
3
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
4
- import { a as getConfig, i as importFs, b as importId, e as extname, g as getBrowserState, _ as __vitePreload, j as join, c as getWorkerState } from "./preload-helper-Btt6SgIy.js";
5
- import { loadDiffConfig, loadSnapshotSerializers, takeCoverageInsideWorker, setupCommonEnv, startTests, collectTests, SpyModule } from "vitest/browser";
4
+ import { a as getConfig, e as executor, i as importId, b as extname, g as getBrowserState, _ as __vitePreload, j as join, c as getWorkerState } from "./preload-helper-YsBSwBkS.js";
5
+ import { loadDiffConfig, loadSnapshotSerializers, takeCoverageInsideWorker, setupCommonEnv, startCoverageInsideWorker, startTests, collectTests, stopCoverageInsideWorker, SpyModule } from "vitest/browser";
6
6
  import { page } from "@vitest/browser/context";
7
7
  import { globalChannel, channel, waitForChannel, client, onCancel } from "@vitest/browser/client";
8
8
  import { getSafeTimers, stringify, format, TraceMap, originalPositionFor } from "vitest/utils";
@@ -296,7 +296,7 @@ function createBrowserRunner(runnerClass, mocker, state, coverageModule) {
296
296
  if (coverage) {
297
297
  await rpc$1().onAfterSuiteRun({
298
298
  coverage,
299
- transformMode: "web",
299
+ transformMode: "browser",
300
300
  projectName: this.config.name
301
301
  });
302
302
  }
@@ -343,14 +343,8 @@ async function initiateRunner(state, mocker, config) {
343
343
  return cachedRunner;
344
344
  }
345
345
  const runnerClass = config.mode === "test" ? VitestTestRunner : NodeBenchmarkRunner;
346
- const executeId = (id) => {
347
- if (id[0] === "/" || id[1] === ":") {
348
- return importFs(id);
349
- }
350
- return importId(id);
351
- };
352
346
  const BrowserRunner = createBrowserRunner(runnerClass, mocker, state, {
353
- takeCoverage: () => takeCoverageInsideWorker(config.coverage, { executeId })
347
+ takeCoverage: () => takeCoverageInsideWorker(config.coverage, executor)
354
348
  });
355
349
  if (!config.snapshotOptions.snapshotEnvironment) {
356
350
  config.snapshotOptions.snapshotEnvironment = new VitestBrowserSnapshotEnvironment();
@@ -358,7 +352,6 @@ async function initiateRunner(state, mocker, config) {
358
352
  const runner = new BrowserRunner({
359
353
  config
360
354
  });
361
- const executor = { executeId };
362
355
  const [diffOptions] = await Promise.all([
363
356
  loadDiffConfig(config, executor),
364
357
  loadSnapshotSerializers(config, executor)
@@ -11967,6 +11960,7 @@ async function executeTests(method, files) {
11967
11960
  debug("prepare time", state.durations.prepare, "ms");
11968
11961
  try {
11969
11962
  await setupCommonEnv(config);
11963
+ await startCoverageInsideWorker(config.coverage, executor);
11970
11964
  for (const file of files) {
11971
11965
  state.filepath = file;
11972
11966
  if (method === "run") {
@@ -11988,6 +11982,7 @@ async function executeTests(method, files) {
11988
11982
  }, "Cleanup Error");
11989
11983
  }
11990
11984
  state.environmentTeardownRun = true;
11985
+ await stopCoverageInsideWorker(config.coverage, executor);
11991
11986
  debug("finished running tests");
11992
11987
  done(files);
11993
11988
  }
@@ -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-BObhEEvc.js"></script>
30
- <link rel="modulepreload" crossorigin href="/__vitest_browser__/preload-helper-Btt6SgIy.js">
29
+ <script type="module" crossorigin src="/__vitest_browser__/orchestrator-CoMoQEYq.js"></script>
30
+ <link rel="modulepreload" crossorigin href="/__vitest_browser__/preload-helper-YsBSwBkS.js">
31
31
  </head>
32
32
  <body>
33
33
  <div id="vitest-tester"></div>
@@ -20,8 +20,8 @@
20
20
  <script>{__VITEST_STATE__}</script>
21
21
  {__VITEST_INTERNAL_SCRIPTS__}
22
22
  {__VITEST_SCRIPTS__}
23
- <script type="module" crossorigin src="/__vitest_browser__/tester-CuCeoNqh.js"></script>
24
- <link rel="modulepreload" crossorigin href="/__vitest_browser__/preload-helper-Btt6SgIy.js">
23
+ <script type="module" crossorigin src="/__vitest_browser__/tester-C7y_vb57.js"></script>
24
+ <link rel="modulepreload" crossorigin href="/__vitest_browser__/preload-helper-YsBSwBkS.js">
25
25
  </head>
26
26
  <body>
27
27
  {__VITEST_APPEND__}
@@ -173,7 +173,7 @@ class Locator {
173
173
  element() {
174
174
  const element = this.query();
175
175
  if (!element) {
176
- throw getElementError(this._pwSelector || this.selector, this._container || document.documentElement);
176
+ throw getElementError(this._pwSelector || this.selector, this._container || document.body);
177
177
  }
178
178
  return element;
179
179
  }
package/dist/index.js CHANGED
@@ -2012,7 +2012,7 @@ async function resolveTester(server, url, res) {
2012
2012
  const { contextId, testFile } = server.resolveTesterUrl(url.pathname);
2013
2013
  const project = server.project;
2014
2014
  const state = server.state;
2015
- const testFiles = await project.globTestFiles();
2015
+ const { testFiles } = await project.globTestFiles();
2016
2016
  const tests = testFile === "__vitest_all__" || !testFiles.includes(testFile) ? "__vitest_browser_runner__.files" : JSON.stringify([testFile]);
2017
2017
  const iframeId = JSON.stringify(testFile);
2018
2018
  const context = state.getContext(contextId);
@@ -2050,10 +2050,11 @@ async function resolveTester(server, url, res) {
2050
2050
  `<script type="module" src="${server.errorCatcherUrl}"><\/script>`,
2051
2051
  server.locatorsUrl ? `<script type="module" src="${server.locatorsUrl}"><\/script>` : ""
2052
2052
  ].join("\n"),
2053
- __VITEST_APPEND__: `<script type="module">
2053
+ __VITEST_APPEND__: `<script data-vitest-append type="module">
2054
2054
  __vitest_browser_runner__.runningFiles = ${tests}
2055
2055
  __vitest_browser_runner__.iframeId = ${iframeId}
2056
2056
  __vitest_browser_runner__.${method === "run" ? "runTests" : "collectTests"}(__vitest_browser_runner__.runningFiles)
2057
+ document.querySelector('script[data-vitest-append]').remove()
2057
2058
  <\/script>`
2058
2059
  });
2059
2060
  }
@@ -2173,7 +2174,7 @@ var BrowserPlugin = (browserServer, base = "/") => {
2173
2174
  name: "vitest:browser:tests",
2174
2175
  enforce: "pre",
2175
2176
  async config() {
2176
- const allTestFiles = await project.globTestFiles();
2177
+ const { testFiles: allTestFiles } = await project.globTestFiles();
2177
2178
  const browserTestFiles = allTestFiles.filter(
2178
2179
  (file) => getFilePoolName(project, file) === "browser"
2179
2180
  );
@@ -2213,6 +2214,48 @@ var BrowserPlugin = (browserServer, base = "/") => {
2213
2214
  entries.push(coverage.customProviderModule);
2214
2215
  }
2215
2216
  }
2217
+ const include = [
2218
+ "vitest > @vitest/snapshot > magic-string",
2219
+ "vitest > chai",
2220
+ "vitest > chai > loupe",
2221
+ "vitest > @vitest/utils > loupe",
2222
+ "@vitest/browser > @testing-library/user-event",
2223
+ "@vitest/browser > @testing-library/dom"
2224
+ ];
2225
+ const react = tryResolve("vitest-browser-react", [project.ctx.config.root]);
2226
+ if (react) {
2227
+ include.push(react);
2228
+ }
2229
+ const vue = tryResolve("vitest-browser-react", [project.ctx.config.root]);
2230
+ if (vue) {
2231
+ include.push(vue);
2232
+ }
2233
+ const exclude = [
2234
+ "vitest",
2235
+ "vitest/utils",
2236
+ "vitest/browser",
2237
+ "vitest/runners",
2238
+ "@vitest/browser",
2239
+ "@vitest/browser/client",
2240
+ "@vitest/utils",
2241
+ "@vitest/utils/source-map",
2242
+ "@vitest/runner",
2243
+ "@vitest/spy",
2244
+ "@vitest/utils/error",
2245
+ "@vitest/snapshot",
2246
+ "@vitest/expect",
2247
+ "std-env",
2248
+ "tinybench",
2249
+ "tinyspy",
2250
+ "tinyrainbow",
2251
+ "pathe",
2252
+ "msw",
2253
+ "msw/browser"
2254
+ ];
2255
+ const svelte = tryResolve("vitest-browser-svelte", [project.ctx.config.root]);
2256
+ if (svelte) {
2257
+ exclude.push(svelte);
2258
+ }
2216
2259
  return {
2217
2260
  define,
2218
2261
  resolve: {
@@ -2220,36 +2263,8 @@ var BrowserPlugin = (browserServer, base = "/") => {
2220
2263
  },
2221
2264
  optimizeDeps: {
2222
2265
  entries,
2223
- exclude: [
2224
- "vitest",
2225
- "vitest/utils",
2226
- "vitest/browser",
2227
- "vitest/runners",
2228
- "@vitest/browser",
2229
- "@vitest/browser/client",
2230
- "@vitest/utils",
2231
- "@vitest/utils/source-map",
2232
- "@vitest/runner",
2233
- "@vitest/spy",
2234
- "@vitest/utils/error",
2235
- "@vitest/snapshot",
2236
- "@vitest/expect",
2237
- "std-env",
2238
- "tinybench",
2239
- "tinyspy",
2240
- "tinyrainbow",
2241
- "pathe",
2242
- "msw",
2243
- "msw/browser"
2244
- ],
2245
- include: [
2246
- "vitest > @vitest/snapshot > magic-string",
2247
- "vitest > chai",
2248
- "vitest > chai > loupe",
2249
- "vitest > @vitest/utils > loupe",
2250
- "@vitest/browser > @testing-library/user-event",
2251
- "@vitest/browser > @testing-library/dom"
2252
- ]
2266
+ exclude,
2267
+ include
2253
2268
  }
2254
2269
  };
2255
2270
  },
@@ -2510,8 +2525,6 @@ function createBrowserPool(ctx) {
2510
2525
 
2511
2526
  async function createBrowserServer(project, configFile, prePlugins = [], postPlugins = []) {
2512
2527
  const server = new BrowserServer(project, "/");
2513
- const root = project.config.root;
2514
- await project.ctx.packageInstaller.ensureInstalled("@vitest/browser", root);
2515
2528
  const configPath = typeof configFile === "string" ? configFile : false;
2516
2529
  const vite = await createServer({
2517
2530
  ...project.options,
@@ -1,4 +1,4 @@
1
1
  import '@vitest/browser/context';
2
2
  import '../public-utils-D6S2-5kI.js';
3
- export { L as Locator, s as selectorEngine } from '../index-BHQhKvO1.js';
3
+ export { L as Locator, s as selectorEngine } from '../index-DcU_z8HM.js';
4
4
  import 'vitest/utils';
@@ -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 } from '../public-utils-D6S2-5kI.js';
3
- import { s as selectorEngine, L as Locator } from '../index-BHQhKvO1.js';
3
+ import { s as selectorEngine, L as Locator } from '../index-DcU_z8HM.js';
4
4
  import 'vitest/utils';
5
5
 
6
6
  page.extend({
@@ -1,7 +1,7 @@
1
1
  import { page, server } from '@vitest/browser/context';
2
2
  import { userEvent } from '@testing-library/user-event';
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-BHQhKvO1.js';
4
+ import { s as selectorEngine, L as Locator, c as convertElementToCssSelector } from '../index-DcU_z8HM.js';
5
5
  import 'vitest/utils';
6
6
 
7
7
  page.extend({
@@ -42,7 +42,7 @@ class PreviewLocator extends Locator {
42
42
  get selector() {
43
43
  const selectors = this.elements().map((element) => convertElementToCssSelector(element));
44
44
  if (!selectors.length) {
45
- throw getElementError(this._pwSelector, this._container || document.documentElement);
45
+ throw getElementError(this._pwSelector, this._container || document.body);
46
46
  }
47
47
  return selectors.join(", ");
48
48
  }
@@ -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-BHQhKvO1.js';
3
+ import { s as selectorEngine, L as Locator, c as convertElementToCssSelector } from '../index-DcU_z8HM.js';
4
4
  import 'vitest/utils';
5
5
 
6
6
  page.extend({
@@ -38,7 +38,7 @@ class WebdriverIOLocator extends Locator {
38
38
  get selector() {
39
39
  const selectors = this.elements().map((element) => convertElementToCssSelector(element));
40
40
  if (!selectors.length) {
41
- throw getElementError(this._pwSelector, this._container || document.documentElement);
41
+ throw getElementError(this._pwSelector, this._container || document.body);
42
42
  }
43
43
  return selectors.join(", ");
44
44
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@vitest/browser",
3
3
  "type": "module",
4
- "version": "2.1.0-beta.4",
4
+ "version": "2.1.0-beta.6",
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.0-beta.4"
65
+ "vitest": "2.1.0-beta.6"
66
66
  },
67
67
  "peerDependenciesMeta": {
68
68
  "playwright": {
@@ -82,7 +82,7 @@
82
82
  "msw": "^2.3.5",
83
83
  "sirv": "^2.0.4",
84
84
  "ws": "^8.18.0",
85
- "@vitest/utils": "2.1.0-beta.4"
85
+ "@vitest/utils": "2.1.0-beta.6"
86
86
  },
87
87
  "devDependencies": {
88
88
  "@testing-library/jest-dom": "^6.4.8",
@@ -93,14 +93,14 @@
93
93
  "ivya": "^1.1.1",
94
94
  "pathe": "^1.1.2",
95
95
  "periscopic": "^4.0.2",
96
- "playwright": "^1.45.3",
97
- "playwright-core": "^1.45.3",
96
+ "playwright": "^1.46.0",
97
+ "playwright-core": "^1.46.0",
98
98
  "safaridriver": "^0.1.2",
99
- "webdriverio": "^8.39.1",
100
- "@vitest/ui": "2.1.0-beta.4",
101
- "vitest": "2.1.0-beta.4",
102
- "@vitest/runner": "2.1.0-beta.4",
103
- "@vitest/ws-client": "2.1.0-beta.4"
99
+ "webdriverio": "^8.40.2",
100
+ "@vitest/runner": "2.1.0-beta.6",
101
+ "@vitest/ui": "2.1.0-beta.6",
102
+ "@vitest/ws-client": "2.1.0-beta.6",
103
+ "vitest": "2.1.0-beta.6"
104
104
  },
105
105
  "scripts": {
106
106
  "build": "rimraf dist && pnpm build:node && pnpm build:client",
package/utils.d.ts CHANGED
@@ -5,7 +5,7 @@
5
5
  import { LocatorSelectors } from '@vitest/browser/context'
6
6
  import { StringifyOptions } from 'vitest/utils'
7
7
 
8
- type PrettyDOMOptions = Omit<StringifyOptions, 'maxLength'>
8
+ export type PrettyDOMOptions = Omit<StringifyOptions, 'maxLength'>
9
9
 
10
10
  export declare function getElementLocatorSelectors(element: Element): LocatorSelectors
11
11
  export declare function debug(