vitest 0.33.0 → 0.34.0

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 (49) hide show
  1. package/LICENSE.md +0 -83
  2. package/dist/browser.d.ts +3 -2
  3. package/dist/browser.js +4 -8
  4. package/dist/child.js +43 -29
  5. package/dist/{chunk-api-setup.8f785c4a.js → chunk-api-setup.644415c3.js} +13 -7
  6. package/dist/{chunk-install-pkg.23da664c.js → chunk-install-pkg.dd70081b.js} +14 -13
  7. package/dist/{chunk-integrations-globals.0093e2ed.js → chunk-integrations-globals.877c84db.js} +7 -6
  8. package/dist/chunk-runtime-console.ea222ffb.js +108 -0
  9. package/dist/cli.js +14 -15
  10. package/dist/config.cjs +4 -3
  11. package/dist/config.d.ts +15 -19
  12. package/dist/config.js +4 -3
  13. package/dist/coverage.d.ts +3 -2
  14. package/dist/entry-vm.js +60 -0
  15. package/dist/entry.js +34 -213
  16. package/dist/environments.d.ts +3 -2
  17. package/dist/environments.js +4 -2
  18. package/dist/execute.js +15 -0
  19. package/dist/index.d.ts +12 -7
  20. package/dist/index.js +8 -7
  21. package/dist/loader.js +6 -4
  22. package/dist/node.d.ts +6 -53
  23. package/dist/node.js +16 -19
  24. package/dist/runners.d.ts +3 -2
  25. package/dist/runners.js +6 -5
  26. package/dist/{types-198fd1d9.d.ts → types-3c7dbfa5.d.ts} +139 -121
  27. package/dist/vendor-base.9c08bbd0.js +96 -0
  28. package/dist/{vendor-coverage.2e41927a.js → vendor-coverage.78040316.js} +1 -2
  29. package/dist/vendor-date.6e993429.js +50 -0
  30. package/dist/{vendor-environments.392ddf08.js → vendor-environments.443ecd82.js} +199 -3
  31. package/dist/vendor-execute.9ab1c1a7.js +978 -0
  32. package/dist/{vendor-global.6795f91f.js → vendor-global.97e4527c.js} +2 -1
  33. package/dist/{vendor-index.23ac4e13.js → vendor-index.087d1af7.js} +2 -20
  34. package/dist/vendor-index.9378c9a4.js +89 -0
  35. package/dist/vendor-index.b271ebe4.js +92 -0
  36. package/dist/{vendor-index.2af39fbb.js → vendor-index.eff408fd.js} +2 -3
  37. package/dist/{vendor-cli-api.bf4b62a8.js → vendor-node.00226ab1.js} +538 -836
  38. package/dist/{vendor-rpc.ad5b08c7.js → vendor-rpc.cbd8e972.js} +7 -4
  39. package/dist/{vendor-run-once.1fa85ba7.js → vendor-run-once.3e5ef7d7.js} +1 -2
  40. package/dist/vendor-source-map.e6c1997b.js +747 -0
  41. package/dist/{vendor-vi.dd6706cb.js → vendor-vi.271667ef.js} +26 -59
  42. package/dist/vm.js +114 -0
  43. package/dist/worker.js +39 -27
  44. package/execute.d.ts +1 -0
  45. package/package.json +12 -9
  46. package/suppress-warnings.cjs +2 -0
  47. package/dist/vendor-execute.3576af13.js +0 -421
  48. package/dist/vendor-index.cc463d9e.js +0 -189
  49. package/dist/vendor-tasks.f9d75aed.js +0 -14
@@ -2,7 +2,8 @@ function getWorkerState() {
2
2
  return globalThis.__vitest_worker__;
3
3
  }
4
4
  function getCurrentEnvironment() {
5
- return globalThis.__vitest_environment__;
5
+ const state = getWorkerState();
6
+ return state == null ? void 0 : state.environment.name;
6
7
  }
7
8
 
8
9
  export { getCurrentEnvironment as a, getWorkerState as g };
@@ -2,7 +2,7 @@ import { relative } from 'pathe';
2
2
  import 'std-env';
3
3
  import '@vitest/runner/utils';
4
4
  import '@vitest/utils';
5
- import { g as getWorkerState } from './vendor-global.6795f91f.js';
5
+ import { g as getWorkerState } from './vendor-global.97e4527c.js';
6
6
 
7
7
  var _a;
8
8
  const isNode = typeof process < "u" && typeof process.stdout < "u" && !((_a = process.versions) == null ? void 0 : _a.deno) && !globalThis.window;
@@ -15,24 +15,6 @@ function isRunningInBenchmark() {
15
15
  return getRunMode() === "benchmark";
16
16
  }
17
17
  const relativePath = relative;
