vitest 0.29.2 → 0.29.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.
Files changed (38) hide show
  1. package/LICENSE.md +502 -1
  2. package/dist/browser.d.ts +2 -2
  3. package/dist/browser.js +3 -4
  4. package/dist/child.js +15 -9
  5. package/dist/{chunk-api-setup.d9eccaeb.js → chunk-api-setup.ac7748ac.js} +9 -12
  6. package/dist/{chunk-constants.797d3ebf.js → chunk-constants.bc18a549.js} +1 -7
  7. package/dist/{chunk-install-pkg.aa415fd6.js → chunk-install-pkg.4121cd66.js} +12 -12
  8. package/dist/{chunk-integrations-globals.b56fcb06.js → chunk-integrations-globals.a473e88a.js} +8 -10
  9. package/dist/{chunk-integrations-run-once.9012f759.js → chunk-integrations-run-once.a2b4758b.js} +1 -1
  10. package/dist/{chunk-integrations-utils.233d6a3b.js → chunk-integrations-utils.d7c85bd9.js} +2 -2
  11. package/dist/{chunk-node-pkg.208acffb.js → chunk-node-pkg.0e36ca8e.js} +6970 -3551
  12. package/dist/chunk-paths.e36446b4.js +7 -0
  13. package/dist/chunk-runtime-inspector.b1427a10.js +20 -0
  14. package/dist/{chunk-runtime-mocker.a048e92d.js → chunk-runtime-mocker.344fec90.js} +6 -4
  15. package/dist/{chunk-runtime-rpc.971b3848.js → chunk-runtime-rpc.1b5714dc.js} +2 -2
  16. package/dist/{chunk-runtime-setup.992bb661.js → chunk-runtime-setup.a49dc2f9.js} +2 -2
  17. package/dist/{chunk-utils-global.727b6d25.js → chunk-utils-env.04ffbef7.js} +7 -4
  18. package/dist/{chunk-utils-import.ec15dcad.js → chunk-utils-import.39ffe9c5.js} +3 -3
  19. package/dist/cli-wrapper.js +1 -6
  20. package/dist/cli.js +15 -15
  21. package/dist/config.cjs +5 -0
  22. package/dist/config.d.ts +8 -4
  23. package/dist/config.js +5 -0
  24. package/dist/coverage.d.ts +3 -3
  25. package/dist/entry.js +17 -15
  26. package/dist/environments.d.ts +3 -3
  27. package/dist/index.d.ts +5 -6
  28. package/dist/index.js +6 -7
  29. package/dist/loader.js +1 -2
  30. package/dist/node.d.ts +4 -4
  31. package/dist/node.js +15 -15
  32. package/dist/runners.d.ts +2 -2
  33. package/dist/runners.js +3 -4
  34. package/dist/{types-7cd96283.d.ts → types-fafda418.d.ts} +107 -17
  35. package/dist/{chunk-magic-string.3a794426.js → vendor-magic-string.es.b3bc5745.js} +82 -1
  36. package/dist/worker.js +15 -9
  37. package/package.json +18 -8
  38. package/dist/chunk-utils-env.860d90c2.js +0 -6
@@ -0,0 +1,7 @@
1
+ import url from 'node:url';
2
+ import { resolve } from 'pathe';
3
+
4
+ const rootDir = resolve(url.fileURLToPath(import.meta.url), "../../");
5
+ const distDir = resolve(url.fileURLToPath(import.meta.url), "../../dist");
6
+
7
+ export { distDir as d, rootDir as r };
@@ -0,0 +1,20 @@
1
+ import inspector from 'node:inspector';
2
+
3
+ function setupInspect(config) {
4
+ const isEnabled = config.inspect || config.inspectBrk;
5
+ if (isEnabled) {
6
+ const isOpen = inspector.url() !== void 0;
7
+ if (!isOpen) {
8
+ inspector.open();
9
+ if (config.inspectBrk)
10
+ inspector.waitForDebugger();
11
+ }
12
+ }
13
+ const keepOpen = config.watch && !config.isolate && config.singleThread;
14
+ return function cleanup() {
15
+ if (isEnabled && !keepOpen)
16
+ inspector.close();
17
+ };
18
+ }
19
+
20
+ export { setupInspect as s };
@@ -4,14 +4,15 @@ import { isInternalRequest, isPrimitive } from 'vite-node/utils';
4
4
  import { isAbsolute, dirname, join, basename, extname, resolve, normalize, relative } from 'pathe';
5
5
  import { i as isNodeBuiltin } from './vendor-index.bdee400f.js';
6
6
  import { processError } from '@vitest/runner/utils';
7
- import { g as getWorkerState, b as getCurrentEnvironment } from './chunk-utils-global.727b6d25.js';
8
- import { d as distDir } from './chunk-constants.797d3ebf.js';
7
+ import { g as getWorkerState, b as getCurrentEnvironment } from './chunk-utils-env.04ffbef7.js';
8
+ import { d as distDir } from './chunk-paths.e36446b4.js';
9
9
  import { existsSync, readdirSync } from 'node:fs';
10
10
  import { getColors, getType } from '@vitest/utils';
11
11
  import { e as getAllMockableProperties } from './chunk-utils-base.81f83dbd.js';
12
12
  import { spyOn } from '@vitest/spy';
13
- import { r as rpc } from './chunk-runtime-rpc.971b3848.js';
13
+ import { r as rpc } from './chunk-runtime-rpc.1b5714dc.js';
14
14
 
