vitest 4.0.1 → 4.0.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.
Files changed (29) hide show
  1. package/dist/chunks/{base.BYPMk0VN.js → base.CVAgx931.js} +1 -1
  2. package/dist/chunks/{cac.DrF4Gm0S.js → cac.D3tBgDur.js} +4 -4
  3. package/dist/chunks/{cli-api.W2Q-JQoO.js → cli-api.D24RdiHp.js} +29 -17
  4. package/dist/chunks/{coverage.FU3w4IrQ.js → coverage.BJHGXm3x.js} +10 -1
  5. package/dist/chunks/{creator.DucAaYBz.js → creator.cqqifzG7.js} +2 -1
  6. package/dist/chunks/{index.CbWINfS7.js → index.DON9WL-E.js} +6 -1
  7. package/dist/chunks/{init-forks.WglB-sfY.js → init-forks.BtwT3q9G.js} +1 -1
  8. package/dist/chunks/{init-threads.Czek6eA5.js → init-threads.BEmFEaEY.js} +1 -1
  9. package/dist/chunks/{init.94FWN9pW.js → init.DvvF4rpe.js} +1 -1
  10. package/dist/chunks/{plugin.d.DQU1R5px.d.ts → plugin.d.D8LgBgbU.d.ts} +1 -1
  11. package/dist/chunks/{reporters.d.BMKt7f6I.d.ts → reporters.d.D-el0219.d.ts} +8 -0
  12. package/dist/chunks/{resolveSnapshotEnvironment.DJJKMKxb.js → resolveSnapshotEnvironment.yzXri_YN.js} +1 -1
  13. package/dist/chunks/{test.C3RPt8JR.js → test.CR2PBYe2.js} +2 -3
  14. package/dist/cli.js +1 -1
  15. package/dist/config.d.ts +3 -3
  16. package/dist/coverage.d.ts +1 -1
  17. package/dist/coverage.js +1 -1
  18. package/dist/environments.js +1 -1
  19. package/dist/node.d.ts +3 -3
  20. package/dist/node.js +5 -5
  21. package/dist/reporters.d.ts +1 -1
  22. package/dist/runners.js +1 -1
  23. package/dist/worker.js +5 -5
  24. package/dist/workers/forks.js +6 -6
  25. package/dist/workers/runVmTests.js +2 -2
  26. package/dist/workers/threads.js +6 -6
  27. package/dist/workers/vmForks.js +3 -3
  28. package/dist/workers/vmThreads.js +3 -3
  29. package/package.json +12 -12
@@ -4,7 +4,7 @@ import { V as VitestEvaluatedModules } from './evaluatedModules.Dg1zASAC.js';
4
4
  import { s as startVitestModuleRunner, c as createNodeImportMeta } from './startModuleRunner.iF1E9Bt4.js';
5
5
  import { performance } from 'node:perf_hooks';
6
6
  import { startTests, collectTests } from '@vitest/runner';
7
- import { a as resolveSnapshotEnvironment, s as setupChaiConfig, r as resolveTestRunner } from './resolveSnapshotEnvironment.DJJKMKxb.js';
7
+ import { a as resolveSnapshotEnvironment, s as setupChaiConfig, r as resolveTestRunner } from './resolveSnapshotEnvironment.yzXri_YN.js';
8
8
  import { c as setupCommonEnv, s as startCoverageInsideWorker, a as stopCoverageInsideWorker } from './setup-common.DR1sucx6.js';
9
9
  import { g as globalExpect, v as vi } from './vi.BZvkKVkM.js';
10
10
  import { c as closeInspector } from './inspector.DLZxSeU3.js';
