From b34cd8741694dceb2ea6d4747091aa2e79d4e98d Mon Sep 17 00:00:00 2001 From: YeonGyu-Kim Date: Tue, 28 Apr 2026 10:46:13 +0900 Subject: [PATCH] feat(team-mode): add team tasklist test-support utilities --- .../team-mode/team-tasklist/test-support.ts | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 src/features/team-mode/team-tasklist/test-support.ts diff --git a/src/features/team-mode/team-tasklist/test-support.ts b/src/features/team-mode/team-tasklist/test-support.ts new file mode 100644 index 000000000..5999747c4 --- /dev/null +++ b/src/features/team-mode/team-tasklist/test-support.ts @@ -0,0 +1,46 @@ +import { mkdtemp, mkdir, rm } from "node:fs/promises" +import { tmpdir } from "node:os" +import path from "node:path" +import { randomUUID } from "node:crypto" + +import { TeamModeConfigSchema } from "../../../config/schema/team-mode" +import type { TeamModeConfig } from "../../../config/schema/team-mode" +import { getTasksDir, resolveBaseDir } from "../team-registry" +import type { Task } from "../types" + +export async function createTasklistFixture(): Promise<{ + config: TeamModeConfig + rootDirectory: string + teamRunId: string + cleanup: () => Promise +}> { + const rootDirectory = await mkdtemp(path.join(tmpdir(), "team-tasklist-")) + const config = TeamModeConfigSchema.parse({ base_dir: rootDirectory, enabled: true }) + const teamRunId = randomUUID() + const tasksDirectory = getTasksDir(resolveBaseDir(config), teamRunId) + + await mkdir(path.join(tasksDirectory, "claims"), { recursive: true, mode: 0o700 }) + + return { + config, + rootDirectory, + teamRunId, + cleanup: async () => { + await rm(rootDirectory, { recursive: true, force: true }) + }, + } +} + +export function createTaskInput(overrides?: Partial>): Omit { + return { + subject: overrides?.subject ?? "task subject", + description: overrides?.description ?? "task description", + activeForm: overrides?.activeForm, + status: overrides?.status ?? "pending", + owner: overrides?.owner, + blocks: overrides?.blocks ?? [], + blockedBy: overrides?.blockedBy ?? [], + metadata: overrides?.metadata, + claimedAt: overrides?.claimedAt, + } +}