vitest 5.0.5 → 5.1.0-beta.1

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 (52) hide show
  1. package/LICENSE.md +1 -1
  2. package/dist/browser.d.ts +4 -4
  3. package/dist/browser.js +3 -3
  4. package/dist/chunks/{base.CzXt2BO_.js → base.PJyN9N0u.js} +12 -11
  5. package/dist/chunks/{browser.d.FGQ9_rK6.d.ts → browser.d.D7a15z82.d.ts} +4 -3
  6. package/dist/chunks/{cac.CLrZKo1g.js → cac.Ccf5Je_F.js} +21 -9
  7. package/dist/chunks/{cli-api.De07GUeT.js → cli-api.DE22LIzq.js} +3091 -2891
  8. package/dist/chunks/{config.d.QBNYCgFU.d.ts → config.d.BgktgHfG.d.ts} +134 -93
  9. package/dist/chunks/{console.DtI4yxfN.js → console.DrMPSuFo.js} +5 -2
  10. package/dist/chunks/{constants.-juJ8b_4.js → constants.DLYM6cZY.js} +1 -1
  11. package/dist/chunks/{creator.C5g4egeG.js → creator.BQ3onxbh.js} +5 -5
  12. package/dist/chunks/{doctor.BK86Cncq.js → doctor.CPlMs7-y.js} +1 -1
  13. package/dist/chunks/{environment.d.BY56MoGs.d.ts → environment.d.CbTLsZSj.d.ts} +1 -1
  14. package/dist/chunks/{globals.CXEE6_2C.js → globals.TipXUFcZ.js} +5 -5
  15. package/dist/chunks/{index.CoUIxZd4.js → index.B03wg4V0.js} +3 -3
  16. package/dist/chunks/{index.CK-t0WMg.js → index.BFXLpwll.js} +114 -37
  17. package/dist/chunks/{index.aTZaPVhf.js → index.BXttT2gP.js} +37 -18
  18. package/dist/chunks/{index.1TqnEahn.js → index.D14IAvnE.js} +43 -17
  19. package/dist/chunks/{init-forks.CRxIPOJR.js → init-forks.BL1E3__4.js} +1 -1
  20. package/dist/chunks/{init-threads.Dv3kwST_.js → init-threads.CYXAGzKQ.js} +1 -1
  21. package/dist/chunks/{init.PvxYpuCm.js → init.DVorxUyL.js} +3 -3
  22. package/dist/chunks/{nativeModuleMocker.BxrHJNAF.js → nativeModuleMocker.3uBcOd84.js} +2 -1
  23. package/dist/chunks/{plugin.d.C8mmycim.d.ts → plugin.d.olEn8IL9.d.ts} +108 -20
  24. package/dist/chunks/{rpc.DpkUyY1N.js → rpc.BV0XpJ5q.js} +1 -1
  25. package/dist/chunks/{rpc.d.Cft1biqy.d.ts → rpc.d.DGFP7vWr.d.ts} +1 -1
  26. package/dist/chunks/{run.BPv-BBRv.js → run.BfrMbGVD.js} +22 -4
  27. package/dist/chunks/{setup-common.HGAqWOnX.js → setup-common.llxJkJaD.js} +2 -2
  28. package/dist/chunks/{source-map.DdKI5IHB.js → source-map.BjWcsIL9.js} +32 -24
  29. package/dist/chunks/{source-map.d.kzFtk_dj.d.ts → source-map.d.C5A_Tr6V.d.ts} +2 -1
  30. package/dist/chunks/{task-utils.d.PFh2BV6Q.d.ts → task-utils.d.BUh7ylUT.d.ts} +2 -1
  31. package/dist/chunks/{vm.FGl2rw_t.js → vm.Cwj01UFE.js} +16 -5
  32. package/dist/chunks/{worker.d.BH-r1bPu.d.ts → worker.d.gsA26mmR.d.ts} +3 -3
  33. package/dist/cli.js +2 -2
  34. package/dist/config.cjs +1 -1
  35. package/dist/config.d.ts +11 -11
  36. package/dist/config.js +1 -1
  37. package/dist/index.d.ts +14 -13
  38. package/dist/index.js +4 -4
  39. package/dist/module-evaluator.d.ts +3 -2
  40. package/dist/node.d.ts +29 -11
  41. package/dist/node.js +7 -7
  42. package/dist/runtime.d.ts +4 -4
  43. package/dist/runtime.js +3 -2
  44. package/dist/task-utils.js +3 -1
  45. package/dist/worker.d.ts +4 -4
  46. package/dist/worker.js +9 -9
  47. package/dist/workers/forks.js +10 -10
  48. package/dist/workers/runVmTests.js +9 -8
  49. package/dist/workers/threads.js +10 -10
  50. package/dist/workers/vmForks.js +9 -8
  51. package/dist/workers/vmThreads.js +9 -8
  52. package/package.json +14 -14
