import type { CommandExecutor } from "../ports/command-executor.ts"; import type { ProjectProbe } from "../ports/project-probe.ts"; import { executeTestRunPlan, type TestRunExecutionResult, } from "./execute-test-run-plan.ts"; import { resolveTestRunPlan } from "./resolve-test-run-plan.ts"; export type RunProjectTestsInput = { cwd: string; argsTail?: string; probe: ProjectProbe; executor: CommandExecutor; timeoutMs?: number; signal?: AbortSignal; }; export async function runProjectTests( input: RunProjectTestsInput, ): Promise { const plan = await resolveTestRunPlan({ cwd: input.cwd, argsTail: input.argsTail, probe: input.probe, }); return executeTestRunPlan(plan, { executor: input.executor, timeoutMs: input.timeoutMs, signal: input.signal, }); }