/** * VCS-native test runner — executes manifest suites and records vcs:testRun ops. */ import type { EngineContext } from './engine-context.js'; import { type TestManifest, type TestSuiteDef } from './test-manifest.js'; export type TestRunTrigger = 'manual' | 'watch' | 'pre-promote' | 'pre-close' | 'criterion'; export interface TestRunResult { testRunId: string; suite?: string; command: string; status: 'passed' | 'failed'; output?: string; exitCode?: number; durationMs?: number; opHash?: string; } export interface RunTestSuiteParams { /** Working directory for the shell command (lane worktree or repo root). */ cwd: string; /** Repo root containing `.trellis/tests.json` (defaults to `cwd`). */ manifestRoot?: string; suiteId: string; manifest?: TestManifest; laneId?: string; issueId?: string; trigger?: TestRunTrigger; } export declare function executeTestCommand(opts: { command: string; cwd: string; timeoutMs?: number; }): Promise<{ status: 'passed' | 'failed'; output: string; exitCode: number; durationMs: number; }>; export declare function emitTestRunOp(ctx: EngineContext, params: { suiteId?: string; command: string; status: 'passed' | 'failed'; output?: string; exitCode?: number; durationMs?: number; laneId?: string; issueId?: string; trigger: TestRunTrigger; }): Promise; export declare function runTestSuite(ctx: EngineContext, params: RunTestSuiteParams): Promise; export declare function runTestSuites(ctx: EngineContext, params: { cwd: string; manifestRoot?: string; suiteIds: string[]; manifest?: TestManifest; laneId?: string; issueId?: string; trigger?: TestRunTrigger; }): Promise; export declare function runPromoteRequiredTests(ctx: EngineContext, cwd: string, laneId: string, manifestRoot?: string): Promise; export declare function allTestRunsPassed(results: TestRunResult[]): boolean; /** Load manifest if present; never throws for missing file. */ export declare function tryLoadTestManifest(rootPath: string): TestManifest | null; export declare function describeSuite(suiteId: string, suite: TestSuiteDef): string; //# sourceMappingURL=test-runner.d.ts.map