18
- function resetModules(modules, resetMocks = false) {
19
- const skipPaths = [
20
- // Vitest
21
- /\/vitest\/dist\//,
22
- /\/vite-node\/dist\//,
23
- // yarn's .store folder
24
- /vitest-virtual-\w+\/dist/,
25
- // cnpm
26
- /@vitest\/dist/,
27
- // don't clear mocks
28
- ...!resetMocks ? [/^mock:/] : []
29
- ];
30
- modules.forEach((mod, path) => {
31
- if (skipPaths.some((re) => re.test(path)))
32
- return;
33
- modules.invalidateModule(mod);
34
- });
35
- }
36
18
  function removeUndefinedValues(obj) {
37
19
  for (const key in Object.keys(obj)) {
38
20
  if (obj[key] === void 0)
@@ -41,4 +23,4 @@ function removeUndefinedValues(obj) {
41
23
  return obj;
42
24
  }
43
25
 
44
- export { isNode as a, relativePath as b, removeUndefinedValues as c, isWindows as d, isRunningInBenchmark as i, resetModules as r };
26
+ export { isNode as a, removeUndefinedValues as b, isWindows as c, isRunningInBenchmark as i, relativePath as r };
@@ -0,0 +1,89 @@
1
+ import * as chai from 'chai';
2
+ import { NodeSnapshotEnvironment } from '@vitest/snapshot/environment';
3
+ import { resolve } from 'pathe';
4
+ import { d as distDir } from './vendor-paths.84fc7a99.js';
5
+ import { g as getWorkerState } from './vendor-global.97e4527c.js';
6
+ import { a as rpc } from './vendor-rpc.cbd8e972.js';
7
+ import { t as takeCoverageInsideWorker } from './vendor-coverage.78040316.js';
8
+
9
+ function setupChaiConfig(config) {
10
+ Object.assign(chai.config, config);
11
+ }
12
+
13
+ class VitestSnapshotEnvironment extends NodeSnapshotEnvironment {
14
+ constructor(rpc) {
15
+ super();
16
+ this.rpc = rpc;
17
+ }
18
+ getHeader() {
19
+ return `// Vitest Snapshot v${this.getVersion()}, https://vitest.dev/guide/snapshot.html`;
20
+ }
21
+ resolvePath(filepath) {
22
+ return this.rpc.resolveSnapshotPath(filepath);
23
+ }
24
+ }
25
+
26
+ const runnersFile = resolve(distDir, "runners.js");
27
+ async function getTestRunnerConstructor(config, executor) {
28
+ if (!config.runner) {
29
+ const { VitestTestRunner, NodeBenchmarkRunner } = await executor.executeFile(runnersFile);
30
+ return config.mode === "test" ? VitestTestRunner : NodeBenchmarkRunner;
31
+ }
32
+ const mod = await executor.executeId(config.runner);
33
+ if (!mod.default && typeof mod.default !== "function")
34
+ throw new Error(`Runner must export a default function, but got ${typeof mod.default} imported from ${config.runner}`);
35
+ return mod.default;
36
+ }
37
+ async function resolveTestRunner(config, executor) {
38
+ const TestRunner = await getTestRunnerConstructor(config, executor);
39
+ const testRunner = new TestRunner(config);
40
+ Object.defineProperty(testRunner, "__vitest_executor", {
41
+ value: executor,
42
+ enumerable: false,
43
+ configurable: false
44
+ });
45
+ if (!testRunner.config)
46
+ testRunner.config = config;
47
+ if (!testRunner.importFile)
48
+ throw new Error('Runner must implement "importFile" method.');
49
+ const originalOnTaskUpdate = testRunner.onTaskUpdate;
50
+ testRunner.onTaskUpdate = async (task) => {
51
+ const p = rpc().onTaskUpdate(task);
52
+ await (originalOnTaskUpdate == null ? void 0 : originalOnTaskUpdate.call(testRunner, task));
53
+ return p;
54
+ };
55
+ const originalOnCollected = testRunner.onCollected;
56
+ testRunner.onCollected = async (files) => {
57
+ const state = getWorkerState();
58
+ files.forEach((file) => {
59
+ file.prepareDuration = state.durations.prepare;
60
+ file.environmentLoad = state.durations.environment;
61
+ state.durations.prepare = 0;
62
+ state.durations.environment = 0;
63
+ });
64
+ rpc().onCollected(files);
65
+ await (originalOnCollected == null ? void 0 : originalOnCollected.call(testRunner, files));
66
+ };
67
+ const originalOnAfterRun = testRunner.onAfterRun;
68
+ testRunner.onAfterRun = async (files) => {
69
+ const coverage = await takeCoverageInsideWorker(config.coverage, executor);
70
+ rpc().onAfterSuiteRun({ coverage });
71
+ await (originalOnAfterRun == null ? void 0 : originalOnAfterRun.call(testRunner, files));
72
+ };
73
+ const originalOnAfterRunTest = testRunner.onAfterRunTest;
74
+ testRunner.onAfterRunTest = async (test) => {
75
+ var _a, _b;
76
+ if (config.bail && ((_a = test.result) == null ? void 0 : _a.state) === "fail") {
77
+ const previousFailures = await rpc().getCountOfFailedTests();
78
+ const currentFailures = 1 + previousFailures;
79
+ if (currentFailures >= config.bail) {
80
+ rpc().onCancel("test-failure");
81
+ (_b = testRunner.onCancel) == null ? void 0 : _b.call(testRunner, "test-failure");
82
+ }
83
+ }
84
+ await (originalOnAfterRunTest == null ? void 0 : originalOnAfterRunTest.call(testRunner, test));
85
+ };
86
+ return testRunner;
87
+ }
88
+
89
+ export { VitestSnapshotEnvironment as V, resolveTestRunner as r, setupChaiConfig as s };
@@ -0,0 +1,92 @@
1
+ const DEFAULT_TIMEOUT = 6e4;
2
+ function defaultSerialize(i) {
3
+ return i;
4
+ }
5
+ const defaultDeserialize = defaultSerialize;
6
+ const { setTimeout } = globalThis;
7
+ const random = Math.random.bind(Math);
8
+ function createBirpc(functions, options) {
9
+ const {
10
+ post,
11
+ on,
12
+ eventNames = [],
13
+ serialize = defaultSerialize,
14
+ deserialize = defaultDeserialize,
15
+ resolver,
16
+ timeout = DEFAULT_TIMEOUT
17
+ } = options;
18
+ const rpcPromiseMap = /* @__PURE__ */ new Map();
19
+ let _promise;
20
+ const rpc = new Proxy({}, {
21
+ get(_, method) {
22
+ if (method === "$functions")
23
+ return functions;
24
+ const sendEvent = (...args) => {
25
+ post(serialize({ m: method, a: args, t: "q" }));
26
+ };
27
+ if (eventNames.includes(method)) {
28
+ sendEvent.asEvent = sendEvent;
29
+ return sendEvent;
30
+ }
31
+ const sendCall = async (...args) => {
32
+ await _promise;
33
+ return new Promise((resolve, reject) => {
34
+ const id = nanoid();
35
+ rpcPromiseMap.set(id, { resolve, reject });
36
+ post(serialize({ m: method, a: args, i: id, t: "q" }));
37
+ if (timeout >= 0) {
38
+ setTimeout(() => {
39
+ reject(new Error(`[birpc] timeout on calling "${method}"`));
40
+ rpcPromiseMap.delete(id);
41
+ }, timeout);
42
+ }
43
+ });
44
+ };
45
+ sendCall.asEvent = sendEvent;
46
+ return sendCall;
47
+ }
48
+ });
49
+ _promise = on(async (data, ...extra) => {
50
+ const msg = deserialize(data);
51
+ if (msg.t === "q") {
52
+ const { m: method, a: args } = msg;
53
+ let result, error;
54
+ const fn = resolver ? resolver(method, functions[method]) : functions[method];
55
+ if (!fn) {
56
+ error = new Error(`[birpc] function "${method}" not found`);
57
+ } else {
58
+ try {
59
+ result = await fn.apply(rpc, args);
60
+ } catch (e) {
61
+ error = e;
62
+ }
63
+ }
64
+ if (msg.i) {
65
+ if (error && options.onError)
66
+ options.onError(error, method, args);
67
+ post(serialize({ t: "s", i: msg.i, r: result, e: error }), ...extra);
68
+ }
69
+ } else {
70
+ const { i: ack, r: result, e: error } = msg;
71
+ const promise = rpcPromiseMap.get(ack);
72
+ if (promise) {
73
+ if (error)
74
+ promise.reject(error);
75
+ else
76
+ promise.resolve(result);
77
+ }
78
+ rpcPromiseMap.delete(ack);
79
+ }
80
+ });
81
+ return rpc;
82
+ }
83
+ const urlAlphabet = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";
84
+ function nanoid(size = 21) {
85
+ let id = "";
86
+ let i = size;
87
+ while (i--)
88
+ id += urlAlphabet[random() * 64 | 0];
89
+ return id;
90
+ }
91
+
92
+ export { createBirpc as c };
@@ -1,6 +1,6 @@
1
1
  import { afterAll, afterEach, beforeAll, beforeEach, describe, it, onTestFailed, suite, test } from '@vitest/runner';
2
- import { e as bench, c as createExpect, d as globalExpect, s as setupChaiConfig, v as vi, f as vitest } from './vendor-vi.dd6706cb.js';
3
- import { i as isFirstRun, r as runOnce } from './vendor-run-once.1fa85ba7.js';
2
+ import { e as bench, c as createExpect, d as globalExpect, v as vi, f as vitest } from './vendor-vi.271667ef.js';
3
+ import { i as isFirstRun, r as runOnce } from './vendor-run-once.3e5ef7d7.js';
4
4
  import * as chai from 'chai';
5
5
  import { assert, should } from 'chai';
6
6
 
@@ -110,7 +110,6 @@ var index = /*#__PURE__*/Object.freeze({
110
110
  it: it,
111
111
  onTestFailed: onTestFailed,
112
112
  runOnce: runOnce,
113
- setupChaiConfig: setupChaiConfig,
114
113
  should: should,
115
114
  suite: suite,
116
115
  test: test,