diff --git a/test/helpers/e2e-helpers.ts b/test/helpers/e2e-helpers.ts index b65e0a79..406639ed 100644 --- a/test/helpers/e2e-helpers.ts +++ b/test/helpers/e2e-helpers.ts @@ -5,11 +5,13 @@ * tests across multiple files by category. */ -import { describe, test, afterAll } from 'bun:test'; +import { describe, test, beforeAll, afterAll } from 'bun:test'; import type { SkillTestResult } from './session-runner'; import { EvalCollector, judgePassed } from './eval-store'; import type { EvalTestEntry } from './eval-store'; import { selectTests, detectBaseBranch, getChangedFiles, E2E_TOUCHFILES, GLOBAL_TOUCHFILES } from './touchfiles'; +import { WorktreeManager } from '../../lib/worktree'; +import type { HarvestResult } from '../../lib/worktree'; import { spawnSync } from 'child_process'; import * as fs from 'fs'; import * as path from 'path'; @@ -234,6 +236,59 @@ export function testConcurrentIfSelected(testName: string, fn: () => Promise string) => void, +) { + describeIfSelected(name, testNames, () => { + let worktreePath: string; + beforeAll(() => { worktreePath = createTestWorktree(name); }); + afterAll(() => { harvestAndCleanup(name); }); + fn(() => worktreePath); + }); +} + export { judgePassed } from './eval-store'; export { EvalCollector } from './eval-store'; export type { EvalTestEntry } from './eval-store'; +export type { HarvestResult } from '../../lib/worktree'; diff --git a/test/helpers/eval-store.ts b/test/helpers/eval-store.ts index ffe82625..a7d63178 100644 --- a/test/helpers/eval-store.ts +++ b/test/helpers/eval-store.ts @@ -80,6 +80,13 @@ export interface EvalTestEntry { missed_bugs?: string[]; error?: string; + + // Worktree harvest data + harvest?: { + filesChanged: number; + patchPath: string; + isDuplicate: boolean; + }; } export interface EvalResult { diff --git a/test/helpers/touchfiles.ts b/test/helpers/touchfiles.ts index 38f9986b..d0d232a5 100644 --- a/test/helpers/touchfiles.ts +++ b/test/helpers/touchfiles.ts @@ -200,6 +200,7 @@ export const GLOBAL_TOUCHFILES = [ 'scripts/gen-skill-docs.ts', 'test/helpers/touchfiles.ts', 'browse/test/test-server.ts', + 'lib/worktree.ts', ]; // --- Base branch detection ---