@@ -619,7 +619,7 @@ class CAC extends EventEmitter {
619
619
 
620
620
  const cac = (name = "") => new CAC(name);
621
621
 
622
- var version = "4.0.1";
622
+ var version = "4.0.3";
623
623
 
624
624
  const apiConfig = (port) => ({
625
625
  port: {
@@ -1294,7 +1294,7 @@ function normalizeCliOptions(cliFilters, argv) {
1294
1294
  }
1295
1295
  async function start(mode, cliFilters, options) {
1296
1296
  try {
1297
- const { startVitest } = await import('./cli-api.W2Q-JQoO.js').then(function (n) { return n.p; }), ctx = await startVitest(mode, cliFilters.map(normalize), normalizeCliOptions(cliFilters, options));
1297
+ const { startVitest } = await import('./cli-api.D24RdiHp.js').then(function (n) { return n.p; }), ctx = await startVitest(mode, cliFilters.map(normalize), normalizeCliOptions(cliFilters, options));
1298
1298
  if (!ctx.shouldKeepServer()) await ctx.exit();
1299
1299
  } catch (e) {
1300
1300
  const { errorBanner } = await import('./index.CcRZ6fUh.js').then(function (n) { return n.u; });
@@ -1304,12 +1304,12 @@ async function start(mode, cliFilters, options) {
1304
1304
  }
1305
1305
  async function init(project) {
1306
1306
  if (project !== "browser") console.error(/* @__PURE__ */ new Error("Only the \"browser\" project is supported. Use \"vitest init browser\" to create a new project.")), process.exit(1);
1307
- const { create } = await import('./creator.DucAaYBz.js');
1307
+ const { create } = await import('./creator.cqqifzG7.js');
1308
1308
  await create();
1309
1309
  }
1310
1310
  async function collect(mode, cliFilters, options) {
1311
1311
  try {
1312
- const { prepareVitest, processCollected, outputFileList } = await import('./cli-api.W2Q-JQoO.js').then(function (n) { return n.p; }), ctx = await prepareVitest(mode, {
1312
+ const { prepareVitest, processCollected, outputFileList } = await import('./cli-api.D24RdiHp.js').then(function (n) { return n.p; }), ctx = await prepareVitest(mode, {
1313
1313
  ...normalizeCliOptions(cliFilters, options),
1314
1314
  watch: false,
1315
1315
  run: true
@@ -11,7 +11,7 @@ import * as nodeos from 'node:os';
11
11
  import nodeos__default, { tmpdir } from 'node:os';
12
12
  import { generateHash as generateHash$1, calculateSuiteHash, someTasksAreOnly, interpretTaskModes, hasFailed, generateFileHash, limitConcurrency, createFileTask as createFileTask$1, getTasks, isTestCase } from '@vitest/runner/utils';
13
13
  import { SnapshotManager } from '@vitest/snapshot/manager';
14
- import { v as version$1 } from './cac.DrF4Gm0S.js';
14
+ import { v as version$1 } from './cac.D3tBgDur.js';
15
15
  import { c as createBirpc } from './index.Bgo3tNWt.js';
16
16
  import { p as parse, d as stringify, e as TraceMap, o as originalPositionFor, h as ancestor, i as printError, f as formatProjectName, w as withLabel, j as errorBanner, k as divider, l as Typechecker, m as generateCodeFrame, n as createDefinesScript, R as ReportersMap, B as BlobReporter, r as readBlobs, q as convertTasksToEvents, H as HangingProcessReporter } from './index.CcRZ6fUh.js';
17
17
  import require$$0$3 from 'events';
@@ -28,7 +28,7 @@ import { g as getDefaultExportFromCjs } from './_commonjsHelpers.BFTU3MAI.js';
28
28
  import crypto, { createHash } from 'node:crypto';
29
29
  import { rootDir, distDir } from '../path.js';
30
30
  import createDebug from 'debug';
31
- import { h as hash, R as RandomSequencer, i as isPackageExists, c as isBrowserEnabled, r as resolveConfig, g as getCoverageProvider, a as resolveApiServerConfig } from './coverage.FU3w4IrQ.js';
31
+ import { h as hash, R as RandomSequencer, i as isPackageExists, c as isBrowserEnabled, r as resolveConfig, g as getCoverageProvider, a as resolveApiServerConfig } from './coverage.BJHGXm3x.js';
32
32
  import { readFile, writeFile, rename, stat, unlink, rm, mkdir, copyFile } from 'node:fs/promises';
33
33
  import { builtinModules, createRequire, isBuiltin } from 'node:module';
34
34
  import { VitestModuleEvaluator } from '#module-evaluator';
@@ -6779,7 +6779,10 @@ class VmForksPoolWorker extends ForksPoolWorker {
6779
6779
  entrypoint;
6780
6780
  constructor(options) {
6781
6781
  /** Loads {@link file://./../../../runtime/workers/vmForks.ts} */
6782
- super(options), this.execArgv.push("--experimental-vm-modules"), this.entrypoint = resolve$1(options.distPath, "workers/vmForks.js");
6782
+ super({
6783
+ ...options,
6784
+ execArgv: [...options.execArgv, "--experimental-vm-modules"]
6785
+ }), this.entrypoint = resolve$1(options.distPath, "workers/vmForks.js");
6783
6786
  }
6784
6787
  }
6785
6788
 
@@ -6790,7 +6793,10 @@ class VmThreadsPoolWorker extends ThreadsPoolWorker {
6790
6793
  entrypoint;
6791
6794
  constructor(options) {
6792
6795
  /** Loads {@link file://./../../../runtime/workers/vmThreads.ts} */
6793
- super(options), this.execArgv.push("--experimental-vm-modules"), this.entrypoint = resolve$1(options.distPath, "workers/vmThreads.js");
6796
+ super({
6797
+ ...options,
6798
+ execArgv: [...options.execArgv, "--experimental-vm-modules"]
6799
+ }), this.entrypoint = resolve$1(options.distPath, "workers/vmThreads.js");
6794
6800
  }
6795
6801
  }
6796
6802
 
@@ -6961,7 +6967,7 @@ function createPool(ctx) {
6961
6967
  }
6962
6968
  const taskGroups = [];
6963
6969
  let workerId = 0;
6964
- const sorted = await sequencer.sort(specs), environments = await getSpecificationsEnvironments(specs), groups = groupSpecs(sorted);
6970
+ const sorted = await sequencer.sort(specs), environments = await getSpecificationsEnvironments(specs), groups = groupSpecs(sorted), projectEnvs = /* @__PURE__ */ new WeakMap(), projectExecArgvs = /* @__PURE__ */ new WeakMap();
6965
6971
  for (const group of groups) {
6966
6972
  if (!group) continue;
6967
6973
  const taskGroup = [], browserSpecs = [];
@@ -6978,6 +6984,19 @@ function createPool(ctx) {
6978
6984
  }
6979
6985
  const environment = environments.get(specs[0]);
6980
6986
  if (!environment) throw new Error(`Cannot find the environment. This is a bug in Vitest.`);
6987
+ let env = projectEnvs.get(project);
6988
+ if (!env) {
6989
+ // env are case-insensitive on Windows, but spawned processes don't support it
6990
+ if (env = {
6991
+ ...process.env,
6992
+ ...options.env,
6993
+ ...ctx.config.env,
6994
+ ...project.config.env
6995
+ }, isWindows) for (const name in env) env[name.toUpperCase()] = env[name];
6996
+ projectEnvs.set(project, env);
6997
+ }
6998
+ let execArgv = projectExecArgvs.get(project);
6999
+ if (!execArgv) execArgv = [...options.execArgv, ...project.config.execArgv], projectExecArgvs.set(project, execArgv);
6981
7000
  taskGroup.push({
6982
7001
  context: {
6983
7002
  pool,
@@ -6993,11 +7012,8 @@ function createPool(ctx) {
6993
7012
  workerId: workerId++
6994
7013
  },
6995
7014
  project,
6996
- env: {
6997
- ...options.env,
6998
- ...project.config.env
6999
- },
7000
- execArgv: [...options.execArgv, ...project.config.execArgv],
7015
+ env,
7016
+ execArgv,
7001
7017
  worker: pool,
7002
7018
  isolate: project.config.isolate,
7003
7019
  memoryLimit: getMemoryLimit(ctx.config, pool) ?? null
@@ -7045,7 +7061,8 @@ function resolveOptions(ctx) {
7045
7061
  return condition === "production" ? ctx.vite.config.isProduction : condition === "development" ? !ctx.vite.config.isProduction : true;
7046
7062
  }).map((condition) => {
7047
7063
  return viteMajor >= 6 && condition === "development|production" ? ctx.vite.config.isProduction ? "production" : "development" : condition;
7048
- }).flatMap((c) => ["--conditions", c]), options = {
7064
+ }).flatMap((c) => ["--conditions", c]);
7065
+ return {
7049
7066
  execArgv: [
7050
7067
  ...process.execArgv.filter((execArg) => execArg.startsWith("--cpu-prof") || execArg.startsWith("--heap-prof") || execArg.startsWith("--diagnostic-dir")),
7051
7068
  ...conditions,
@@ -7058,14 +7075,9 @@ function resolveOptions(ctx) {
7058
7075
  VITEST: "true",
7059
7076
  NODE_ENV: process.env.NODE_ENV || "test",
7060
7077
  VITEST_MODE: ctx.config.watch ? "WATCH" : "RUN",
7061
- FORCE_TTY: isatty(1) ? "true" : "",
7062
- ...process.env,
7063
- ...ctx.config.env
7078
+ FORCE_TTY: isatty(1) ? "true" : ""
7064
7079
  }
7065
7080
  };
7066
- // env are case-insensitive on Windows, but spawned processes don't support it
7067
- if (isWindows) for (const name in options.env) options.env[name.toUpperCase()] = options.env[name];
7068
- return options;
7069
7081
  }
7070
7082
  function resolveMaxWorkers(project) {
7071
7083
  if (project.config.maxWorkers) return project.config.maxWorkers;
@@ -2622,7 +2622,16 @@ function resolveConfig$1(vitest, options, viteConfig) {
2622
2622
  const reportersFromCLI = resolved.reporter, cliReporters = toArray(reportersFromCLI || []).map((reporter) => {
2623
2623
  return /^\.\.?\//.test(reporter) ? resolve(process.cwd(), reporter) : reporter;
2624
2624
  });
2625
- if (cliReporters.length) resolved.reporters = Array.from(new Set(toArray(cliReporters))).filter(Boolean).map((reporter) => [reporter, {}]);
2625
+ if (cliReporters.length) {
2626
+ // When CLI reporters are specified, preserve options from config file
2627
+ const configReportersMap = /* @__PURE__ */ new Map();
2628
+ // Build a map of reporter names to their options from the config
2629
+ for (const reporter of resolved.reporters) if (Array.isArray(reporter)) {
2630
+ const [reporterName, reporterOptions] = reporter;
2631
+ if (typeof reporterName === "string") configReportersMap.set(reporterName, reporterOptions);
2632
+ }
2633
+ resolved.reporters = Array.from(new Set(toArray(cliReporters))).filter(Boolean).map((reporter) => [reporter, configReportersMap.get(reporter) || {}]);
2634
+ }
2626
2635
  }
2627
2636
  if (!resolved.reporters.length) {
2628
2637
  // also enable github-actions reporter as a default
@@ -36,7 +36,7 @@ export default function HelloWorld({ name }: { name: string }) {
36
36
  test: `
37
37
  import { expect, test } from 'vitest'
38
38
  import { render } from '@testing-library/jsx'
39
- import HelloWorld from './HelloWorld.jsx'
39
+ import HelloWorld from './HelloWorld.<EXT>x'
40
40
 
41
41
  test('renders name', async () => {
42
42
  const { getByText } = await render(<HelloWorld name="Vitest" />)
@@ -291,6 +291,7 @@ async function generateExampleFiles(framework, lang) {
291
291
  const isJSX = fileName.endsWith(".jsx");
292
292
  if (isJSX && lang === "ts") fileName = fileName.replace(".jsx", ".tsx");
293
293
  else if (fileName.endsWith(".js") && lang === "ts") fileName = fileName.replace(".js", ".ts");
294
+ example.test = example.test.replace("<EXT>", lang);
294
295
  const filePath = resolve(folder, fileName), testPath = resolve(folder, `HelloWorld.test.${isJSX ? `${lang}x` : lang}`);
295
296
  return writeFileSync(filePath, fileContent.trimStart(), "utf-8"), writeFileSync(testPath, example.test.trimStart(), "utf-8"), testPath;
296
297
  }
@@ -349,7 +349,12 @@ var happy = {
349
349
  "Request",
350
350
  "Response",
351
351
  "MessagePort",
352
- "fetch"
352
+ "fetch",
353
+ "Headers",
354
+ "AbortController",
355
+ "AbortSignal",
356
+ "URL",
357
+ "URLSearchParams"
353
358
  ]
354
359
  });
355
360
  return { async teardown(global) {
@@ -1,5 +1,5 @@
1
1
  import v8 from 'node:v8';
2
- import { i as init } from './init.94FWN9pW.js';
2
+ import { i as init } from './init.DvvF4rpe.js';
3
3
 
4
4
  if (!process.send) throw new Error("Expected worker to be run in node:child_process");
5
5
  // Store globals in case tests overwrite them
@@ -1,5 +1,5 @@
1
1
  import { isMainThread, parentPort } from 'node:worker_threads';
2
- import { i as init } from './init.94FWN9pW.js';
2
+ import { i as init } from './init.DvvF4rpe.js';
3
3
 
4
4
  if (isMainThread || !parentPort) throw new Error("Expected worker to be run in node:worker_threads");
5
5
  function workerInit(options) {
@@ -6,7 +6,7 @@ import { pathToFileURL } from 'node:url';
6
6
  import { resolve } from 'pathe';
7
7
  import { ModuleRunner } from 'vite/module-runner';
8
8
  import { b as VitestTransport } from './startModuleRunner.iF1E9Bt4.js';
9
- import { e as environments } from './index.CbWINfS7.js';
9
+ import { e as environments } from './index.DON9WL-E.js';
10
10
  import { s as setupInspect } from './inspector.DLZxSeU3.js';
11
11
  import { V as VitestEvaluatedModules } from './evaluatedModules.Dg1zASAC.js';
12
12
  import { c as createRuntimeRpc, a as rpcDone } from './rpc.cD77ENhU.js';
@@ -1,4 +1,4 @@
1
- import { V as Vitest, T as TestProject, a as TestProjectConfiguration } from './reporters.d.BMKt7f6I.js';
1
+ import { V as Vitest, T as TestProject, a as TestProjectConfiguration } from './reporters.d.D-el0219.js';
2
2
 
3
3
  interface VitestPluginContext {
4
4
  vitest: Vitest;
@@ -1891,7 +1891,15 @@ interface PoolTask {
1891
1891
  worker: "forks" | "threads" | "vmForks" | "vmThreads" | (string & {});
1892
1892
  project: TestProject;
1893
1893
  isolate: boolean;
1894
+ /**
1895
+ * Custom `process.env`. All tasks in the same project will reference the same object,
1896
+ * so modifying it once will modify it for every task.
1897
+ */
1894
1898
  env: Partial<NodeJS.ProcessEnv>;
1899
+ /**
1900
+ * Custom `execArgv`. All tasks in the same project will reference the same array,
1901
+ * so modifying it once will modify it for every task.
1902
+ */
1895
1903
  execArgv: string[];
1896
1904
  context: ContextRPC;
1897
1905
  memoryLimit: number | null;
@@ -2,7 +2,7 @@ import { chai } from '@vitest/expect';
2
2
  import { l as loadDiffConfig, b as loadSnapshotSerializers, t as takeCoverageInsideWorker } from './setup-common.DR1sucx6.js';
3
3
  import { r as rpc } from './rpc.cD77ENhU.js';
4
4
  import { g as getWorkerState } from './utils.CG9h5ccR.js';
5
- import { V as VitestTestRunner, N as NodeBenchmarkRunner } from './test.C3RPt8JR.js';
5
+ import { V as VitestTestRunner, N as NodeBenchmarkRunner } from './test.CR2PBYe2.js';
6
6
 
7
7
  function setupChaiConfig(config) {
8
8
  Object.assign(chai.config, config);
@@ -203,10 +203,9 @@ class VitestTestRunner {
203
203
  }
204
204
  function clearModuleMocks(config) {
205
205
  const { clearMocks, mockReset, restoreMocks, unstubEnvs, unstubGlobals } = config;
206
- // since each function calls another, we can just call one
207
206
  if (restoreMocks) vi.restoreAllMocks();
208
- else if (mockReset) vi.resetAllMocks();
209
- else if (clearMocks) vi.clearAllMocks();
207
+ if (mockReset) vi.resetAllMocks();
208
+ if (clearMocks) vi.clearAllMocks();
210
209
  if (unstubEnvs) vi.unstubAllEnvs();
211
210
  if (unstubGlobals) vi.unstubAllGlobals();
212
211
  }
package/dist/cli.js CHANGED
@@ -1,4 +1,4 @@
1
- import { c as createCLI } from './chunks/cac.DrF4Gm0S.js';
1
+ import { c as createCLI } from './chunks/cac.D3tBgDur.js';
2
2
  import '@vitest/utils/helpers';
3
3
  import 'events';
4
4
  import 'pathe';
package/dist/config.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  import { HookHandler, ConfigEnv, UserConfig } from 'vite';
2
2
  export { ConfigEnv, Plugin, UserConfig as ViteUserConfig, mergeConfig } from 'vite';
3
- import { I as InlineConfig, c as CoverageV8Options, R as ResolvedCoverageOptions, U as UserWorkspaceConfig, d as UserProjectConfigFn, e as UserProjectConfigExport } from './chunks/reporters.d.BMKt7f6I.js';
4
- export { a as TestProjectConfiguration, g as TestProjectInlineConfiguration, f as TestUserConfig, W as WatcherTriggerPattern } from './chunks/reporters.d.BMKt7f6I.js';
5
- import { V as VitestPluginContext } from './chunks/plugin.d.DQU1R5px.js';
3
+ import { I as InlineConfig, c as CoverageV8Options, R as ResolvedCoverageOptions, U as UserWorkspaceConfig, d as UserProjectConfigFn, e as UserProjectConfigExport } from './chunks/reporters.d.D-el0219.js';
4
+ export { a as TestProjectConfiguration, g as TestProjectInlineConfiguration, f as TestUserConfig, W as WatcherTriggerPattern } from './chunks/reporters.d.D-el0219.js';
5
+ import { V as VitestPluginContext } from './chunks/plugin.d.D8LgBgbU.js';
6
6
  import { F as FakeTimerInstallOpts } from './chunks/config.d.u2CUDWwS.js';
7
7
  import '@vitest/runner';
8
8
  import '@vitest/utils';
@@ -1,4 +1,4 @@
1
- import { R as ResolvedCoverageOptions, V as Vitest, C as CoverageMap, b as ReportContext } from './chunks/reporters.d.BMKt7f6I.js';
1
+ import { R as ResolvedCoverageOptions, V as Vitest, C as CoverageMap, b as ReportContext } from './chunks/reporters.d.D-el0219.js';
2
2
  import { TransformResult } from 'vite';
3
3
  import { A as AfterSuiteRunMeta } from './chunks/worker.d.BFk-vvBU.js';
4
4
  import '@vitest/runner';
package/dist/coverage.js CHANGED
@@ -1,4 +1,4 @@
1
- export { B as BaseCoverageProvider } from './chunks/coverage.FU3w4IrQ.js';
1
+ export { B as BaseCoverageProvider } from './chunks/coverage.BJHGXm3x.js';
2
2
  import 'node:fs';
3
3
  import 'node:path';
4
4
  import '@vitest/utils/helpers';
@@ -1,2 +1,2 @@
1
- export { e as builtinEnvironments, p as populateGlobal } from './chunks/index.CbWINfS7.js';
1
+ export { e as builtinEnvironments, p as populateGlobal } from './chunks/index.DON9WL-E.js';
2
2
  import 'node:console';
package/dist/node.d.ts CHANGED
@@ -3,14 +3,14 @@ import { InlineConfig, UserConfig as UserConfig$1, Plugin, ResolvedConfig as Res
3
3
  export { vite as Vite };
4
4
  export { esbuildVersion, isCSSRequest, isFileServingAllowed, parseAst, parseAstAsync, rollupVersion, version as viteVersion } from 'vite';
5
5
  import { IncomingMessage } from 'node:http';
6
- import { h as ResolvedConfig, f as UserConfig, i as VitestRunMode, j as VitestOptions, V as Vitest, A as ApiConfig, k as TestSpecification, T as TestProject, P as PoolWorker, l as PoolOptions, m as WorkerRequest, n as TestSequencer, L as Logger } from './chunks/reporters.d.BMKt7f6I.js';
7
- export { at as BaseCoverageOptions, Y as BenchmarkUserOptions, Z as BrowserBuiltinProvider, $ as BrowserCommand, a0 as BrowserCommandContext, a1 as BrowserConfigOptions, a2 as BrowserInstanceOption, a3 as BrowserModuleMocker, a4 as BrowserOrchestrator, a5 as BrowserProvider, a6 as BrowserProviderOption, a7 as BrowserScript, a8 as BrowserServerFactory, a9 as BrowserServerOptions, aa as BrowserServerState, ab as BrowserServerStateSession, ai as BuiltinEnvironment, ac as CDPSession, aj as CSSModuleScopeStrategy, au as CoverageIstanbulOptions, av as CoverageOptions, aw as CoverageProvider, ax as CoverageProviderModule, ay as CoverageReporter, c as CoverageV8Options, az as CustomProviderOptions, ak as DepsOptimizationOptions, al as EnvironmentOptions, H as HTMLOptions, I as InlineConfig, t as JUnitOptions, J as JsonOptions, M as ModuleDiagnostic, O as OnServerRestartHandler, o as OnTestsRerunHandler, ad as ParentProjectBrowser, am as Pool, q as PoolRunnerInitializer, r as PoolTask, ae as ProjectBrowser, an as ProjectConfig, b as ReportContext, aB as ReportedHookContext, aC as Reporter, ap as ResolveSnapshotPathHandler, aq as ResolveSnapshotPathHandlerContext, af as ResolvedBrowserOptions, R as ResolvedCoverageOptions, ao as ResolvedProjectConfig, S as SerializedTestProject, u as TaskOptions, v as TestCase, w as TestCollection, x as TestDiagnostic, y as TestModule, z as TestModuleState, B as TestResult, D as TestResultFailed, E as TestResultPassed, F as TestResultSkipped, aD as TestRunEndReason, aA as TestRunResult, X as TestSequencerConstructor, G as TestState, K as TestSuite, N as TestSuiteState, ag as ToMatchScreenshotComparators, ah as ToMatchScreenshotOptions, ar as TypecheckConfig, U as UserWorkspaceConfig, as as VitestEnvironment, p as VitestPackageInstaller, W as WatcherTriggerPattern, s as WorkerResponse, _ as _BrowserNames, Q as experimental_getRunnerTask } from './chunks/reporters.d.BMKt7f6I.js';
6
+ import { h as ResolvedConfig, f as UserConfig, i as VitestRunMode, j as VitestOptions, V as Vitest, A as ApiConfig, k as TestSpecification, T as TestProject, P as PoolWorker, l as PoolOptions, m as WorkerRequest, n as TestSequencer, L as Logger } from './chunks/reporters.d.D-el0219.js';
7
+ export { at as BaseCoverageOptions, Y as BenchmarkUserOptions, Z as BrowserBuiltinProvider, $ as BrowserCommand, a0 as BrowserCommandContext, a1 as BrowserConfigOptions, a2 as BrowserInstanceOption, a3 as BrowserModuleMocker, a4 as BrowserOrchestrator, a5 as BrowserProvider, a6 as BrowserProviderOption, a7 as BrowserScript, a8 as BrowserServerFactory, a9 as BrowserServerOptions, aa as BrowserServerState, ab as BrowserServerStateSession, ai as BuiltinEnvironment, ac as CDPSession, aj as CSSModuleScopeStrategy, au as CoverageIstanbulOptions, av as CoverageOptions, aw as CoverageProvider, ax as CoverageProviderModule, ay as CoverageReporter, c as CoverageV8Options, az as CustomProviderOptions, ak as DepsOptimizationOptions, al as EnvironmentOptions, H as HTMLOptions, I as InlineConfig, t as JUnitOptions, J as JsonOptions, M as ModuleDiagnostic, O as OnServerRestartHandler, o as OnTestsRerunHandler, ad as ParentProjectBrowser, am as Pool, q as PoolRunnerInitializer, r as PoolTask, ae as ProjectBrowser, an as ProjectConfig, b as ReportContext, aB as ReportedHookContext, aC as Reporter, ap as ResolveSnapshotPathHandler, aq as ResolveSnapshotPathHandlerContext, af as ResolvedBrowserOptions, R as ResolvedCoverageOptions, ao as ResolvedProjectConfig, S as SerializedTestProject, u as TaskOptions, v as TestCase, w as TestCollection, x as TestDiagnostic, y as TestModule, z as TestModuleState, B as TestResult, D as TestResultFailed, E as TestResultPassed, F as TestResultSkipped, aD as TestRunEndReason, aA as TestRunResult, X as TestSequencerConstructor, G as TestState, K as TestSuite, N as TestSuiteState, ag as ToMatchScreenshotComparators, ah as ToMatchScreenshotOptions, ar as TypecheckConfig, U as UserWorkspaceConfig, as as VitestEnvironment, p as VitestPackageInstaller, W as WatcherTriggerPattern, s as WorkerResponse, _ as _BrowserNames, Q as experimental_getRunnerTask } from './chunks/reporters.d.D-el0219.js';
8
8
  import { Awaitable } from '@vitest/utils';
9
9
  export { SerializedError } from '@vitest/utils';
10
10
  import { R as RuntimeRPC, C as ContextRPC } from './chunks/worker.d.BFk-vvBU.js';
11
11
  export { T as TestExecutionType } from './chunks/worker.d.BFk-vvBU.js';
12
12
  import { Writable } from 'node:stream';
13
- export { V as VitestPluginContext } from './chunks/plugin.d.DQU1R5px.js';
13
+ export { V as VitestPluginContext } from './chunks/plugin.d.D8LgBgbU.js';
14
14
  import { Debugger } from 'debug';
15
15
  import './chunks/global.d.BgJSTpgQ.js';
16
16
  export { Task as RunnerTask, TaskResult as RunnerTaskResult, TaskResultPack as RunnerTaskResultPack, Test as RunnerTestCase, File as RunnerTestFile, Suite as RunnerTestSuite, SequenceHooks, SequenceSetupFiles } from '@vitest/runner';
package/dist/node.js CHANGED
@@ -1,11 +1,11 @@
1
1
  import * as vite from 'vite';
2
2
  import { resolveConfig as resolveConfig$1, mergeConfig } from 'vite';
3
3
  export { esbuildVersion, isCSSRequest, isFileServingAllowed, parseAst, parseAstAsync, rollupVersion, version as viteVersion } from 'vite';
4
- import { V as Vitest, a as VitestPlugin } from './chunks/cli-api.W2Q-JQoO.js';
5
- export { f as ForksPoolWorker, G as GitNotFoundError, F as TestsNotFoundError, T as ThreadsPoolWorker, h as TypecheckPoolWorker, b as VitestPackageInstaller, j as VmForksPoolWorker, k as VmThreadsPoolWorker, o as createDebugger, d as createMethodsRPC, n as createViteLogger, c as createVitest, e as escapeTestName, l as experimental_getRunnerTask, g as getFilePoolName, i as isValidApiRequest, m as registerConsoleShortcuts, r as resolveFsAllow, s as startVitest } from './chunks/cli-api.W2Q-JQoO.js';
6
- export { p as parseCLI } from './chunks/cac.DrF4Gm0S.js';
7
- import { r as resolveConfig$2 } from './chunks/coverage.FU3w4IrQ.js';
8
- export { b as BaseSequencer, a as resolveApiServerConfig } from './chunks/coverage.FU3w4IrQ.js';
4
+ import { V as Vitest, a as VitestPlugin } from './chunks/cli-api.D24RdiHp.js';
5
+ export { f as ForksPoolWorker, G as GitNotFoundError, F as TestsNotFoundError, T as ThreadsPoolWorker, h as TypecheckPoolWorker, b as VitestPackageInstaller, j as VmForksPoolWorker, k as VmThreadsPoolWorker, o as createDebugger, d as createMethodsRPC, n as createViteLogger, c as createVitest, e as escapeTestName, l as experimental_getRunnerTask, g as getFilePoolName, i as isValidApiRequest, m as registerConsoleShortcuts, r as resolveFsAllow, s as startVitest } from './chunks/cli-api.D24RdiHp.js';
6
+ export { p as parseCLI } from './chunks/cac.D3tBgDur.js';
7
+ import { r as resolveConfig$2 } from './chunks/coverage.BJHGXm3x.js';
8
+ export { b as BaseSequencer, a as resolveApiServerConfig } from './chunks/coverage.BJHGXm3x.js';
9
9
  import { slash, deepClone } from '@vitest/utils/helpers';
10
10
  import { a as any } from './chunks/index.Dc3xnDvT.js';
11
11
  import { resolve } from 'pathe';
@@ -1,4 +1,4 @@
1
- export { aR as BaseReporter, aS as BenchmarkBuiltinReporters, aE as BenchmarkReporter, aF as BenchmarkReportsMap, aT as BuiltinReporterOptions, aU as BuiltinReporters, aG as DefaultReporter, aH as DotReporter, aI as GithubActionsReporter, aJ as HangingProcessReporter, aL as JUnitReporter, aV as JsonAssertionResult, aK as JsonReporter, aW as JsonTestResult, aX as JsonTestResults, aB as ReportedHookContext, aC as Reporter, aM as ReportersMap, aN as TapFlatReporter, aO as TapReporter, aD as TestRunEndReason, aP as VerboseBenchmarkReporter, aQ as VerboseReporter } from './chunks/reporters.d.BMKt7f6I.js';
1
+ export { aR as BaseReporter, aS as BenchmarkBuiltinReporters, aE as BenchmarkReporter, aF as BenchmarkReportsMap, aT as BuiltinReporterOptions, aU as BuiltinReporters, aG as DefaultReporter, aH as DotReporter, aI as GithubActionsReporter, aJ as HangingProcessReporter, aL as JUnitReporter, aV as JsonAssertionResult, aK as JsonReporter, aW as JsonTestResult, aX as JsonTestResults, aB as ReportedHookContext, aC as Reporter, aM as ReportersMap, aN as TapFlatReporter, aO as TapReporter, aD as TestRunEndReason, aP as VerboseBenchmarkReporter, aQ as VerboseReporter } from './chunks/reporters.d.D-el0219.js';
2
2
  import '@vitest/runner';
3
3
  import '@vitest/utils';
4
4
  import './chunks/worker.d.BFk-vvBU.js';
package/dist/runners.js CHANGED
@@ -1,4 +1,4 @@
1
- export { N as NodeBenchmarkRunner, V as VitestTestRunner } from './chunks/test.C3RPt8JR.js';
1
+ export { N as NodeBenchmarkRunner, V as VitestTestRunner } from './chunks/test.CR2PBYe2.js';
2
2
  import '@vitest/runner';
3
3
  import '@vitest/utils/helpers';
4
4
  import '@vitest/utils/timers';
package/dist/worker.js CHANGED
@@ -1,5 +1,5 @@
1
- export { r as runBaseTests } from './chunks/base.BYPMk0VN.js';
2
- export { i as init } from './chunks/init.94FWN9pW.js';
1
+ export { r as runBaseTests } from './chunks/base.CVAgx931.js';
2
+ export { i as init } from './chunks/init.DvvF4rpe.js';
3
3
  import 'node:vm';
4
4
  import '@vitest/spy';
5
5
  import './chunks/evaluatedModules.Dg1zASAC.js';
@@ -17,7 +17,7 @@ import './module-evaluator.js';
17
17
  import '@vitest/mocker';
18
18
  import 'node:perf_hooks';
19
19
  import '@vitest/runner';
20
- import './chunks/resolveSnapshotEnvironment.DJJKMKxb.js';
20
+ import './chunks/resolveSnapshotEnvironment.yzXri_YN.js';
21
21
  import '@vitest/expect';
22
22
  import './chunks/setup-common.DR1sucx6.js';
23
23
  import './chunks/coverage.D_JHT54q.js';
@@ -26,7 +26,7 @@ import '@vitest/utils/timers';
26
26
  import './chunks/utils.CG9h5ccR.js';
27
27
  import './chunks/rpc.cD77ENhU.js';
28
28
  import './chunks/index.Bgo3tNWt.js';
29
- import './chunks/test.C3RPt8JR.js';
29
+ import './chunks/test.CR2PBYe2.js';
30
30
  import './chunks/benchmark.DHKMYAts.js';
31
31
  import '@vitest/runner/utils';
32
32
  import '@vitest/utils/error';
@@ -42,5 +42,5 @@ import 'node:util';
42
42
  import '@vitest/utils/constants';
43
43
  import './chunks/index.RwjEGCQ0.js';
44
44
  import 'expect-type';
45
- import './chunks/index.CbWINfS7.js';
45
+ import './chunks/index.DON9WL-E.js';
46
46
  import 'node:console';
@@ -1,5 +1,5 @@
1
- import { r as runBaseTests } from '../chunks/base.BYPMk0VN.js';
2
- import { w as workerInit } from '../chunks/init-forks.WglB-sfY.js';
1
+ import { r as runBaseTests } from '../chunks/base.CVAgx931.js';
2
+ import { w as workerInit } from '../chunks/init-forks.BtwT3q9G.js';
3
3
  import 'node:vm';
4
4
  import '@vitest/spy';
5
5
  import '../chunks/evaluatedModules.Dg1zASAC.js';
@@ -17,7 +17,7 @@ import '../module-evaluator.js';
17
17
  import '@vitest/mocker';
18
18
  import 'node:perf_hooks';
19
19
  import '@vitest/runner';
20
- import '../chunks/resolveSnapshotEnvironment.DJJKMKxb.js';
20
+ import '../chunks/resolveSnapshotEnvironment.yzXri_YN.js';
21
21
  import '@vitest/expect';
22
22
  import '../chunks/setup-common.DR1sucx6.js';
23
23
  import '../chunks/coverage.D_JHT54q.js';
@@ -26,7 +26,7 @@ import '@vitest/utils/timers';
26
26
  import '../chunks/utils.CG9h5ccR.js';
27
27
  import '../chunks/rpc.cD77ENhU.js';
28
28
  import '../chunks/index.Bgo3tNWt.js';
29
- import '../chunks/test.C3RPt8JR.js';
29
+ import '../chunks/test.CR2PBYe2.js';
30
30
  import '../chunks/benchmark.DHKMYAts.js';
31
31
  import '@vitest/runner/utils';
32
32
  import '@vitest/utils/error';
@@ -43,8 +43,8 @@ import '@vitest/utils/constants';
43
43
  import '../chunks/index.RwjEGCQ0.js';
44
44
  import 'expect-type';
45
45
  import 'node:v8';
46
- import '../chunks/init.94FWN9pW.js';
47
- import '../chunks/index.CbWINfS7.js';
46
+ import '../chunks/init.DvvF4rpe.js';
47
+ import '../chunks/index.DON9WL-E.js';
48
48
  import 'node:console';
49
49
 
50
50
  workerInit({ runTests: runBaseTests });
@@ -5,7 +5,7 @@ import timersPromises from 'node:timers/promises';
5
5
  import util from 'node:util';
6
6
  import { startTests, collectTests } from '@vitest/runner';
7
7
  import { KNOWN_ASSET_TYPES } from '@vitest/utils/constants';
8
- import { s as setupChaiConfig, r as resolveTestRunner, a as resolveSnapshotEnvironment } from '../chunks/resolveSnapshotEnvironment.DJJKMKxb.js';
8
+ import { s as setupChaiConfig, r as resolveTestRunner, a as resolveSnapshotEnvironment } from '../chunks/resolveSnapshotEnvironment.yzXri_YN.js';
9
9
  import { c as setupCommonEnv, s as startCoverageInsideWorker, a as stopCoverageInsideWorker } from '../chunks/setup-common.DR1sucx6.js';
10
10
  import { i as index } from '../chunks/index.RwjEGCQ0.js';
11
11
  import { c as closeInspector } from '../chunks/inspector.DLZxSeU3.js';
@@ -15,7 +15,7 @@ import '@vitest/expect';
15
15
  import '../chunks/rpc.cD77ENhU.js';
16
16
  import '@vitest/utils/timers';
17
17
  import '../chunks/index.Bgo3tNWt.js';
18
- import '../chunks/test.C3RPt8JR.js';
18
+ import '../chunks/test.CR2PBYe2.js';
19
19
  import '@vitest/utils/helpers';
20
20
  import '../chunks/benchmark.DHKMYAts.js';
21
21
  import '@vitest/runner/utils';
@@ -1,5 +1,5 @@
1
- import { r as runBaseTests } from '../chunks/base.BYPMk0VN.js';
2
- import { w as workerInit } from '../chunks/init-threads.Czek6eA5.js';
1
+ import { r as runBaseTests } from '../chunks/base.CVAgx931.js';
2
+ import { w as workerInit } from '../chunks/init-threads.BEmFEaEY.js';
3
3
  import 'node:vm';
4
4
  import '@vitest/spy';
5
5
  import '../chunks/evaluatedModules.Dg1zASAC.js';
@@ -17,7 +17,7 @@ import '../module-evaluator.js';
17
17
  import '@vitest/mocker';
18
18
  import 'node:perf_hooks';
19
19
  import '@vitest/runner';
20
- import '../chunks/resolveSnapshotEnvironment.DJJKMKxb.js';
20
+ import '../chunks/resolveSnapshotEnvironment.yzXri_YN.js';
21
21
  import '@vitest/expect';
22
22
  import '../chunks/setup-common.DR1sucx6.js';
23
23
  import '../chunks/coverage.D_JHT54q.js';
@@ -26,7 +26,7 @@ import '@vitest/utils/timers';
26
26
  import '../chunks/utils.CG9h5ccR.js';
27
27
  import '../chunks/rpc.cD77ENhU.js';
28
28
  import '../chunks/index.Bgo3tNWt.js';
29
- import '../chunks/test.C3RPt8JR.js';
29
+ import '../chunks/test.CR2PBYe2.js';
30
30
  import '../chunks/benchmark.DHKMYAts.js';
31
31
  import '@vitest/runner/utils';
32
32
  import '@vitest/utils/error';
@@ -43,8 +43,8 @@ import '@vitest/utils/constants';
43
43
  import '../chunks/index.RwjEGCQ0.js';
44
44
  import 'expect-type';
45
45
  import 'node:worker_threads';
46
- import '../chunks/init.94FWN9pW.js';
47
- import '../chunks/index.CbWINfS7.js';
46
+ import '../chunks/init.DvvF4rpe.js';
47
+ import '../chunks/index.DON9WL-E.js';
48
48
  import 'node:console';
49
49
 
50
50
  workerInit({ runTests: runBaseTests });
@@ -1,7 +1,7 @@
1
- import { w as workerInit } from '../chunks/init-forks.WglB-sfY.js';
1
+ import { w as workerInit } from '../chunks/init-forks.BtwT3q9G.js';
2
2
  import { r as runVmTests } from '../chunks/vm.CuMWYx_F.js';
3
3
  import 'node:v8';
4
- import '../chunks/init.94FWN9pW.js';
4
+ import '../chunks/init.DvvF4rpe.js';
5
5
  import '@vitest/utils/error';
6
6
  import '@vitest/utils/source-map';
7
7
  import 'node:fs';
@@ -17,7 +17,7 @@ import '@vitest/utils/serialize';
17
17
  import '../module-evaluator.js';
18
18
  import 'node:vm';
19
19
  import '@vitest/mocker';
20
- import '../chunks/index.CbWINfS7.js';
20
+ import '../chunks/index.DON9WL-E.js';
21
21
  import 'node:console';
22
22
  import '../chunks/inspector.DLZxSeU3.js';
23
23
  import '../chunks/evaluatedModules.Dg1zASAC.js';
@@ -1,7 +1,7 @@
1
- import { w as workerInit } from '../chunks/init-threads.Czek6eA5.js';
1
+ import { w as workerInit } from '../chunks/init-threads.BEmFEaEY.js';
2
2
  import { r as runVmTests } from '../chunks/vm.CuMWYx_F.js';
3
3
  import 'node:worker_threads';
4
- import '../chunks/init.94FWN9pW.js';
4
+ import '../chunks/init.DvvF4rpe.js';
5
5
  import '@vitest/utils/error';
6
6
  import '@vitest/utils/source-map';
7
7
  import 'node:fs';
@@ -17,7 +17,7 @@ import '@vitest/utils/serialize';
17
17
  import '../module-evaluator.js';
18
18
  import 'node:vm';
19
19
  import '@vitest/mocker';
20
- import '../chunks/index.CbWINfS7.js';
20
+ import '../chunks/index.DON9WL-E.js';
21
21
  import 'node:console';
22
22
  import '../chunks/inspector.DLZxSeU3.js';
23
23
  import '../chunks/evaluatedModules.Dg1zASAC.js';
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "vitest",
3
3
  "type": "module",
4
- "version": "4.0.1",
4
+ "version": "4.0.3",
5
5
  "description": "Next generation testing framework powered by Vite",
6
6
  "author": "Anthony Fu <anthonyfu117@hotmail.com>",
7
7
  "license": "MIT",
@@ -134,10 +134,10 @@
134
134
  "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0",
135
135
  "happy-dom": "*",
136
136
  "jsdom": "*",
137
- "@vitest/browser-preview": "4.0.1",
138
- "@vitest/browser-playwright": "4.0.1",
139
- "@vitest/browser-webdriverio": "4.0.1",
140
- "@vitest/ui": "4.0.1"
137
+ "@vitest/browser-playwright": "4.0.3",
138
+ "@vitest/browser-preview": "4.0.3",
139
+ "@vitest/browser-webdriverio": "4.0.3",
140
+ "@vitest/ui": "4.0.3"
141
141
  },
142
142
  "peerDependenciesMeta": {
143
143
  "@edge-runtime/vm": {
@@ -182,13 +182,13 @@
182
182
  "tinyrainbow": "^3.0.3",
183
183
  "vite": "^6.0.0 || ^7.0.0",
184
184
  "why-is-node-running": "^2.3.0",
185
- "@vitest/expect": "4.0.1",
186
- "@vitest/mocker": "4.0.1",
187
- "@vitest/pretty-format": "4.0.1",
188
- "@vitest/runner": "4.0.1",
189
- "@vitest/snapshot": "4.0.1",
190
- "@vitest/spy": "4.0.1",
191
- "@vitest/utils": "4.0.1"
185
+ "@vitest/expect": "4.0.3",
186
+ "@vitest/mocker": "4.0.3",
187
+ "@vitest/pretty-format": "4.0.3",
188
+ "@vitest/runner": "4.0.3",
189
+ "@vitest/spy": "4.0.3",
190
+ "@vitest/utils": "4.0.3",
191
+ "@vitest/snapshot": "4.0.3"
192
192
  },
193
193
  "devDependencies": {
194
194
  "@antfu/install-pkg": "^1.1.0",