@@ -1,6 +1,6 @@
1
- import { b as printDiffOrStringify, d as diff, a as processError, T as TestSyntaxError, g as getCurrentTest, c as createTaskCollector, e as getCurrentSuite, f as createChainable, h as getHooks, i as getFn, m as matchesTags, j as afterAll, k as afterEach, l as aroundAll, n as aroundEach, o as beforeAll, q as beforeEach, r as describe, t as it, u as onTestFailed, v as onTestFinished, w as recordArtifact, x as suite, y as test } from './run.BPv-BBRv.js';
1
+ import { b as printDiffOrStringify, d as diff, a as processError, T as TestSyntaxError, g as getCurrentTest, c as createTaskCollector, e as getCurrentSuite, f as createChainable, h as getHooks, i as getFn, m as matchesTags, j as afterAll, k as afterEach, l as aroundAll, n as aroundEach, o as beforeAll, q as beforeEach, r as describe, t as it, u as onTestFailed, v as onTestFinished, w as recordArtifact, x as suite, y as test } from './run.BfrMbGVD.js';
2
2
  import { i as isChildProcess, r as resetModules, g as getWorkerState } from './utils.DYj33du9.js';
3
- import { e as parseErrorStacktrace, a as getSafeTimers, f as parseSingleStack, h as delay } from './source-map.DdKI5IHB.js';
3
+ import { e as parseErrorStacktrace, a as getSafeTimers, f as parseSingleStack, h as delay } from './source-map.BjWcsIL9.js';
4
4
  import { i as isMockFunction, f as fn, a as spyOn, r as restoreAllMocks, b as resetAllMocks, c as clearAllMocks } from './spy.DDMXghXv.js';
5
5
  import { u as isObject, B as getCallLastIndex, g as getType, D as noop, x as assertTypes, w as ordinal, E as createSimpleStackTrace, i as isAbsolute, a as relative, n as normalize } from './pathe.M-eThtNZ.Ba-7h1rE.js';
6
6
  import { g as getDefaultExportFromCjs, f as format, a as commonjsGlobal } from './index.D0heQG4v.js';
@@ -11,7 +11,7 @@ import { use, util } from 'chai';
11
11
  import { getNames, getTests, getTestName, createFileTask } from '../task-utils.js';
12
12
  import { g as getSerializers, a as addSerializer } from './plugins.DPQHVT0p.js';
13
13
  import { p as positionToOffset, o as offsetToLineNumber, l as lineSplitRE } from './offset.Dy-5Fdfn.js';
14
- import { r as rpc, V as VitestEvaluatedModules } from './rpc.DpkUyY1N.js';
14
+ import { r as rpc, V as VitestEvaluatedModules } from './rpc.BV0XpJ5q.js';
15
15
  import { Bench } from 'tinybench';
16
16
  import { expectTypeOf } from 'expect-type';
17
17
 
