@vitest/runner 0.31.4 → 0.32.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.
@@ -1,5 +1,5 @@
1
- import { format, deepClone, stringify, getOwnProperties, getType, toArray } from '@vitest/utils';
2
- import { unifiedDiff } from '@vitest/utils/diff';
1
+ import { processError } from '@vitest/utils/error';
2
+ import { toArray } from '@vitest/utils';
3
3
 
4
4
  function partitionSuiteChildren(suite) {
5
5
  let tasksGroup = [];
@@ -17,144 +17,6 @@ function partitionSuiteChildren(suite) {
17
17
  return tasksGroups;
18
18
  }
19
19
 
20
- const IS_RECORD_SYMBOL = "@@__IMMUTABLE_RECORD__@@";
21
- const IS_COLLECTION_SYMBOL = "@@__IMMUTABLE_ITERABLE__@@";
22
- function isImmutable(v) {
23
- return v && (v[IS_COLLECTION_SYMBOL] || v[IS_RECORD_SYMBOL]);
24
- }
25
- const OBJECT_PROTO = Object.getPrototypeOf({});
26
- function getUnserializableMessage(err) {
27
- if (err instanceof Error)
28
- return `<unserializable>: ${err.message}`;
29
- if (typeof err === "string")
30
- return `<unserializable>: ${err}`;
31
- return "<unserializable>";
32
- }
33
- function serializeError(val, seen = /* @__PURE__ */ new WeakMap()) {
34
- if (!val || typeof val === "string")
35
- return val;
36
- if (typeof val === "function")
37
- return `Function<${val.name || "anonymous"}>`;
38
- if (typeof val === "symbol")
39
- return val.toString();
40
- if (typeof val !== "object")
41
- return val;
42
- if (isImmutable(val))
43
- return serializeError(val.toJSON(), seen);
44
- if (val instanceof Promise || val.constructor && val.constructor.prototype === "AsyncFunction")
45
- return "Promise";
46
- if (typeof Element !== "undefined" && val instanceof Element)
47
- return val.tagName;
48
- if (typeof val.asymmetricMatch === "function")
49
- return `${val.toString()} ${format(val.sample)}`;
50
- if (seen.has(val))
51
- return seen.get(val);
52
- if (Array.isArray(val)) {
53
- const clone = new Array(val.length);
54
- seen.set(val, clone);
55
- val.forEach((e, i) => {
56
- try {
57
- clone[i] = serializeError(e, seen);
58
- } catch (err) {
59
- clone[i] = getUnserializableMessage(err);
60
- }
61
- });
62
- return clone;
63
- } else {
64
- const clone = /* @__PURE__ */ Object.create(null);
65
- seen.set(val, clone);
66
- let obj = val;
67
- while (obj && obj !== OBJECT_PROTO) {
68
- Object.getOwnPropertyNames(obj).forEach((key) => {
69
- if (key in clone)
70
- return;
71
- try {
72
- clone[key] = serializeError(val[key], seen);
73
- } catch (err) {
74
- delete clone[key];
75
- clone[key] = getUnserializableMessage(err);
76
- }
77
- });
78
- obj = Object.getPrototypeOf(obj);
79
- }
80
- return clone;
81
- }
82
- }
83
- function normalizeErrorMessage(message) {
84
- return message.replace(/__vite_ssr_import_\d+__\./g, "");
85
- }
86
- function processError(err, options = {}) {
87
- if (!err || typeof err !== "object")
88
- return { message: err };
89
- if (err.stack)
90
- err.stackStr = String(err.stack);
91
- if (err.name)
92
- err.nameStr = String(err.name);
93
- const clonedActual = deepClone(err.actual, { forceWritable: true });
94
- const clonedExpected = deepClone(err.expected, { forceWritable: true });
95
- const { replacedActual, replacedExpected } = replaceAsymmetricMatcher(clonedActual, clonedExpected);
96
- if (err.showDiff || err.showDiff === void 0 && err.expected !== void 0 && err.actual !== void 0)
97
- err.diff = unifiedDiff(replacedActual, replacedExpected, options);
98
- if (typeof err.expected !== "string")
99
- err.expected = stringify(err.expected, 10);
100
- if (typeof err.actual !== "string")
101
- err.actual = stringify(err.actual, 10);
102
- try {
103
- if (typeof err.message === "string")
104
- err.message = normalizeErrorMessage(err.message);
105
- if (typeof err.cause === "object" && typeof err.cause.message === "string")
106
- err.cause.message = normalizeErrorMessage(err.cause.message);
107
- } catch {
108
- }
109
- try {
110
- return serializeError(err);
111
- } catch (e) {
112
- return serializeError(new Error(`Failed to fully serialize error: ${e == null ? void 0 : e.message}
113
- Inner error message: ${err == null ? void 0 : err.message}`));
114
- }
115
- }
116
- function isAsymmetricMatcher(data) {
117
- const type = getType(data);
118
- return type === "Object" && typeof data.asymmetricMatch === "function";
119
- }
120
- function isReplaceable(obj1, obj2) {
121
- const obj1Type = getType(obj1);
122
- const obj2Type = getType(obj2);
123
- return obj1Type === obj2Type && obj1Type === "Object";
124
- }
125
- function replaceAsymmetricMatcher(actual, expected, actualReplaced = /* @__PURE__ */ new WeakSet(), expectedReplaced = /* @__PURE__ */ new WeakSet()) {
126
- if (!isReplaceable(actual, expected))
127
- return { replacedActual: actual, replacedExpected: expected };
128
- if (actualReplaced.has(actual) || expectedReplaced.has(expected))
129
- return { replacedActual: actual, replacedExpected: expected };
130
- actualReplaced.add(actual);
131
- expectedReplaced.add(expected);
132
- getOwnProperties(expected).forEach((key) => {
133
- const expectedValue = expected[key];
134
- const actualValue = actual[key];
135
- if (isAsymmetricMatcher(expectedValue)) {
136
- if (expectedValue.asymmetricMatch(actualValue))
137
- actual[key] = expectedValue;
138
- } else if (isAsymmetricMatcher(actualValue)) {
139
- if (actualValue.asymmetricMatch(expectedValue))
140
- expected[key] = actualValue;
141
- } else if (isReplaceable(actualValue, expectedValue)) {
142
- const replaced = replaceAsymmetricMatcher(
143
- actualValue,
144
- expectedValue,
145
- actualReplaced,
146
- expectedReplaced
147
- );
148
- actual[key] = replaced.replacedActual;
149
- expected[key] = replaced.replacedExpected;
150
- }
151
- });
152
- return {
153
- replacedActual: actual,
154
- replacedExpected: expected
155
- };
156
- }
157
-
158
20
  function interpretTaskModes(suite, namePattern, onlyMode, parentIsOnly, allowOnly) {
159
21
  const suiteIsOnly = parentIsOnly || suite.mode === "only";
160
22
  suite.tasks.forEach((t) => {
@@ -287,4 +149,4 @@ function getNames(task) {
287
149
  return names;
288
150
  }
289
151
 
290
- export { calculateSuiteHash as a, partitionSuiteChildren as b, createChainable as c, hasFailed as d, getTests as e, getTasks as f, generateHash as g, hasTests as h, interpretTaskModes as i, getSuites as j, getNames as k, serializeError as l, processError as p, replaceAsymmetricMatcher as r, someTasksAreOnly as s };
152
+ export { calculateSuiteHash as a, hasFailed as b, createChainable as c, getTests as d, getTasks as e, getSuites as f, generateHash as g, hasTests as h, interpretTaskModes as i, getNames as j, partitionSuiteChildren as p, someTasksAreOnly as s };
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- import { V as VitestRunner } from './runner-6af7d148.js';
2
- export { C as CancelReason, a as VitestRunnerConfig, c as VitestRunnerConstructor, b as VitestRunnerImportSource } from './runner-6af7d148.js';
3
- import { T as Task, F as File, S as SuiteAPI, a as TestAPI, b as SuiteCollector, c as SuiteHooks, O as OnTestFailedHandler, d as Test } from './tasks-900f5000.js';
4
- export { D as DoneCallback, n as HookCleanupCallback, H as HookListener, R as RunMode, p as RuntimeContext, r as SequenceHooks, s as SequenceSetupFiles, k as Suite, o as SuiteFactory, f as TaskBase, h as TaskCustom, g as TaskMeta, i as TaskResult, j as TaskResultPack, e as TaskState, q as TestContext, l as TestFunction, m as TestOptions } from './tasks-900f5000.js';
1
+ import { V as VitestRunner } from './runner-0b317aff.js';
2
+ export { C as CancelReason, a as VitestRunnerConfig, c as VitestRunnerConstructor, b as VitestRunnerImportSource } from './runner-0b317aff.js';
3
+ import { T as Task, F as File, S as SuiteAPI, a as TestAPI, b as SuiteCollector, c as SuiteHooks, O as OnTestFailedHandler, d as Test } from './tasks-045d21eb.js';
4
+ export { D as DoneCallback, n as HookCleanupCallback, H as HookListener, R as RunMode, p as RuntimeContext, r as SequenceHooks, s as SequenceSetupFiles, k as Suite, o as SuiteFactory, f as TaskBase, h as TaskCustom, g as TaskMeta, i as TaskResult, j as TaskResultPack, e as TaskState, q as TestContext, l as TestFunction, m as TestOptions } from './tasks-045d21eb.js';
5
5
  import { Awaitable } from '@vitest/utils';
6
6
 
7
7
  declare function updateTask(task: Task, runner: VitestRunner): void;
package/dist/index.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import limit from 'p-limit';
2
2
  import { getSafeTimers, format, isObject, objDisplay, objectAttr, noop, toArray, shuffle } from '@vitest/utils';
3
- import { c as createChainable, g as generateHash, p as processError, a as calculateSuiteHash, s as someTasksAreOnly, i as interpretTaskModes, b as partitionSuiteChildren, h as hasTests, d as hasFailed } from './chunk-tasks.js';
3
+ import { processError } from '@vitest/utils/error';
4
+ import { c as createChainable, g as generateHash, a as calculateSuiteHash, s as someTasksAreOnly, i as interpretTaskModes, p as partitionSuiteChildren, h as hasTests, b as hasFailed } from './chunk-tasks.js';
4
5
  import { relative } from 'pathe';
5
- import '@vitest/utils/diff';
6
6
 
7
7
  const fnMap = /* @__PURE__ */ new WeakMap();
8
8
  const hooksMap = /* @__PURE__ */ new WeakMap();
@@ -66,30 +66,10 @@ function makeTimeoutMsg(isHook, timeout) {
66
66
  If this is a long-running ${isHook ? "hook" : "test"}, pass a timeout value as the last argument or configure it globally with "${isHook ? "hookTimeout" : "testTimeout"}".`;
67
67
  }
68
68
 
69
- var version = "0.31.4";
70
-
71
- function getVersion() {
72
- return globalThis.__vitest_runner_version__ || version;
73
- }
74
- function markVersion() {
75
- globalThis.__vitest_runner_version__ = version;
76
- }
77
- function checkVersion() {
78
- const collectVersion = getVersion();
79
- if (collectVersion !== version) {
80
- const error = `Version mismatch: Vitest started as ${collectVersion}, but tests are collected with ${version} version.
81
-
82
- - If you are using global Vitest, make sure your package has the same version.
83
- - If you have a monorepo setup, make sure your main package has the same version as your test packages.`;
84
- throw new Error(error);
85
- }
86
- }
87
-
88
69
  const suite = createSuite();
89
70
  const test = createTest(
90
71
  function(name, fn, options) {
91
- checkVersion();
92
- getCurrentSuite().test.fn.call(this, name, fn, options);
72
+ getCurrentSuite().test.fn.call(this, formatName(name), fn, options);
93
73
  }
94
74
  );
95
75
  const describe = suite;
@@ -131,18 +111,12 @@ function createSuiteCollector(name, factory = () => {
131
111
  const mode2 = this.only ? "only" : this.skip ? "skip" : this.todo ? "todo" : "run";
132
112
  if (typeof options === "number")
133
113
  options = { timeout: options };
134
- if (typeof suiteOptions === "object") {
135
- options = {
136
- repeats: suiteOptions.repeats,
137
- retry: suiteOptions.retry,
138
- timeout: suiteOptions.timeout,
139
- ...options
140
- };
141
- }
114
+ if (typeof suiteOptions === "object")
115
+ options = Object.assign({}, suiteOptions, options);
142
116
  const test3 = {
143
117
  id: "",
144
118
  type: "test",
145
- name: name2,
119
+ name: formatName(name2),
146
120
  each: this.each,
147
121
  mode: mode2,
148
122
  suite: void 0,
@@ -234,14 +208,13 @@ function createSuiteCollector(name, factory = () => {
234
208
  }
235
209
  function createSuite() {
236
210
  function suiteFn(name, factory, options) {
237
- checkVersion();
238
211
  const mode = this.only ? "only" : this.skip ? "skip" : this.todo ? "todo" : "run";
239
212
  const currentSuite = getCurrentSuite();
240
213
  if (typeof options === "number")
241
214
  options = { timeout: options };
242
215
  if (currentSuite == null ? void 0 : currentSuite.options)
243
216
  options = { ...currentSuite.options, ...options };
244
- return createSuiteCollector(name, factory, mode, this.concurrent, this.shuffle, this.each, options);
217
+ return createSuiteCollector(formatName(name), factory, mode, this.concurrent, this.shuffle, this.each, options);
245
218
  }
246
219
  suiteFn.each = function(cases, ...args) {
247
220
  const suite2 = this.withContext();
@@ -249,10 +222,11 @@ function createSuite() {
249
222
  if (Array.isArray(cases) && args.length)
250
223
  cases = formatTemplateString(cases, args);
251
224
  return (name, fn, options) => {
225
+ const _name = formatName(name);
252
226
  const arrayOnlyCases = cases.every(Array.isArray);
253
227
  cases.forEach((i, idx) => {
254
228
  const items = Array.isArray(i) ? i : [i];
255
- arrayOnlyCases ? suite2(formatTitle(name, items, idx), () => fn(...items), options) : suite2(formatTitle(name, items, idx), () => fn(i), options);
229
+ arrayOnlyCases ? suite2(formatTitle(_name, items, idx), () => fn(...items), options) : suite2(formatTitle(_name, items, idx), () => fn(i), options);
256
230
  });
257
231
  this.setContext("each", void 0);
258
232
  };
@@ -272,10 +246,11 @@ function createTest(fn) {
272
246
  if (Array.isArray(cases) && args.length)
273
247
  cases = formatTemplateString(cases, args);
274
248
  return (name, fn2, options) => {
249
+ const _name = formatName(name);
275
250
  const arrayOnlyCases = cases.every(Array.isArray);
276
251
  cases.forEach((i, idx) => {
277
252
  const items = Array.isArray(i) ? i : [i];
278
- arrayOnlyCases ? test2(formatTitle(name, items, idx), () => fn2(...items), options) : test2(formatTitle(name, items, idx), () => fn2(i), options);
253
+ arrayOnlyCases ? test2(formatTitle(_name, items, idx), () => fn2(...items), options) : test2(formatTitle(_name, items, idx), () => fn2(i), options);
279
254
  });
280
255
  this.setContext("each", void 0);
281
256
  };
@@ -287,6 +262,9 @@ function createTest(fn) {
287
262
  testFn
288
263
  );
289
264
  }
265
+ function formatName(name) {
266
+ return typeof name === "string" ? name : name instanceof Function ? name.name || "<anonymous>" : String(name);
267
+ }
290
268
  function formatTitle(template, items, idx) {
291
269
  if (template.includes("%#")) {
292
270
  template = template.replace(/%%/g, "__vitest_escaped_%__").replace(/%#/g, `${idx}`).replace(/__vitest_escaped_%__/g, "%%");
@@ -514,10 +492,12 @@ async function runTest(test, runner) {
514
492
  throw errors;
515
493
  }
516
494
  await ((_d = runner.onAfterTryTest) == null ? void 0 : _d.call(runner, test, { retry: retryCount, repeats: repeatCount }));
517
- if (!test.repeats)
518
- test.result.state = "pass";
519
- else if (test.repeats && retry === retryCount)
520
- test.result.state = "pass";
495
+ if (test.result.state !== "fail") {
496
+ if (!test.repeats)
497
+ test.result.state = "pass";
498
+ else if (test.repeats && retry === retryCount)
499
+ test.result.state = "pass";
500
+ }
521
501
  } catch (e) {
522
502
  failTask(test.result, e);
523
503
  }
@@ -529,6 +509,9 @@ async function runTest(test, runner) {
529
509
  }
530
510
  if (test.result.state === "pass")
531
511
  break;
512
+ if (retryCount < retry - 1) {
513
+ test.result.state = "run";
514
+ }
532
515
  updateTask(test, runner);
533
516
  }
534
517
  }
@@ -664,7 +647,6 @@ async function runFiles(files, runner) {
664
647
  }
665
648
  async function startTests(paths, runner) {
666
649
  var _a, _b, _c, _d;
667
- markVersion();
668
650
  await ((_a = runner.onBeforeCollect) == null ? void 0 : _a.call(runner, paths));
669
651
  const files = await collectTests(paths, runner);
670
652
  (_b = runner.onCollected) == null ? void 0 : _b.call(runner, files);
@@ -1,4 +1,4 @@
1
- import { r as SequenceHooks, s as SequenceSetupFiles, F as File, d as Test, k as Suite, j as TaskResultPack, q as TestContext } from './tasks-900f5000.js';
1
+ import { r as SequenceHooks, s as SequenceSetupFiles, F as File, d as Test, k as Suite, j as TaskResultPack, q as TestContext } from './tasks-045d21eb.js';
2
2
 
3
3
  interface VitestRunnerConfig {
4
4
  root: string;
@@ -86,23 +86,23 @@ type ExtractEachCallbackArgs<T extends ReadonlyArray<any>> = {
86
86
  fallback: Array<T extends ReadonlyArray<infer U> ? U : any>;
87
87
  }[T extends Readonly<[any]> ? 1 : T extends Readonly<[any, any]> ? 2 : T extends Readonly<[any, any, any]> ? 3 : T extends Readonly<[any, any, any, any]> ? 4 : T extends Readonly<[any, any, any, any, any]> ? 5 : T extends Readonly<[any, any, any, any, any, any]> ? 6 : T extends Readonly<[any, any, any, any, any, any, any]> ? 7 : T extends Readonly<[any, any, any, any, any, any, any, any]> ? 8 : T extends Readonly<[any, any, any, any, any, any, any, any, any]> ? 9 : T extends Readonly<[any, any, any, any, any, any, any, any, any, any]> ? 10 : 'fallback'];
88
88
  interface SuiteEachFunction {
89
- <T extends any[] | [any]>(cases: ReadonlyArray<T>): (name: string, fn: (...args: T) => Awaitable<void>) => void;
90
- <T extends ReadonlyArray<any>>(cases: ReadonlyArray<T>): (name: string, fn: (...args: ExtractEachCallbackArgs<T>) => Awaitable<void>) => void;
91
- <T>(cases: ReadonlyArray<T>): (name: string, fn: (...args: T[]) => Awaitable<void>) => void;
89
+ <T extends any[] | [any]>(cases: ReadonlyArray<T>): (name: string | Function, fn: (...args: T) => Awaitable<void>) => void;
90
+ <T extends ReadonlyArray<any>>(cases: ReadonlyArray<T>): (name: string | Function, fn: (...args: ExtractEachCallbackArgs<T>) => Awaitable<void>) => void;
91
+ <T>(cases: ReadonlyArray<T>): (name: string | Function, fn: (...args: T[]) => Awaitable<void>) => void;
92
92
  }
93
93
  interface TestEachFunction {
94
- <T extends any[] | [any]>(cases: ReadonlyArray<T>): (name: string, fn: (...args: T) => Awaitable<void>, options?: number | TestOptions) => void;
95
- <T extends ReadonlyArray<any>>(cases: ReadonlyArray<T>): (name: string, fn: (...args: ExtractEachCallbackArgs<T>) => Awaitable<void>, options?: number | TestOptions) => void;
96
- <T>(cases: ReadonlyArray<T>): (name: string, fn: (...args: T[]) => Awaitable<void>, options?: number | TestOptions) => void;
97
- (...args: [TemplateStringsArray, ...any]): (name: string, fn: (...args: any[]) => Awaitable<void>, options?: number | TestOptions) => void;
94
+ <T extends any[] | [any]>(cases: ReadonlyArray<T>): (name: string | Function, fn: (...args: T) => Awaitable<void>, options?: number | TestOptions) => void;
95
+ <T extends ReadonlyArray<any>>(cases: ReadonlyArray<T>): (name: string | Function, fn: (...args: ExtractEachCallbackArgs<T>) => Awaitable<void>, options?: number | TestOptions) => void;
96
+ <T>(cases: ReadonlyArray<T>): (name: string | Function, fn: (...args: T[]) => Awaitable<void>, options?: number | TestOptions) => void;
97
+ (...args: [TemplateStringsArray, ...any]): (name: string | Function, fn: (...args: any[]) => Awaitable<void>, options?: number | TestOptions) => void;
98
98
  }
99
99
  type ChainableTestAPI<ExtraContext = {}> = ChainableFunction<'concurrent' | 'only' | 'skip' | 'todo' | 'fails', [
100
- name: string,
100
+ name: string | Function,
101
101
  fn?: TestFunction<ExtraContext>,
102
102
  options?: number | TestOptions
103
103
  ], void, {
104
104
  each: TestEachFunction;
105
- <T extends ExtraContext>(name: string, fn?: TestFunction<T>, options?: number | TestOptions): void;
105
+ <T extends ExtraContext>(name: string | Function, fn?: TestFunction<T>, options?: number | TestOptions): void;
106
106
  }>;
107
107
  interface TestOptions {
108
108
  /**
@@ -131,12 +131,12 @@ type TestAPI<ExtraContext = {}> = ChainableTestAPI<ExtraContext> & {
131
131
  runIf(condition: any): ChainableTestAPI<ExtraContext>;
132
132
  };
133
133
  type ChainableSuiteAPI<ExtraContext = {}> = ChainableFunction<'concurrent' | 'only' | 'skip' | 'todo' | 'shuffle', [
134
- name: string,
134
+ name: string | Function,
135
135
  factory?: SuiteFactory<ExtraContext>,
136
136
  options?: number | TestOptions
137
137
  ], SuiteCollector<ExtraContext>, {
138
138
  each: TestEachFunction;
139
- <T extends ExtraContext>(name: string, factory?: SuiteFactory<T>): SuiteCollector<T>;
139
+ <T extends ExtraContext>(name: string | Function, factory?: SuiteFactory<T>): SuiteCollector<T>;
140
140
  }>;
141
141
  type SuiteAPI<ExtraContext = {}> = ChainableSuiteAPI<ExtraContext> & {
142
142
  each: SuiteEachFunction;
@@ -163,7 +163,7 @@ interface SuiteCollector<ExtraContext = {}> {
163
163
  clear: () => void;
164
164
  on: <T extends keyof SuiteHooks<ExtraContext>>(name: T, ...fn: SuiteHooks<ExtraContext>[T]) => void;
165
165
  }
166
- type SuiteFactory<ExtraContext = {}> = (test: (name: string, fn: TestFunction<ExtraContext>) => void) => Awaitable<void>;
166
+ type SuiteFactory<ExtraContext = {}> = (test: (name: string | Function, fn: TestFunction<ExtraContext>) => void) => Awaitable<void>;
167
167
  interface RuntimeContext {
168
168
  tasks: (SuiteCollector | Test)[];
169
169
  currentSuite: SuiteCollector | null;
package/dist/types.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- export { D as DoneCallback, F as File, n as HookCleanupCallback, H as HookListener, O as OnTestFailedHandler, R as RunMode, p as RuntimeContext, r as SequenceHooks, s as SequenceSetupFiles, k as Suite, S as SuiteAPI, b as SuiteCollector, o as SuiteFactory, c as SuiteHooks, T as Task, f as TaskBase, h as TaskCustom, g as TaskMeta, i as TaskResult, j as TaskResultPack, e as TaskState, d as Test, a as TestAPI, q as TestContext, l as TestFunction, m as TestOptions } from './tasks-900f5000.js';
2
- export { C as CancelReason, V as VitestRunner, a as VitestRunnerConfig, c as VitestRunnerConstructor, b as VitestRunnerImportSource } from './runner-6af7d148.js';
1
+ export { D as DoneCallback, F as File, n as HookCleanupCallback, H as HookListener, O as OnTestFailedHandler, R as RunMode, p as RuntimeContext, r as SequenceHooks, s as SequenceSetupFiles, k as Suite, S as SuiteAPI, b as SuiteCollector, o as SuiteFactory, c as SuiteHooks, T as Task, f as TaskBase, h as TaskCustom, g as TaskMeta, i as TaskResult, j as TaskResultPack, e as TaskState, d as Test, a as TestAPI, q as TestContext, l as TestFunction, m as TestOptions } from './tasks-045d21eb.js';
2
+ export { C as CancelReason, V as VitestRunner, a as VitestRunnerConfig, c as VitestRunnerConstructor, b as VitestRunnerImportSource } from './runner-0b317aff.js';
3
3
  import '@vitest/utils';
package/dist/utils.d.ts CHANGED
@@ -1,15 +1,6 @@
1
- import { k as Suite, T as Task, d as Test, h as TaskCustom } from './tasks-900f5000.js';
2
- export { C as ChainableFunction, t as createChainable } from './tasks-900f5000.js';
1
+ import { k as Suite, T as Task, d as Test, h as TaskCustom } from './tasks-045d21eb.js';
2
+ export { C as ChainableFunction, t as createChainable } from './tasks-045d21eb.js';
3
3
  import { Arrayable } from '@vitest/utils';
4
- export { ErrorWithDiff, ParsedStack } from '@vitest/utils';
5
- import { DiffOptions } from '@vitest/utils/diff';
6
-
7
- declare function serializeError(val: any, seen?: WeakMap<object, any>): any;
8
- declare function processError(err: any, options?: DiffOptions): any;
9
- declare function replaceAsymmetricMatcher(actual: any, expected: any, actualReplaced?: WeakSet<object>, expectedReplaced?: WeakSet<object>): {
10
- replacedActual: any;
11
- replacedExpected: any;
12
- };
13
4
 
14
5
  /**
15
6
  * If any tasks been marked as `only`, mark all other tasks as `skip`.
@@ -31,4 +22,4 @@ declare function hasTests(suite: Arrayable<Suite>): boolean;
31
22
  declare function hasFailed(suite: Arrayable<Task>): boolean;
32
23
  declare function getNames(task: Task): string[];
33
24
 
34
- export { calculateSuiteHash, generateHash, getNames, getSuites, getTasks, getTests, hasFailed, hasTests, interpretTaskModes, partitionSuiteChildren, processError, replaceAsymmetricMatcher, serializeError, someTasksAreOnly };
25
+ export { calculateSuiteHash, generateHash, getNames, getSuites, getTasks, getTests, hasFailed, hasTests, interpretTaskModes, partitionSuiteChildren, someTasksAreOnly };
package/dist/utils.js CHANGED
@@ -1,3 +1,3 @@
1
- export { a as calculateSuiteHash, c as createChainable, g as generateHash, k as getNames, j as getSuites, f as getTasks, e as getTests, d as hasFailed, h as hasTests, i as interpretTaskModes, b as partitionSuiteChildren, p as processError, r as replaceAsymmetricMatcher, l as serializeError, s as someTasksAreOnly } from './chunk-tasks.js';
1
+ export { a as calculateSuiteHash, c as createChainable, g as generateHash, j as getNames, f as getSuites, e as getTasks, d as getTests, b as hasFailed, h as hasTests, i as interpretTaskModes, p as partitionSuiteChildren, s as someTasksAreOnly } from './chunk-tasks.js';
2
+ import '@vitest/utils/error';
2
3
  import '@vitest/utils';
3
- import '@vitest/utils/diff';
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@vitest/runner",
3
3
  "type": "module",
4
- "version": "0.31.4",
4
+ "version": "0.32.1",
5
5
  "description": "Vitest test runner",
6
6
  "license": "MIT",
7
7
  "funding": "https://opencollective.com/vitest",
@@ -41,7 +41,7 @@
41
41
  "concordance": "^5.0.4",
42
42
  "p-limit": "^4.0.0",
43
43
  "pathe": "^1.1.0",
44
- "@vitest/utils": "0.31.4"
44
+ "@vitest/utils": "0.32.1"
45
45
  },
46
46
  "scripts": {
47
47
  "build": "rimraf dist && rollup -c",