import { defineProject } from "vitest/config"; import { loadPatternListFromEnv, narrowIncludePatternsForCli } from "./vitest.pattern-file.ts"; import { sharedVitestConfig } from "./vitest.shared.config.ts"; import { boundaryTestFiles } from "./vitest.unit-paths.mjs"; export function loadBoundaryIncludePatternsFromEnv( env: Record = process.env, ): string[] | null { return loadPatternListFromEnv("OPENCLAW_VITEST_INCLUDE_FILE", env); } export function createBoundaryVitestConfig( env: Record = process.env, argv: string[] = process.argv, ) { const cliIncludePatterns = narrowIncludePatternsForCli(boundaryTestFiles, argv); return defineProject({ ...sharedVitestConfig, test: { ...sharedVitestConfig.test, name: "boundary", isolate: false, runner: "./test/non-isolated-runner.ts", include: loadBoundaryIncludePatternsFromEnv(env) ?? cliIncludePatterns ?? boundaryTestFiles, ...(cliIncludePatterns !== null ? { passWithNoTests: true } : {}), // Boundary workers still need the shared isolated HOME/bootstrap. Only // per-file module isolation is disabled here. setupFiles: sharedVitestConfig.test.setupFiles, }, }); } export default createBoundaryVitestConfig();