vitest 0.32.4 → 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.
- package/LICENSE.md +0 -83
- package/dist/browser.d.ts +3 -2
- package/dist/browser.js +4 -8
- package/dist/child.js +43 -29
- package/dist/{chunk-api-setup.8f785c4a.js → chunk-api-setup.644415c3.js} +13 -7
- package/dist/{chunk-install-pkg.3fc886f2.js → chunk-install-pkg.dd70081b.js} +14 -13
- package/dist/{chunk-integrations-globals.0093e2ed.js → chunk-integrations-globals.877c84db.js} +7 -6
- package/dist/chunk-runtime-console.ea222ffb.js +108 -0
- package/dist/cli.js +15 -16
- package/dist/config.cjs +6 -5
- package/dist/config.d.ts +15 -19
- package/dist/config.js +6 -5
- package/dist/coverage.d.ts +3 -2
- package/dist/entry-vm.js +60 -0
- package/dist/entry.js +34 -213
- package/dist/environments.d.ts +3 -2
- package/dist/environments.js +4 -2
- package/dist/execute.js +15 -0
- package/dist/index.d.ts +12 -7
- package/dist/index.js +8 -7
- package/dist/loader.js +6 -4
- package/dist/node.d.ts +6 -53
- package/dist/node.js +17 -20
- package/dist/runners.d.ts +3 -2
- package/dist/runners.js +6 -5
- package/dist/{types-198fd1d9.d.ts → types-3c7dbfa5.d.ts} +139 -121
- package/dist/vendor-base.9c08bbd0.js +96 -0
- package/dist/{vendor-coverage.2e41927a.js → vendor-coverage.78040316.js} +1 -2
- package/dist/vendor-date.6e993429.js +50 -0
- package/dist/{vendor-environments.75f2b63d.js → vendor-environments.443ecd82.js} +202 -3
- package/dist/vendor-execute.9ab1c1a7.js +978 -0
- package/dist/{vendor-global.6795f91f.js → vendor-global.97e4527c.js} +2 -1
- package/dist/{vendor-index.23ac4e13.js → vendor-index.087d1af7.js} +2 -20
- package/dist/vendor-index.9378c9a4.js +89 -0
- package/dist/vendor-index.b271ebe4.js +92 -0
- package/dist/{vendor-index.2af39fbb.js → vendor-index.eff408fd.js} +2 -3
- package/dist/{vendor-cli-api.cb31e1db.js → vendor-node.00226ab1.js} +1671 -1882
- package/dist/{vendor-rpc.ad5b08c7.js → vendor-rpc.cbd8e972.js} +7 -4
- package/dist/{vendor-run-once.1fa85ba7.js → vendor-run-once.3e5ef7d7.js} +1 -2
- package/dist/vendor-source-map.e6c1997b.js +747 -0
- package/dist/{vendor-vi.dd6706cb.js → vendor-vi.271667ef.js} +26 -59
- package/dist/vm.js +114 -0
- package/dist/worker.js +39 -27
- package/execute.d.ts +1 -0
- package/package.json +14 -11
- package/suppress-warnings.cjs +2 -0
- package/dist/vendor-execute.3576af13.js +0 -421
- package/dist/vendor-index.cc463d9e.js +0 -189
- 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
|
-
|
|
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.
|
|
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,
|
|
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,
|
|
3
|
-
import { i as isFirstRun, r as runOnce } from './vendor-run-once.
|
|
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,
|