UNPKG

nitro-test-utils

Version:
51 lines (48 loc) 1.87 kB
import { fileURLToPath } from 'node:url'; import { loadOptions } from 'nitropack'; import { join } from 'pathe'; import { mergeConfig } from 'vite'; import { defineConfig as defineConfig$1 } from 'vitest/config'; async function defineConfig(userConfig = {}) { const currentDir = fileURLToPath(new URL(".", import.meta.url)); const resolvedGlobalConfig = userConfig.nitro?.global === true ? {} : userConfig.nitro?.global || void 0; const resolvedNitroConfig = { rerunOnSourceChanges: userConfig.nitro?.rerunOnSourceChanges ?? true, global: resolvedGlobalConfig ? { rootDir: userConfig.nitro?.rootDir || resolvedGlobalConfig.rootDir || void 0, mode: userConfig.nitro?.mode || resolvedGlobalConfig.mode || void 0 } : void 0 }; const overrides = defineConfig$1({ test: { poolOptions: { forks: { // Disabling isolation improves performance in Node environments isolate: false, singleFork: true } }, forceRerunTriggers: [ // Vitest defaults "**/package.json/**", "**/{vitest,vite}.config.*/**", // Custom triggers ...userConfig.test?.forceRerunTriggers ?? [], // Rerun tests when source files change ...resolvedNitroConfig.rerunOnSourceChanges ? resolvedNitroConfig.global ? [join( resolvedNitroConfig.global.rootDir || "", ".output", resolvedNitroConfig.global.mode === "production" ? "server" : ".nitro/dev", "index.mjs" )] : [`${(await loadOptions()).srcDir}/**/*.ts`] : [] ], globalSetup: resolvedNitroConfig.global ? [ join(currentDir, "setup.mjs") ] : void 0, // @ts-expect-error: Append Nitro for global setup file nitro: resolvedNitroConfig } }); return mergeConfig(userConfig, overrides); } export { defineConfig };