@@ -3643,19 +3643,6 @@ function requireFakeTimersSrc () {
3643
3643
  hasRequiredFakeTimersSrc = 1;
3644
3644
 
3645
3645
  const globalObject = requireLib().global;
3646
- let timersModule, timersPromisesModule;
3647
- if (typeof __vitest_required__ !== 'undefined') {
3648
- try {
3649
- timersModule = __vitest_required__.timers;
3650
- } catch {
3651
- // ignored
3652
- }
3653
- try {
3654
- timersPromisesModule = __vitest_required__.timersPromises;
3655
- } catch {
3656
- // ignored
3657
- }
3658
- }
3659
3646
 
3660
3647
  /**
3661
3648
  * @typedef {"nextAsync" | "manual" | "interval"} TickMode
@@ -4179,7 +4166,8 @@ function requireFakeTimersSrc () {
4179
4166
  isPresent.hrtime && typeof _global.process.hrtime.bigint === "function";
4180
4167
  isPresent.nextTick =
4181
4168
  _global.process && typeof _global.process.nextTick === "function";
4182
- const utilPromisify = _global.process && _global.__vitest_required__ && _global.__vitest_required__.util.promisify;
4169
+ const utilPromisify =
4170
+ _global.process && _global.__vitest_required__?.util.promisify;
4183
4171
  isPresent.performance =
4184
4172
  _global.performance && typeof _global.performance.now === "function";
4185
4173
  const hasPerformancePrototype =
@@ -6219,6 +6207,7 @@ function requireFakeTimersSrc () {
6219
6207
  clock.uninstall = function () {
6220
6208
  uninstalled = true;
6221
6209
  clock.setTickMode({ mode: "manual" });
6210
+ const { timersModule, timersPromisesModule } = clock;
6222
6211
 
6223
6212
  if (clock.methods) {
6224
6213
  const installedHrTime = "_hrtime";
@@ -6392,6 +6381,16 @@ function requireFakeTimersSrc () {
6392
6381
  const clock = createClock(config.now, config.loopLimit);
6393
6382
  clock.shouldClearNativeTimers = config.shouldClearNativeTimers;
6394
6383
 
6384
+ // Vitest injects Node builtins because this file is bundled without require.
6385
+ const vitestRequired =
6386
+ config.fakeNodeBuiltins && _global.__vitest_required__;
6387
+ const timersModule = vitestRequired?.timers;
6388
+ const timersPromisesModule = vitestRequired?.timersPromises;
6389
+ const syncBuiltinESMExports = vitestRequired?.syncBuiltinESMExports;
6390
+ // Keep the modules on the clock so uninstall can restore their methods.
6391
+ clock.timersModule = timersModule;
6392
+ clock.timersPromisesModule = timersPromisesModule;
6393
+
6395
6394
  clock.abortListenerMap = new Map();
6396
6395
 
6397
6396
  if (hasToFake) {
@@ -6733,6 +6732,21 @@ function requireFakeTimersSrc () {
6733
6732
  }
6734
6733
  }
6735
6734
 
6735
+ // Keep ESM named exports in sync with the patched CommonJS modules.
6736
+ if (
6737
+ syncBuiltinESMExports &&
6738
+ (clock.timersModuleMethods?.length ||
6739
+ clock.timersPromisesModuleMethods?.length)
6740
+ ) {
6741
+ const uninstall = clock.uninstall;
6742
+ clock.uninstall = () => {
6743
+ const result = uninstall();
6744
+ syncBuiltinESMExports();
6745
+ return result;
6746
+ };
6747
+ syncBuiltinESMExports();
6748
+ }
6749
+
6736
6750
  return clock;
6737
6751
  }
6738
6752
 
@@ -6872,7 +6886,8 @@ class FakeTimers {
6872
6886
  }
6873
6887
  }
6874
6888
  setSystemTime(now) {
6875
- const date = typeof now === "undefined" || now instanceof Date ? now : new Date(now);
6889
+ const normalized = normalizeSystemTime(now);
6890
+ const date = typeof normalized === "undefined" || normalized instanceof Date ? normalized : new Date(normalized);
6876
6891
  if (this._fakingTime) this._clock.setSystemTime(date);
6877
6892
  else {
6878
6893
  const newFakingDate = date ?? new Date(this.getRealSystemTime());
@@ -6921,6 +6936,10 @@ class FakeTimers {
6921
6936
  return this._fakingTime;
6922
6937
  }
6923
6938
  }
6939
+ // Like fake-timers, read epochMilliseconds from Instant or ZonedDateTime without requiring built-in Temporal types.
6940
+ function normalizeSystemTime(time) {
6941
+ return time && typeof time === "object" && "epochMilliseconds" in time ? time.epochMilliseconds : time;
6942
+ }
6924
6943
 
6925
6944
  const whenSymbol = Symbol.for("$$vitest:when");
6926
6945
  /**
@@ -6,7 +6,7 @@ import { glob, isDynamicPattern } from 'tinyglobby';
6
6
  import { $ } from './tinyrainbow.Do8I1XRG.js';
7
7
  import * as vite from 'vite';
8
8
  import { createServer, normalizePath, isFileLoadingAllowed, fetchModule, parseAst, searchForWorkspaceRoot, version, isRunnableDevEnvironment, mergeConfig, resolveConfig as resolveConfig$1 } from 'vite';
9
- import { a as defaultPort, c as configFiles, d as defaultBrowserPort, b as defaultInspectPort } from './constants.-juJ8b_4.js';
9
+ import { a as defaultPort, c as configFiles, d as defaultBrowserPort, b as defaultInspectPort } from './constants.DLYM6cZY.js';
10
10
  import { c as configDefaults, e as benchmarkConfigDefaults } from './defaults.B1FCaFfh.js';
11
11
  import { b as isWindows, i as isForceColor, a as isTTY } from './env.BKKtU2WC.js';
12
12
  import * as os from 'node:os';
@@ -22,9 +22,9 @@ import { Writable } from 'node:stream';
22
22
  import { stripVTControlCharacters } from 'node:util';
23
23
  import { i as inspect } from './display.BlTmubjj.js';
24
24
  import { performance as performance$1 } from 'node:perf_hooks';
25
- import { T as TraceMap, o as originalPositionFor, i as generatedPositionFor, j as eachMapping, k as stackIgnorePatterns, e as parseErrorStacktrace } from './source-map.DdKI5IHB.js';
25
+ import { T as TraceMap, o as originalPositionFor, i as generatedPositionFor, j as eachMapping, k as stackIgnorePatterns, e as parseErrorStacktrace } from './source-map.BjWcsIL9.js';
26
26
  import { x } from 'tinyexec';
27
- import { B as validateTags, z as limitConcurrency, C as shuffle } from './run.BPv-BBRv.js';
27
+ import { B as validateTags, z as limitConcurrency, C as shuffle } from './run.BfrMbGVD.js';
28
28
  import { createDebug } from 'obug';
29
29
  import { createFileTask as createFileTask$1, createTaskName, calculateSuiteHash, convertTasksToEvents, hasFailed, generateFileHash } from '../task-utils.js';
30
30
  import { readFile, mkdir, writeFile, rm, stat } from 'node:fs/promises';
@@ -45,7 +45,7 @@ import EventEmitter$1, { EventEmitter } from 'node:events';
45
45
  import { c as createBirpc } from './index.DmDMHCg8.js';
46
46
  import { fork } from 'node:child_process';
47
47
  import { Worker } from 'node:worker_threads';
48
- import { v as version$1 } from './cac.CLrZKo1g.js';
48
+ import { v as version$1 } from './cac.Ccf5Je_F.js';
49
49
  import { g as getDefaultExportFromCjs } from './index.D0heQG4v.js';
50
50
  import require$$0 from 'readline';
51
51
  import require$$0$1 from 'events';
@@ -915,14 +915,16 @@ class ModuleTransformService {
915
915
  */
916
916
  async transform(id, environment) {
917
917
  await this.traces.waitInit();
918
- const result = await this.traces.$("vitest.module.transform", (span) => this.fetchInSpan(span, id, void 0, environment));
918
+ // the module graph keeps the url of the first request, so it has to be the url that workers import
919
+ const url = normalizeResolvedIdToUrl(environment, id);
920
+ const result = await this.traces.$("vitest.module.transform", (span) => this.fetchInSpan(span, url, void 0, environment));
919
921
  // externalized modules are loaded by Node without a transform, like in a normal run
920
922
  if ("externalize" in result) return null;
921
923
  if ("id" in result) {
922
924
  const transformResult = environment.moduleGraph.getModuleById(result.id)?.transformResult;
923
925
  if (transformResult) return transformResult;
924
926
  }
925
- return environment.transformRequest(id);
927
+ return environment.transformRequest(url);
926
928
  }
927
929
  async fetchInSpan(trace, url, importer, environment, makeTmpCopies, options) {
928
930
  if (url.startsWith("data:")) {
@@ -1101,7 +1103,7 @@ class ModuleTransformService {
1101
1103
  file: cachedModule.file,
1102
1104
  id: cachedModule.id,
1103
1105
  tmp: cachePath,
1104
- url: cachedModule.url,
1106
+ url: moduleGraphModule.url,
1105
1107
  invalidate: false,
1106
1108
  moduleType
1107
1109
  };
@@ -1422,6 +1424,7 @@ function createFailedFileTask(project, filepath, error, options) {
1422
1424
  return file;
1423
1425
  }
1424
1426
  function serializeError(error) {
1427
+ if (error?.__vitest_rollup_error__) return [error];
1425
1428
  return [toRollupError(error) ?? {
1426
1429
  name: error.name,
1427
1430
  stack: error.stack,
@@ -1574,7 +1577,8 @@ async function transformSSR(project, filepath) {
1574
1577
  const { env: pragmaEnv, tags: fileTags } = detectCodeBlock(originalCode);
1575
1578
  // Use environment from pragma if defined, otherwise fall back to config
1576
1579
  const environment = pragmaEnv || project.config.environment;
1577
- const transformResult = await (environment === "jsdom" || environment === "happy-dom" ? project.vite.environments.client : project.vite.environments.ssr).transformRequest(filepath);
1580
+ const env = environment === "jsdom" || environment === "happy-dom" ? project.vite.environments.client : project.vite.environments.ssr;
1581
+ const transformResult = await project._transformService.transform(filepath, env);
1578
1582
  return transformResult ? {
1579
1583
  ...transformResult,
1580
1584
  fileTags
@@ -4121,6 +4125,7 @@ function serializeConfig(project) {
4121
4125
  },
4122
4126
  providerOptions: provider?.name === "playwright" ? { actionTimeout: provider?.options?.actionTimeout } : {},
4123
4127
  trackUnhandledErrors: browser.trackUnhandledErrors ?? true,
4128
+ importMapMocks: browser.importMapMocks,
4124
4129
  trace: browser.trace.mode,
4125
4130
  traceView: browser.traceView
4126
4131
  };
@@ -4413,7 +4418,7 @@ function createBrowserPool(vitest) {
4413
4418
  project,
4414
4419
  files,
4415
4420
  method,
4416
- exclusive: !provider.mocker || !provider.supportsParallelism,
4421
+ exclusive: !provider.supportsParallelism || !provider.mocker && project.config.browser.importMapMocks !== true,
4417
4422
  result: createDefer()
4418
4423
  };
4419
4424
  }));
@@ -4462,12 +4467,13 @@ async function groupSpecifications(specs) {
4462
4467
  const code = /* @__PURE__ */ new Map();
4463
4468
  const docblocks = await Promise.all(specs.map((spec) => getSpecificationDocblock(spec, code)));
4464
4469
  specs.forEach((spec, index) => {
4465
- const { project, moduleId, testLines, testIds, testNamePattern, testTagsFilter } = spec;
4470
+ const { project, moduleId, testLines, testIds, testNames, testNamePattern, testTagsFilter } = spec;
4466
4471
  const files = groupedFiles.get(project) || [];
4467
4472
  files.push({
4468
4473
  filepath: moduleId,
4469
4474
  testLocations: testLines,
4470
4475
  testIds,
4476
+ testNames,
4471
4477
  testNamePattern,
4472
4478
  testTagsFilter,
4473
4479
  fileTags: docblocks[index].tags
@@ -6142,6 +6148,7 @@ function createPool(ctx) {
6142
6148
  testLocations: spec.testLines,
6143
6149
  testNamePattern: spec.testNamePattern,
6144
6150
  testIds: spec.testIds,
6151
+ testNames: spec.testNames,
6145
6152
  testTagsFilter: spec.testTagsFilter
6146
6153
  })),
6147
6154
  invalidates,
@@ -6378,6 +6385,10 @@ class TestSpecification {
6378
6385
  */
6379
6386
  testIds;
6380
6387
  /**
6388
+ * The full names of the tests inside of this specification to run, including the parent suites separated with `>`.
6389
+ */
6390
+ testNames;
6391
+ /**
6381
6392
  * The tags of tests to run.
6382
6393
  */
6383
6394
  testTagsFilter;
@@ -6401,6 +6412,7 @@ class TestSpecification {
6401
6412
  this.testLines = testLinesOrOptions.testLines;
6402
6413
  this.testNamePattern = testLinesOrOptions.testNamePattern;
6403
6414
  this.testIds = testLinesOrOptions.testIds;
6415
+ this.testNames = testLinesOrOptions.testNames;
6404
6416
  this.testTagsFilter = testLinesOrOptions.testTagsFilter;
6405
6417
  }
6406
6418
  }
@@ -6423,6 +6435,7 @@ class TestSpecification {
6423
6435
  pool: this.pool,
6424
6436
  testLines: this.testLines,
6425
6437
  testIds: this.testIds,
6438
+ testNames: this.testNames,
6426
6439
  testNamePattern: this.testNamePattern,
6427
6440
  testTagsFilter: this.testTagsFilter
6428
6441
  }
@@ -8493,12 +8506,14 @@ class Logger {
8493
8506
  const config = this.ctx.config;
8494
8507
  // test files were found, but none of them depend on the changed files
8495
8508
  const noAffectedTests = !!this.ctx._sourceFilterResult?.total;
8496
- const message = !noAffectedTests ? "No test files found" : config.related?.length ? "No affected test files found" : "No changed files found";
8497
- if (config.watch && noAffectedTests) this.log(`${message}\n`);
8509
+ // test files were found, but none of them failed in the last run
8510
+ const noFailedTests = !!this.ctx._failedFilterResult?.total;
8511
+ const message = noFailedTests ? "No failed tests found" : !noAffectedTests ? "No test files found" : config.related?.length ? "No affected test files found" : "No changed files found";
8512
+ if (config.watch && (noAffectedTests || noFailedTests)) this.log(`${message}\n`);
8498
8513
  else if (config.watch) this.log($.red(`${message}. You can change the file name pattern by pressing "p"\n`));
8499
8514
  else if (config.passWithNoTests) this.log(`${message}, exiting with code 0\n`);
8500
8515
  else this.error($.red(`${message}, exiting with code 1\n`));
8501
- if (noAffectedTests) return;
8516
+ if (noAffectedTests || noFailedTests) return;
8502
8517
  const comma = $.dim(", ");
8503
8518
  if (filters?.length) this.console.error($.dim("filter: ") + $.yellow(filters.join(comma)));
8504
8519
  const projectsFilter = toArray(config.project);
@@ -8668,6 +8683,7 @@ class PluginHarness {
8668
8683
  }
8669
8684
  }
8670
8685
 
8686
+ const builtinVCSProviders = /* @__PURE__ */ new Set(["git", "mtime"]);
8671
8687
  function resolvePath(path, root) {
8672
8688
  // local-pkg (mlly)'s resolveModule("./file", { paths: ["/some/root"] }) tries
8673
8689
  // /some/file
@@ -8919,6 +8935,14 @@ function resolveTestConfig(logger, options, viteConfig, globalConfig) {
8919
8935
  if (!textSummary) resolved.coverage.reporter.push(["text-summary", {}]);
8920
8936
  }
8921
8937
  }
8938
+ // CLI options are merged into the test config
8939
+ if (options.sinceLastRun) {
8940
+ if (resolved.cache === false) throw new Error("The \"--since-last-run\" flag requires the \"cache\" option to store the dependencies of the test files.");
8941
+ resolved.changed ||= true;
8942
+ resolved.experimental ??= {};
8943
+ resolved.experimental.recordDependencies = true;
8944
+ resolved.experimental.vcsProvider = "mtime";
8945
+ }
8922
8946
  if (resolved.coverage.changed === void 0 && resolved.changed !== void 0) resolved.coverage.changed = resolved.changed;
8923
8947
  if (resolved.coverage.enabled && resolved.coverage.reportsDirectory) {
8924
8948
  const reportsDirectory = resolve(resolved.root, resolved.coverage.reportsDirectory);
@@ -9140,11 +9164,13 @@ function resolveTestConfig(logger, options, viteConfig, globalConfig) {
9140
9164
  resolved.browser.traceView = typeof traceView === "object" ? {
9141
9165
  enabled: traceView.enabled ?? false,
9142
9166
  recordCanvas: traceView.recordCanvas ?? false,
9143
- inlineImages: traceView.inlineImages ?? false
9167
+ inlineImages: traceView.inlineImages ?? false,
9168
+ ariaSnapshot: traceView.ariaSnapshot ?? true
9144
9169
  } : {
9145
9170
  enabled: traceView ?? false,
9146
9171
  recordCanvas: false,
9147
- inlineImages: false
9172
+ inlineImages: false,
9173
+ ariaSnapshot: true
9148
9174
  };
9149
9175
  if (resolved.browser.enabled && resolved.browser.traceView.enabled) resolved.browser.detailsPanelPosition = "bottom";
9150
9176
  if (resolved.browser.trace.tracesDir != null) resolved.browser.trace.tracesDir = resolvePath(resolved.browser.trace.tracesDir, resolved.root);
@@ -9193,7 +9219,7 @@ function resolveTestConfig(logger, options, viteConfig, globalConfig) {
9193
9219
  import: diagnostics.import ?? true,
9194
9220
  transform: diagnostics.transform ?? true
9195
9221
  };
9196
- if (typeof resolved.experimental.vcsProvider === "string" && resolved.experimental.vcsProvider !== "git") resolved.experimental.vcsProvider = resolvePath(resolved.experimental.vcsProvider, resolved.root);
9222
+ if (typeof resolved.experimental.vcsProvider === "string" && !builtinVCSProviders.has(resolved.experimental.vcsProvider)) resolved.experimental.vcsProvider = resolvePath(resolved.experimental.vcsProvider, resolved.root);
9197
9223
  // `experimental.fsModuleCache` / `experimental.fsModuleCachePath` were promoted to
9198
9224
  // the top-level `fsModuleCache` / `fsModuleCachePath` options.
9199
9225
  const legacyExperimental = options.experimental;
@@ -15630,4 +15656,4 @@ var index = /*#__PURE__*/_mergeNamespaces({
15630
15656
  default: prompt
15631
15657
  }, [promptsExports]);
15632
15658
 
15633
- export { resolveStaticMocks as A, BaseSequencer as B, getStaticMocks as C, LocationFilterFileNotFoundError as D, GitCommandError as E, ForksPoolWorker as F, GitNotFoundError as G, VitestResolver as H, IncludeTaskLocationDisabledError as I, createClusterServer as J, attachProjectsFromEntries as K, Logger as L, ModuleTransformService as M, TestProject as N, resolveAndAttachProjects as O, PluginHarness as P, RandomSequencer as Q, RangeLocationFilterProvidedError as R, ServerModuleRunner as S, ThreadsPoolWorker as T, createPool as U, VitestPackageInstaller as V, astCollectTests as W, createFailedFileTask as X, matchesProjectFilter as Y, nanoid as Z, stdout as _, BrowserConnectionError as a, FilesNotFoundError as b, TypecheckPoolWorker as c, VmForksPoolWorker as d, VmThreadsPoolWorker as e, createDebugger as f, createMethodsRPC as g, createViteLogger as h, escapeTestName as i, getFilePoolName as j, isFileServingAllowed as k, resolveConfig as l, resolveFsAllow as m, findConfigFile as n, parse as o, prompt as p, hash as q, resolveApiServerConfig as r, stringify as s, resolveCoverageReporters as t, createIndexLocationsMap as u, getOutputFile as v, groupBy as w, generateCodeFrame as x, printStack as y, getSpecificationDocblock as z };
15659
+ export { generateCodeFrame as A, BaseSequencer as B, printStack as C, LocationFilterFileNotFoundError as D, GitCommandError as E, ForksPoolWorker as F, GitNotFoundError as G, VitestResolver as H, IncludeTaskLocationDisabledError as I, createClusterServer as J, attachProjectsFromEntries as K, Logger as L, ModuleTransformService as M, TestProject as N, resolveAndAttachProjects as O, PluginHarness as P, RandomSequencer as Q, RangeLocationFilterProvidedError as R, ServerModuleRunner as S, ThreadsPoolWorker as T, createPool as U, VitestPackageInstaller as V, astCollectTests as W, createFailedFileTask as X, matchesProjectFilter as Y, nanoid as Z, stdout as _, BrowserConnectionError as a, FilesNotFoundError as b, TypecheckPoolWorker as c, VmForksPoolWorker as d, VmThreadsPoolWorker as e, createDebugger as f, createMethodsRPC as g, createViteLogger as h, escapeTestName as i, getFilePoolName as j, isFileServingAllowed as k, resolveConfig as l, resolveFsAllow as m, findConfigFile as n, parse as o, prompt as p, getSpecificationDocblock as q, resolveApiServerConfig as r, stringify as s, resolveStaticMocks as t, getStaticMocks as u, hash as v, resolveCoverageReporters as w, createIndexLocationsMap as x, getOutputFile as y, groupBy as z };
@@ -1,4 +1,4 @@
1
- import { i as init } from './init.PvxYpuCm.js';
1
+ import { i as init } from './init.DVorxUyL.js';
2
2
 
3
3
  if (!process.send) throw new Error("Expected worker to be run in node:child_process");
4
4
  // 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.PvxYpuCm.js';
2
+ import { i as init } from './init.DVorxUyL.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) {
@@ -2,12 +2,12 @@ import { readFileSync } from 'node:fs';
2
2
  import module$1, { isBuiltin } from 'node:module';
3
3
  import { pathToFileURL } from 'node:url';
4
4
  import { EvaluatedModules, ModuleRunner } from 'vite/module-runner';
5
- import { e as environments, b as VitestTransport } from './index.CK-t0WMg.js';
5
+ import { e as environments, b as VitestTransport } from './index.BFXLpwll.js';
6
6
  import { r as resolve } from './pathe.M-eThtNZ.Ba-7h1rE.js';
7
- import { b as serializeValue, c as createStackString, p as parseStacktrace } from './source-map.DdKI5IHB.js';
7
+ import { b as serializeValue, c as createStackString, p as parseStacktrace } from './source-map.BjWcsIL9.js';
8
8
  import { w } from './tinyrainbow.Do8I1XRG.js';
9
9
  import { Traces } from '../traces.js';
10
- import { o as onCancel, V as VitestEvaluatedModules, a as rpcDone, c as createRuntimeRpc } from './rpc.DpkUyY1N.js';
10
+ import { o as onCancel, V as VitestEvaluatedModules, a as rpcDone, c as createRuntimeRpc } from './rpc.BV0XpJ5q.js';
11
11
  import { s as setupInspect } from './inspector.CvyFGlXm.js';
12
12
  import { E as EnvironmentTeardownError } from './utils.DYj33du9.js';
13
13
 
@@ -4,7 +4,7 @@ import { automockModule, createManualModuleSource, collectModuleExports } from '
4
4
  import { c as cleanUrl, e as createDefer, i as isAbsolute } from './pathe.M-eThtNZ.Ba-7h1rE.js';
5
5
  import { p as parse } from './acorn.C1kjbUFw.js';
6
6
  import { t as toBuiltin } from './modules.BJuCwlRJ.js';
7
- import { B as BareModuleMocker, n as normalizeModuleId } from './index.CK-t0WMg.js';
7
+ import { B as BareModuleMocker, n as normalizeModuleId } from './index.BFXLpwll.js';
8
8
  import 'node:fs';
9
9
  import './utils.DYj33du9.js';
10
10
  import '../path.js';
@@ -13,6 +13,7 @@ import '../module-evaluator.js';
13
13
  import 'node:vm';
14
14
  import 'vite/module-runner';
15
15
  import '../traces.js';
16
+ import 'node:async_hooks';
16
17
  import '@vitest/mocker';
17
18
  import '@vitest/mocker/redirect';
18
19
  import 'node:console';