15
+ const filterPublicKeys = ["__esModule", Symbol.asyncIterator, Symbol.hasInstance, Symbol.isConcatSpreadable, Symbol.iterator, Symbol.match, Symbol.matchAll, Symbol.replace, Symbol.search, Symbol.split, Symbol.species, Symbol.toPrimitive, Symbol.toStringTag, Symbol.unscopables];
15
16
  class RefTracker {
16
17
  constructor() {
17
18
  this.idMap = /* @__PURE__ */ new Map();
@@ -112,7 +113,7 @@ const _VitestMocker = class {
112
113
  if (target instanceof Promise)
113
114
  return target.then.bind(target);
114
115
  } else if (!(prop in target)) {
115
- if (prop === "__esModule")
116
+ if (filterPublicKeys.includes(prop))
116
117
  return void 0;
117
118
  const c = getColors();
118
119
  throw new Error(
@@ -321,6 +322,7 @@ async function startViteNode(ctx) {
321
322
  error.VITEST_TEST_NAME = (_a = worker.current) == null ? void 0 : _a.name;
322
323
  error.VITEST_TEST_PATH = relative(config.root, worker.filepath);
323
324
  }
325
+ error.VITEST_AFTER_ENV_TEARDOWN = worker.environmentTeardownRun;
324
326
  rpc().onUnhandledError(error, type);
325
327
  }
326
328
  process.on("uncaughtException", (e) => catchError(e, "Uncaught Exception"));
@@ -1,5 +1,5 @@
1
1
  import { getSafeTimers } from '@vitest/utils';
2
- import { g as getWorkerState } from './chunk-utils-global.727b6d25.js';
2
+ import { g as getWorkerState } from './chunk-utils-env.04ffbef7.js';
3
3
 
4
4
  const { get } = Reflect;
5
5
  const safeRandom = Math.random;
@@ -32,7 +32,7 @@ function withSafeTimers(fn) {
32
32
  }
33
33
  }
34
34
  const promises = /* @__PURE__ */ new Set();
35
- const rpcDone = () => {
35
+ const rpcDone = async () => {
36
36
  if (!promises.size)
37
37
  return;
38
38
  const awaitable = Array.from(promises);
@@ -1,5 +1,5 @@
1
1
  import { setSafeTimers } from '@vitest/utils';
2
- import { a as resetRunOnceCounter } from './chunk-integrations-run-once.9012f759.js';
2
+ import { a as resetRunOnceCounter } from './chunk-integrations-run-once.a2b4758b.js';
3
3
 
4
4
  let globalSetup = false;
5
5
  async function setupCommonEnv(config) {
@@ -10,7 +10,7 @@ async function setupCommonEnv(config) {
10
10
  globalSetup = true;
11
11
  setSafeTimers();
12
12
  if (config.globals)
13
- (await import('./chunk-integrations-globals.b56fcb06.js')).registerApiGlobally();
13
+ (await import('./chunk-integrations-globals.a473e88a.js')).registerApiGlobally();
14
14
  }
15
15
  function setupDefines(defines) {
16
16
  for (const key in defines)
@@ -1,8 +1,11 @@
1
1
  import { relative } from 'pathe';
2
- import { i as isNode } from './chunk-utils-env.860d90c2.js';
2
+ import 'std-env';
3
3
  import '@vitest/runner/utils';
4
4
  import '@vitest/utils';
5
5
 
6
+ var _a;
7
+ const isNode = typeof process < "u" && typeof process.stdout < "u" && !((_a = process.versions) == null ? void 0 : _a.deno) && !globalThis.window;
8
+
6
9
  function getWorkerState() {
7
10
  return globalThis.__vitest_worker__;
8
11
  }
@@ -22,10 +25,10 @@ function resetModules(modules, resetMocks = false) {
22
25
  /@vitest\/dist/,
23
26
  ...!resetMocks ? [/^mock:/] : []
24
27
  ];
25
- modules.forEach((_, path) => {
28
+ modules.forEach((mod, path) => {
26
29
  if (skipPaths.some((re) => re.test(path)))
27
30
  return;
28
- modules.delete(path);
31
+ modules.invalidateModule(mod);
29
32
  });
30
33
  }
31
34
  function removeUndefinedValues(obj) {
@@ -64,4 +67,4 @@ function getCallLastIndex(code) {
64
67
  return null;
65
68
  }
66
69
 
67
- export { getCallLastIndex as a, getCurrentEnvironment as b, relativePath as c, removeUndefinedValues as d, isWindows as e, getWorkerState as g, isRunningInBenchmark as i, resetModules as r };
70
+ export { getCallLastIndex as a, getCurrentEnvironment as b, isNode as c, relativePath as d, removeUndefinedValues as e, isWindows as f, getWorkerState as g, isRunningInBenchmark as i, resetModules as r };
@@ -1,12 +1,12 @@
1
1
  import { getCurrentSuite } from '@vitest/runner';
2
2
  import { createChainable, getNames } from '@vitest/runner/utils';
3
3
  import { getSafeTimers, noop, createSimpleStackTrace } from '@vitest/utils';
4
- import { g as getWorkerState, i as isRunningInBenchmark, a as getCallLastIndex, b as getCurrentEnvironment, r as resetModules } from './chunk-utils-global.727b6d25.js';
4
+ import { g as getWorkerState, i as isRunningInBenchmark, a as getCallLastIndex, b as getCurrentEnvironment, r as resetModules } from './chunk-utils-env.04ffbef7.js';
5
5
  import * as chai$1 from 'chai';
6
6
  import { expect } from 'chai';
7
7
  import { c as commonjsGlobal } from './vendor-_commonjsHelpers.addc3445.js';
8
8
  import { equals, iterableEquality, subsetEquality, JestExtend, JestChaiExpect, JestAsymmetricMatchers, GLOBAL_EXPECT, getState, setState } from '@vitest/expect';
9
- import { r as rpc } from './chunk-runtime-rpc.971b3848.js';
9
+ import { r as rpc } from './chunk-runtime-rpc.1b5714dc.js';
10
10
  import { join, dirname } from 'pathe';
11
11
  import { g as getSnapshotEnvironment } from './chunk-snapshot-env.a347d647.js';
12
12
  import { i as isObject } from './chunk-utils-base.81f83dbd.js';
@@ -2700,7 +2700,7 @@ function deepMergeSnapshot(target, source) {
2700
2700
 
2701
2701
  async function saveInlineSnapshots(snapshots) {
2702
2702
  const environment = getSnapshotEnvironment();
2703
- const MagicString = (await import('./chunk-magic-string.3a794426.js')).default;
2703
+ const MagicString = (await import('./vendor-magic-string.es.b3bc5745.js').then(function (n) { return n.m; })).default;
2704
2704
  const files = new Set(snapshots.map((i) => i.file));
2705
2705
  await Promise.all(Array.from(files).map(async (file) => {
2706
2706
  const snaps = snapshots.filter((i) => i.file === file);
@@ -1,7 +1,7 @@
1
1
  import { fileURLToPath } from 'url';
2
2
  import c from 'picocolors';
3
3
  import { e as execa } from './vendor-index.2cbcdd1e.js';
4
- import { E as EXIT_CODE_RESTART } from './chunk-constants.797d3ebf.js';
4
+ import { E as EXIT_CODE_RESTART } from './chunk-constants.bc18a549.js';
5
5
  import 'node:buffer';
6
6
  import 'node:path';
7
7
  import 'node:child_process';
@@ -17,14 +17,9 @@ import 'events';
17
17
  import 'buffer';
18
18
  import 'stream';
19
19
  import 'util';
20
- import 'pathe';
21
- import './chunk-utils-env.860d90c2.js';
22
- import 'std-env';
23
20
 
24
21
  const ENTRY = new URL("./cli.js", import.meta.url);
25
22
  const NODE_ARGS = [
26
- "--inspect",
27
- "--inspect-brk",
28
23
  "--trace-deprecation",
29
24
  "--experimental-wasm-threads",
30
25
  "--wasm-atomics-on-non-shared-memory"
package/dist/cli.js CHANGED
@@ -1,17 +1,19 @@
1
1
  import { normalize } from 'pathe';
2
2
  import cac from 'cac';
3
3
  import c from 'picocolors';
4
- import { v as version, s as startVitest, d as divider } from './chunk-node-pkg.208acffb.js';
5
- import './chunk-constants.797d3ebf.js';
6
- import 'node:url';
7
- import './chunk-utils-env.860d90c2.js';
8
- import 'std-env';
4
+ import { v as version, s as startVitest, d as divider } from './chunk-node-pkg.0e36ca8e.js';
5
+ import './chunk-constants.bc18a549.js';
9
6
  import './chunk-integrations-coverage.e0a6acd2.js';
10
7
  import 'local-pkg';
11
8
  import './chunk-env-node.affdd278.js';
12
9
  import 'node:console';
10
+ import './chunk-utils-env.04ffbef7.js';
11
+ import 'std-env';
12
+ import '@vitest/runner/utils';
13
+ import '@vitest/utils';
13
14
  import 'vite';
14
15
  import 'node:path';
16
+ import 'node:url';
15
17
  import 'node:process';
16
18
  import 'node:fs';
17
19
  import 'path';
@@ -21,11 +23,8 @@ import 'stream';
21
23
  import 'events';
22
24
  import 'fs';
23
25
  import './vendor-_commonjsHelpers.addc3445.js';
26
+ import 'vite-node/utils';
24
27
  import 'vite-node/client';
25
- import 'vite-node/server';
26
- import './chunk-utils-global.727b6d25.js';
27
- import '@vitest/runner/utils';
28
- import '@vitest/utils';
29
28
  import 'node:fs/promises';
30
29
  import './vendor-index.2cbcdd1e.js';
31
30
  import 'node:buffer';
@@ -38,24 +37,25 @@ import 'source-map';
38
37
  import 'module';
39
38
  import 'acorn';
40
39
  import 'acorn-walk';
40
+ import './chunk-utils-base.81f83dbd.js';
41
+ import 'crypto';
42
+ import './chunk-paths.e36446b4.js';
41
43
  import 'node:v8';
42
44
  import './vendor-index.783e7f3e.js';
43
- import './chunk-utils-base.81f83dbd.js';
44
45
  import 'node:worker_threads';
45
46
  import 'tinypool';
46
47
  import 'perf_hooks';
47
48
  import './chunk-utils-tasks.b41c8284.js';
48
- import 'crypto';
49
- import 'vite-node/utils';
50
49
  import '@vitest/utils/diff';
50
+ import 'vite-node/server';
51
+ import './vendor-magic-string.es.b3bc5745.js';
51
52
  import 'node:module';
52
53
  import 'node:crypto';
53
- import './chunk-magic-string.3a794426.js';
54
54
  import 'strip-literal';
55
55
  import 'readline';
56
56
 
57
57
  const cli = cac("vitest");
58
- cli.version(version).option("-r, --root <path>", "Root path").option("-c, --config <path>", "Path to config file").option("-u, --update", "Update snapshot").option("-w, --watch", "Enable watch mode").option("-t, --testNamePattern <pattern>", "Run tests with full names matching the specified regexp pattern").option("--dir <path>", "Base directory to scan for the test files").option("--ui", "Enable UI").option("--open", "Open UI automatically (default: !process.env.CI))").option("--api [api]", "Serve API, available options: --api.port <port>, --api.host [host] and --api.strictPort").option("--threads", "Enabled threads (default: true)").option("--single-thread", "Run tests inside a single thread, requires --threads (default: false)").option("--silent", "Silent console output from tests").option("--isolate", "Isolate environment for each test file (default: true)").option("--reporter <name>", "Specify reporters").option("--outputDiffMaxSize <length>", "Object diff output max size (default: 10000)").option("--outputDiffMaxLines <length>", "Max lines in diff output window (default: 50)").option("--outputTruncateLength <length>", "Diff output line length (default: 80)").option("--outputDiffLines <lines>", "Number of lines in single diff (default: 15)").option("--outputFile <filename/-s>", "Write test results to a file when supporter reporter is also specified, use cac's dot notation for individual outputs of multiple reporters").option("--coverage", "Enable coverage report").option("--run", "Disable watch mode").option("--mode <name>", "Override Vite mode (default: test)").option("--globals", "Inject apis globally").option("--dom", "Mock browser api with happy-dom").option("--browser", "Run tests in browser").option("--environment <env>", "Specify runner environment (default: node)").option("--passWithNoTests", "Pass when no tests found").option("--logHeapUsage", "Show the size of heap for each test").option("--allowOnly", "Allow tests and suites that are marked as only (default: !process.env.CI)").option("--dangerouslyIgnoreUnhandledErrors", "Ignore any unhandled errors that occur").option("--shard <shard>", "Test suite shard to execute in a format of <index>/<count>").option("--changed [since]", "Run tests that are affected by the changed files (default: false)").option("--sequence <options>", "Define in what order to run tests (use --sequence.shuffle to run tests in random order)").option("--segfaultRetry <times>", "Return tests on segment fault (default: 0)", { default: 0 }).option("--no-color", "Removes colors from the console output").option("--inspect", "Enable Node.js inspector").option("--inspect-brk", "Enable Node.js inspector with break").help();
58
+ cli.version(version).option("-r, --root <path>", "Root path").option("-c, --config <path>", "Path to config file").option("-u, --update", "Update snapshot").option("-w, --watch", "Enable watch mode").option("-t, --testNamePattern <pattern>", "Run tests with full names matching the specified regexp pattern").option("--dir <path>", "Base directory to scan for the test files").option("--ui", "Enable UI").option("--open", "Open UI automatically (default: !process.env.CI))").option("--api [api]", "Serve API, available options: --api.port <port>, --api.host [host] and --api.strictPort").option("--threads", "Enabled threads (default: true)").option("--single-thread", "Run tests inside a single thread, requires --threads (default: false)").option("--silent", "Silent console output from tests").option("--isolate", "Isolate environment for each test file (default: true)").option("--reporter <name>", "Specify reporters").option("--outputDiffMaxSize <length>", "Object diff output max size (default: 10000)").option("--outputDiffMaxLines <length>", "Max lines in diff output window (default: 50)").option("--outputTruncateLength <length>", "Diff output line length (default: 80)").option("--outputDiffLines <lines>", "Number of lines in single diff (default: 15)").option("--outputFile <filename/-s>", "Write test results to a file when supporter reporter is also specified, use cac's dot notation for individual outputs of multiple reporters").option("--coverage", "Enable coverage report").option("--run", "Disable watch mode").option("--mode <name>", "Override Vite mode (default: test)").option("--globals", "Inject apis globally").option("--dom", "Mock browser api with happy-dom").option("--browser [options]", "Run tests in the browser (default: false)").option("--environment <env>", "Specify runner environment, if not running in the browser (default: node)").option("--passWithNoTests", "Pass when no tests found").option("--logHeapUsage", "Show the size of heap for each test").option("--allowOnly", "Allow tests and suites that are marked as only (default: !process.env.CI)").option("--dangerouslyIgnoreUnhandledErrors", "Ignore any unhandled errors that occur").option("--shard <shard>", "Test suite shard to execute in a format of <index>/<count>").option("--changed [since]", "Run tests that are affected by the changed files (default: false)").option("--sequence <options>", "Define in what order to run tests (use --sequence.shuffle to run tests in random order)").option("--segfaultRetry <times>", "Return tests on segment fault (default: 0)", { default: 0 }).option("--no-color", "Removes colors from the console output").option("--inspect", "Enable Node.js inspector").option("--inspect-brk", "Enable Node.js inspector with break").option("--test-timeout <time>", "Default timeout of a test in milliseconds (default: 5000)").help();
59
59
  cli.command("run [...filters]").action(run);
60
60
  cli.command("related [...filters]").action(runRelated);
61
61
  cli.command("watch [...filters]").action(watch);
@@ -103,7 +103,7 @@ function normalizeCliOptions(argv) {
103
103
  async function start(mode, cliFilters, options) {
104
104
  try {
105
105
  const ctx = await startVitest(mode, cliFilters.map(normalize), normalizeCliOptions(options));
106
- if (!(ctx == null ? void 0 : ctx.config.watch))
106
+ if (!(ctx == null ? void 0 : ctx.shouldKeepServer()))
107
107
  await (ctx == null ? void 0 : ctx.exit());
108
108
  return ctx;
109
109
  } catch (e) {
package/dist/config.cjs CHANGED
@@ -33,6 +33,10 @@ const coverageConfigDefaults = {
33
33
  reporter: [["text", {}], ["html", {}], ["clover", {}], ["json", {}]],
34
34
  extension: [".js", ".cjs", ".mjs", ".ts", ".mts", ".cts", ".tsx", ".jsx", ".vue", ".svelte"]
35
35
  };
36
+ const browserConfigDefaults = {
37
+ enabled: false,
38
+ headless: stdEnv.isCI
39
+ };
36
40
  const fakeTimersDefaults = {
37
41
  loopLimit: 1e4,
38
42
  shouldClearNativeTimers: true,
@@ -61,6 +65,7 @@ const config = {
61
65
  hookTimeout: 1e4,
62
66
  teardownTimeout: 1e4,
63
67
  isolate: true,
68
+ browser: browserConfigDefaults,
64
69
  watchExclude: ["**/node_modules/**", "**/dist/**"],
65
70
  forceRerunTriggers: [
66
71
  "**/package.json/**",
package/dist/config.d.ts CHANGED
@@ -1,18 +1,18 @@
1
1
  import { UserConfig as UserConfig$2, ConfigEnv } from 'vite';
2
2
  export { ConfigEnv } from 'vite';
3
- import { a3 as ResolvedCoverageOptions, U as UserConfig$1, a6 as CoverageC8Options, a7 as CustomProviderOptions, a5 as CoverageIstanbulOptions, ah as HtmlOptions, ai as FileOptions, aj as CloverOptions, ak as CoberturaOptions, al as HtmlSpaOptions, am as LcovOptions, an as LcovOnlyOptions, ao as TeamcityOptions, ap as TextOptions, aq as ProjectOptions, F as FakeTimerInstallOpts } from './types-7cd96283.js';
3
+ import { a1 as ResolvedCoverageOptions, U as UserConfig$1, a4 as CoverageC8Options, a5 as CustomProviderOptions, a3 as CoverageIstanbulOptions, af as HtmlOptions, ag as FileOptions, ah as CloverOptions, ai as CoberturaOptions, aj as HtmlSpaOptions, ak as LcovOptions, al as LcovOnlyOptions, am as TeamcityOptions, an as TextOptions, ao as ProjectOptions, F as FakeTimerInstallOpts } from './types-fafda418.js';
4
4
  import '@vitest/expect';
5
- import '@vitest/runner/types';
6
5
  import '@vitest/runner';
6
+ import '@vitest/runner/types';
7
7
  import '@vitest/runner/utils';
8
8
  import '@vitest/utils';
9
9
  import 'tinybench';
10
10
  import 'vite-node/client';
11
- import 'vite-node/server';
12
11
  import 'node:worker_threads';
13
12
  import 'vite-node';
14
13
  import 'source-map';
15
14
  import 'node:fs';
15
+ import 'vite-node/server';
16
16
 
17
17
  declare const defaultInclude: string[];
18
18
  declare const defaultExclude: string[];
@@ -32,6 +32,10 @@ declare const config: {
32
32
  hookTimeout: number;
33
33
  teardownTimeout: number;
34
34
  isolate: boolean;
35
+ browser: {
36
+ readonly enabled: false;
37
+ readonly headless: boolean;
38
+ };
35
39
  watchExclude: string[];
36
40
  forceRerunTriggers: string[];
37
41
  update: boolean;
@@ -55,7 +59,7 @@ declare const config: {
55
59
  } & CoverageC8Options) | ({
56
60
  provider: "istanbul";
57
61
  } & CoverageIstanbulOptions), "exclude" | "enabled" | "clean" | "cleanOnRerun" | "reportsDirectory" | "extension">> & {
58
- reporter: (["html", Partial<HtmlOptions>] | ["json", Partial<FileOptions>] | ["none", {}] | ["clover", Partial<CloverOptions>] | ["cobertura", Partial<CoberturaOptions>] | ["html-spa", Partial<HtmlSpaOptions>] | ["json-summary", Partial<FileOptions>] | ["lcov", Partial<LcovOptions>] | ["lcovonly", Partial<LcovOnlyOptions>] | ["teamcity", Partial<TeamcityOptions>] | ["text", Partial<TextOptions>] | ["text-lcov", Partial<ProjectOptions>] | ["text-summary", Partial<FileOptions>])[];
62
+ reporter: (["html", Partial<HtmlOptions>] | ["none", {}] | ["json", Partial<FileOptions>] | ["clover", Partial<CloverOptions>] | ["cobertura", Partial<CoberturaOptions>] | ["html-spa", Partial<HtmlSpaOptions>] | ["json-summary", Partial<FileOptions>] | ["lcov", Partial<LcovOptions>] | ["lcovonly", Partial<LcovOnlyOptions>] | ["teamcity", Partial<TeamcityOptions>] | ["text", Partial<TextOptions>] | ["text-lcov", Partial<ProjectOptions>] | ["text-summary", Partial<FileOptions>])[];
59
63
  };
60
64
  fakeTimers: FakeTimerInstallOpts;
61
65
  maxConcurrency: number;
package/dist/config.js CHANGED
@@ -29,6 +29,10 @@ const coverageConfigDefaults = {
29
29
  reporter: [["text", {}], ["html", {}], ["clover", {}], ["json", {}]],
30
30
  extension: [".js", ".cjs", ".mjs", ".ts", ".mts", ".cts", ".tsx", ".jsx", ".vue", ".svelte"]
31
31
  };
32
+ const browserConfigDefaults = {
33
+ enabled: false,
34
+ headless: isCI
35
+ };
32
36
  const fakeTimersDefaults = {
33
37
  loopLimit: 1e4,
34
38
  shouldClearNativeTimers: true,
@@ -57,6 +61,7 @@ const config = {
57
61
  hookTimeout: 1e4,
58
62
  teardownTimeout: 1e4,
59
63
  isolate: true,
64
+ browser: browserConfigDefaults,
60
65
  watchExclude: ["**/node_modules/**", "**/dist/**"],
61
66
  forceRerunTriggers: [
62
67
  "**/package.json/**",
@@ -1,17 +1,17 @@
1
- import { a4 as BaseCoverageOptions, a3 as ResolvedCoverageOptions } from './types-7cd96283.js';
1
+ import { a2 as BaseCoverageOptions, a1 as ResolvedCoverageOptions } from './types-fafda418.js';
2
2
  import '@vitest/expect';
3
3
  import 'vite';
4
- import '@vitest/runner/types';
5
4
  import '@vitest/runner';
5
+ import '@vitest/runner/types';
6
6
  import '@vitest/runner/utils';
7
7
  import '@vitest/utils';
8
8
  import 'tinybench';
9
9
  import 'vite-node/client';
10
- import 'vite-node/server';
11
10
  import 'node:worker_threads';
12
11
  import 'vite-node';
13
12
  import 'source-map';
14
13
  import 'node:fs';
14
+ import 'vite-node/server';
15
15
 
16
16
  // Type definitions for istanbul-lib-coverage 2.0
17
17
  // Project: https://istanbul.js.org, https://github.com/istanbuljs/istanbuljs
package/dist/entry.js CHANGED
@@ -1,20 +1,19 @@
1
1
  import { startTests } from '@vitest/runner';
2
2
  import { resolve } from 'pathe';
3
- import { g as getWorkerState, r as resetModules } from './chunk-utils-global.727b6d25.js';
4
- import { R as RealDate, g as globalExpect, a as vi } from './chunk-utils-import.ec15dcad.js';
5
- import { d as distDir } from './chunk-constants.797d3ebf.js';
3
+ import { g as getWorkerState, r as resetModules } from './chunk-utils-env.04ffbef7.js';
4
+ import { R as RealDate, g as globalExpect, a as vi } from './chunk-utils-import.39ffe9c5.js';
5
+ import { d as distDir } from './chunk-paths.e36446b4.js';
6
6
  import { s as startCoverageInsideWorker, t as takeCoverageInsideWorker, a as stopCoverageInsideWorker } from './chunk-integrations-coverage.e0a6acd2.js';
7
7
  import { createRequire } from 'node:module';
8
- import c from 'picocolors';
8
+ import { isatty } from 'node:tty';
9
9
  import { installSourcemapsSupport } from 'vite-node/source-map';
10
- import { setColors, getSafeTimers } from '@vitest/utils';
10
+ import { setupColors, createColors, getSafeTimers } from '@vitest/utils';
11
11
  import { e as environments } from './chunk-env-node.affdd278.js';
12
- import { i as index } from './chunk-integrations-utils.233d6a3b.js';
12
+ import { i as index } from './chunk-integrations-utils.d7c85bd9.js';
13
13
  import { s as setupSnapshotEnvironment } from './chunk-snapshot-env.a347d647.js';
14
14
  import { promises, existsSync } from 'node:fs';
15
- import { r as rpc } from './chunk-runtime-rpc.971b3848.js';
16
- import { s as setupCommonEnv } from './chunk-runtime-setup.992bb661.js';
17
- import './chunk-utils-env.860d90c2.js';
15
+ import { r as rpc } from './chunk-runtime-rpc.1b5714dc.js';
16
+ import { s as setupCommonEnv } from './chunk-runtime-setup.a49dc2f9.js';
18
17
  import 'std-env';
19
18
  import '@vitest/runner/utils';
20
19
  import 'chai';
@@ -27,7 +26,7 @@ import '@vitest/spy';
27
26
  import 'node:url';
28
27
  import 'local-pkg';
29
28
  import 'node:console';
30
- import './chunk-integrations-run-once.9012f759.js';
29
+ import './chunk-integrations-run-once.a2b4758b.js';
31
30
 
32
31
  class NodeSnapshotEnvironment {
33
32
  resolvePath(filepath) {
@@ -61,11 +60,11 @@ async function setupGlobalEnv(config) {
61
60
  return;
62
61
  globalSetup = true;
63
62
  setupSnapshotEnvironment(new NodeSnapshotEnvironment());
64
- setColors(c);
65
- const require = createRequire(import.meta.url);
66
- require.extensions[".css"] = () => ({});
67
- require.extensions[".scss"] = () => ({});
68
- require.extensions[".sass"] = () => ({});
63
+ setupColors(createColors(isatty(1)));
64
+ const _require = createRequire(import.meta.url);
65
+ _require.extensions[".css"] = () => ({});
66
+ _require.extensions[".scss"] = () => ({});
67
+ _require.extensions[".sass"] = () => ({});
69
68
  const state = getWorkerState();
70
69
  installSourcemapsSupport({
71
70
  getSourceMap: (source) => state.moduleCache.getSourceMap(source)
@@ -194,6 +193,8 @@ async function withEnv(name, options, executor, fn) {
194
193
  try {
195
194
  await fn();
196
195
  } finally {
196
+ const { setTimeout } = getSafeTimers();
197
+ await new Promise((resolve) => setTimeout(resolve));
197
198
  await env.teardown(globalThis);
198
199
  }
199
200
  }
@@ -260,6 +261,7 @@ async function run(files, config, environment, executor) {
260
261
  }
261
262
  await stopCoverageInsideWorker(config.coverage, executor);
262
263
  });
264
+ workerState.environmentTeardownRun = true;
263
265
  }
264
266
 
265
267
  export { run };
@@ -1,17 +1,17 @@
1
- import { X as Environment } from './types-7cd96283.js';
1
+ import { P as Environment } from './types-fafda418.js';
2
2
  import '@vitest/expect';
3
3
  import 'vite';
4
- import '@vitest/runner/types';
5
4
  import '@vitest/runner';
5
+ import '@vitest/runner/types';
6
6
  import '@vitest/runner/utils';
7
7
  import '@vitest/utils';
8
8
  import 'tinybench';
9
9
  import 'vite-node/client';
10
- import 'vite-node/server';
11
10
  import 'node:worker_threads';
12
11
  import 'vite-node';
13
12
  import 'source-map';
14
13
  import 'node:fs';
14
+ import 'vite-node/server';
15
15
 
16
16
  declare const environments: {
17
17
  node: Environment;
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { Test } from '@vitest/runner';
2
- export { afterAll, afterEach, beforeAll, beforeEach, describe, it, onTestFailed, suite, test } from '@vitest/runner';
3
- import { B as BenchmarkAPI, F as FakeTimerInstallOpts, M as MockFactoryWithHelper, R as RuntimeConfig, a as ResolvedConfig, b as ModuleGraphData, S as SnapshotResult, c as Reporter } from './types-7cd96283.js';
4
- export { x as AfterSuiteRunMeta, A as ApiConfig, G as ArgumentsType, D as Arrayable, z as Awaitable, a4 as BaseCoverageOptions, ab as BenchFunction, a9 as Benchmark, B as BenchmarkAPI, aa as BenchmarkResult, a8 as BenchmarkUserOptions, h as BuiltinEnvironment, i as CSSModuleScopeStrategy, C as CollectLineNumbers, e as CollectLines, O as Constructable, g as Context, o as ContextRPC, n as ContextTestEnvironment, a6 as CoverageC8Options, a5 as CoverageIstanbulOptions, a2 as CoverageOptions, _ as CoverageProvider, a0 as CoverageProviderModule, a1 as CoverageReporter, a7 as CustomProviderOptions, K as DeepMerge, X as Environment, E as EnvironmentOptions, Q as EnvironmentReturn, I as InlineConfig, J as JSDOMOptions, H as MergeInsertions, P as ModuleCache, b as ModuleGraphData, L as MutableArray, N as Nullable, Z as OnServerRestartHandler, d as RawErrsMap, $ as ReportContext, c as Reporter, w as ResolveIdFunction, a as ResolvedConfig, a3 as ResolvedCoverageOptions, f as RootAndTarget, R as RuntimeConfig, m as RuntimeRPC, j as SequenceHooks, q as SnapshotData, t as SnapshotMatchOptions, S as SnapshotResult, s as SnapshotStateOptions, v as SnapshotSummary, r as SnapshotUpdateState, T as TscErrorInfo, l as TypecheckConfig, u as UncheckedSnapshot, U as UserConfig, Y as UserConsoleLog, p as Vitest, V as VitestEnvironment, k as VitestRunMode, W as WorkerContext, y as WorkerGlobalState } from './types-7cd96283.js';
2
+ export { SequenceHooks, SequenceSetupFiles, afterAll, afterEach, beforeAll, beforeEach, describe, it, onTestFailed, suite, test } from '@vitest/runner';
3
+ import { B as BenchmarkAPI, F as FakeTimerInstallOpts, M as MockFactoryWithHelper, R as RuntimeConfig, a as ResolvedConfig, b as ModuleGraphData, S as SnapshotResult, c as Reporter } from './types-fafda418.js';
4
+ export { x as AfterSuiteRunMeta, A as ApiConfig, G as ArgumentsType, D as Arrayable, z as Awaitable, a2 as BaseCoverageOptions, a9 as BenchFunction, a7 as Benchmark, B as BenchmarkAPI, a8 as BenchmarkResult, a6 as BenchmarkUserOptions, h as BuiltinEnvironment, j as CSSModuleScopeStrategy, C as CollectLineNumbers, e as CollectLines, K as Constructable, g as Context, o as ContextRPC, n as ContextTestEnvironment, a4 as CoverageC8Options, a3 as CoverageIstanbulOptions, a0 as CoverageOptions, Y as CoverageProvider, _ as CoverageProviderModule, $ as CoverageReporter, a5 as CustomProviderOptions, P as Environment, E as EnvironmentOptions, O as EnvironmentReturn, I as InlineConfig, J as JSDOMOptions, L as ModuleCache, b as ModuleGraphData, H as MutableArray, N as Nullable, X as OnServerRestartHandler, d as RawErrsMap, Z as ReportContext, c as Reporter, w as ResolveIdFunction, a as ResolvedConfig, a1 as ResolvedCoverageOptions, f as RootAndTarget, R as RuntimeConfig, m as RuntimeRPC, q as SnapshotData, t as SnapshotMatchOptions, S as SnapshotResult, s as SnapshotStateOptions, v as SnapshotSummary, r as SnapshotUpdateState, T as TscErrorInfo, l as TypecheckConfig, u as UncheckedSnapshot, U as UserConfig, Q as UserConsoleLog, p as Vitest, V as VitestEnvironment, i as VitestPool, k as VitestRunMode, W as WorkerContext, y as WorkerGlobalState } from './types-fafda418.js';
5
5
  import { spyOn, fn, MaybeMockedDeep, MaybeMocked, MaybePartiallyMocked, MaybePartiallyMockedDeep, EnhancedSpy } from '@vitest/spy';
6
6
  export { EnhancedSpy, Mock, MockContext, MockInstance, Mocked, MockedClass, MockedFunction, MockedObject, SpyInstance } from '@vitest/spy';
7
7
  export { S as SnapshotEnvironment } from './env-afee91f0.js';
@@ -16,11 +16,11 @@ export { Bench as BenchFactory, Options as BenchOptions, Task as BenchTask, Task
16
16
  import '@vitest/expect';
17
17
  import '@vitest/utils';
18
18
  import 'vite-node/client';
19
- import 'vite-node/server';
20
19
  import 'node:worker_threads';
21
20
  import 'vite-node';
22
21
  import 'source-map';
23
22
  import 'node:fs';
23
+ import 'vite-node/server';
24
24
 
25
25
  declare type Not<T extends boolean> = T extends true ? false : true;
26
26
  declare type And<Types extends boolean[]> = Types[number] extends true ? true : false;
@@ -337,10 +337,9 @@ interface TransformResultWithSource extends TransformResult {
337
337
  source?: string;
338
338
  }
339
339
  interface WebSocketHandlers {
340
- onWatcherStart: () => Promise<void>;
341
- onFinished(files?: File[]): Promise<void>;
342
340
  onCollected(files?: File[]): Promise<void>;
343
341
  onTaskUpdate(packs: TaskResultPack[]): void;
342
+ onDone(name: string): void;
344
343
  getFiles(): File[];
345
344
  getPaths(): string[];
346
345
  getConfig(): ResolvedConfig;
package/dist/index.js CHANGED
@@ -1,20 +1,19 @@
1
1
  export { afterAll, afterEach, beforeAll, beforeEach, describe, it, onTestFailed, suite, test } from '@vitest/runner';
2
- export { b as bench, c as createExpect, g as expect, a as vi, v as vitest } from './chunk-utils-import.ec15dcad.js';
3
- export { i as isFirstRun, r as runOnce } from './chunk-integrations-run-once.9012f759.js';
4
- import { d as dist } from './chunk-integrations-utils.233d6a3b.js';
5
- export { b as assertType, g as getRunningMode, a as isWatchMode } from './chunk-integrations-utils.233d6a3b.js';
2
+ export { b as bench, c as createExpect, g as expect, a as vi, v as vitest } from './chunk-utils-import.39ffe9c5.js';
3
+ export { i as isFirstRun, r as runOnce } from './chunk-integrations-run-once.a2b4758b.js';
4
+ import { d as dist } from './chunk-integrations-utils.d7c85bd9.js';
5
+ export { b as assertType, g as getRunningMode, a as isWatchMode } from './chunk-integrations-utils.d7c85bd9.js';
6
6
  import * as chai from 'chai';
7
7
  export { chai };
8
8
  export { assert, should } from 'chai';
9
9
  import '@vitest/runner/utils';
10
10
  import '@vitest/utils';
11
- import './chunk-utils-global.727b6d25.js';
11
+ import './chunk-utils-env.04ffbef7.js';
12
12
  import 'pathe';
13
- import './chunk-utils-env.860d90c2.js';
14
13
  import 'std-env';
15
14
  import './vendor-_commonjsHelpers.addc3445.js';
16
15
  import '@vitest/expect';
17
- import './chunk-runtime-rpc.971b3848.js';
16
+ import './chunk-runtime-rpc.1b5714dc.js';
18
17
  import './chunk-snapshot-env.a347d647.js';
19
18
  import './chunk-utils-base.81f83dbd.js';
20
19
  import './chunk-utils-tasks.b41c8284.js';
package/dist/loader.js CHANGED
@@ -2,7 +2,7 @@ import { pathToFileURL, fileURLToPath } from 'node:url';
2
2
  import { readFile } from 'node:fs/promises';
3
3
  import { i as isNodeBuiltin, h as hasCJSSyntax } from './vendor-index.bdee400f.js';
4
4
  import { normalizeModuleId } from 'vite-node/utils';
5
- import { g as getWorkerState } from './chunk-utils-global.727b6d25.js';
5
+ import { g as getWorkerState } from './chunk-utils-env.04ffbef7.js';
6
6
  import 'acorn';
7
7
  import 'node:module';
8
8
  import 'node:fs';
@@ -12,7 +12,6 @@ import 'node:process';
12
12
  import 'node:path';
13
13
  import 'node:v8';
14
14
  import 'node:util';
15
- import './chunk-utils-env.860d90c2.js';
16
15
  import 'std-env';
17
16
  import '@vitest/runner/utils';
18
17
  import '@vitest/utils';
package/dist/node.d.ts CHANGED
@@ -1,18 +1,18 @@
1
- import { k as VitestRunMode, U as UserConfig, p as Vitest, ac as MockFactory, ad as MockMap, ae as TestSequencer } from './types-7cd96283.js';
2
- export { ae as TestSequencer, ag as TestSequencerConstructor, p as Vitest, af as startVitest } from './types-7cd96283.js';
1
+ import { k as VitestRunMode, U as UserConfig, p as Vitest, aa as MockFactory, ab as MockMap, ac as TestSequencer } from './types-fafda418.js';
2
+ export { ac as TestSequencer, ae as TestSequencerConstructor, p as Vitest, ad as startVitest } from './types-fafda418.js';
3
3
  import { UserConfig as UserConfig$1, Plugin } from 'vite';
4
4
  import { ViteNodeRunner } from 'vite-node/client';
5
5
  import { ViteNodeRunnerOptions } from 'vite-node';
6
6
  import '@vitest/expect';
7
- import '@vitest/runner/types';
8
7
  import '@vitest/runner';
8
+ import '@vitest/runner/types';
9
9
  import '@vitest/runner/utils';
10
10
  import '@vitest/utils';
11
11
  import 'tinybench';
12
- import 'vite-node/server';
13
12
  import 'node:worker_threads';
14
13
  import 'source-map';
15
14
  import 'node:fs';
15
+ import 'vite-node/server';
16
16
 
17
17
  declare function createVitest(mode: VitestRunMode, options: UserConfig, viteOverrides?: UserConfig$1): Promise<Vitest>;
18
18