hrms-manual/node_modules/vitest/dist/entry.js
2023-09-06 14:51:44 +07:00

84 lines
2.9 KiB
JavaScript

import { promises } from 'fs';
import { g as getWorkerState, a as resetModules } from './chunk-typecheck-constants.ed987901.js';
import { v as vi } from './chunk-runtime-test-state.3f86f48f.js';
import { a as envs } from './chunk-env-node.67948209.js';
import { a as setupGlobalEnv, s as startTests, w as withEnv } from './chunk-runtime-setup.5398e2c4.js';
import 'path';
import './chunk-utils-env.03f840f2.js';
import 'tty';
import 'url';
import 'local-pkg';
import './chunk-runtime-chain.f86e5250.js';
import 'util';
import 'chai';
import './vendor-_commonjsHelpers.addc3445.js';
import './chunk-runtime-rpc.42aebbb9.js';
import './chunk-utils-timers.793fd179.js';
import './chunk-utils-source-map.29ff1088.js';
import './spy.js';
import 'tinyspy';
import 'console';
import 'perf_hooks';
import './chunk-integrations-coverage.befed097.js';
import './chunk-runtime-error.616e92ca.js';
import './vendor-source-map-support.1ce17397.js';
import 'source-map';
function groupBy(collection, iteratee) {
return collection.reduce((acc, item) => {
const key = iteratee(item);
acc[key] || (acc[key] = []);
acc[key].push(item);
return acc;
}, {});
}
async function run(files, config) {
await setupGlobalEnv(config);
const workerState = getWorkerState();
if (config.browser) {
workerState.mockMap.clear();
await startTests(files, config);
return;
}
const filesWithEnv = await Promise.all(files.map(async (file) => {
var _a, _b;
const code = await promises.readFile(file, "utf-8");
const env = ((_a = code.match(/@(?:vitest|jest)-environment\s+?([\w-]+)\b/)) == null ? void 0 : _a[1]) || config.environment || "node";
const envOptions = JSON.parse(((_b = code.match(/@(?:vitest|jest)-environment-options\s+?(.+)/)) == null ? void 0 : _b[1]) || "null");
return {
file,
env,
envOptions: envOptions ? { [env]: envOptions } : null
};
}));
const filesByEnv = groupBy(filesWithEnv, ({ env }) => env);
const orderedEnvs = envs.concat(
Object.keys(filesByEnv).filter((env) => !envs.includes(env))
);
for (const env of orderedEnvs) {
const environment = env;
const files2 = filesByEnv[environment];
if (!files2 || !files2.length)
continue;
const filesByOptions = groupBy(files2, ({ envOptions }) => JSON.stringify(envOptions));
for (const options of Object.keys(filesByOptions)) {
const files3 = filesByOptions[options];
if (!files3 || !files3.length)
continue;
await withEnv(environment, files3[0].envOptions || config.environmentOptions || {}, async () => {
for (const { file } of files3) {
if (config.isolate) {
workerState.mockMap.clear();
resetModules(workerState.moduleCache, true);
}
workerState.filepath = file;
await startTests([file], config);
workerState.filepath = void 0;
vi.resetConfig();
}
});
}
}
}
export { run };