feat(team-mode): add team tasklist test-support utilities
This commit is contained in:
@@ -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<void>
|
||||||
|
}> {
|
||||||
|
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<Task, "id" | "createdAt" | "updatedAt" | "version">>): Omit<Task, "id" | "createdAt" | "updatedAt" | "version"> {
|
||||||
|
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,
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user