import test from "node:test"; import assert from "node:assert/strict"; import { createConfiguredRunSingleTask } from "./runner.ts"; function makeResult(finalText: string) { return { runId: "run-1", agent: "scout", agentSource: "builtin" as const, task: "inspect auth", exitCode: 0, finalText, }; } test("createConfiguredRunSingleTask uses process runner when config says process", async () => { const calls: string[] = []; const runSingleTask = createConfiguredRunSingleTask({ loadConfig: () => ({ runner: "process" }), processRunner: async () => { calls.push("process"); return makeResult("process"); }, tmuxRunner: async () => { calls.push("tmux"); return makeResult("tmux"); }, }); const result = await runSingleTask({ cwd: "/repo", meta: { task: "inspect auth" } as any }); assert.equal(result.finalText, "process"); assert.deepEqual(calls, ["process"]); }); test("createConfiguredRunSingleTask uses tmux runner when config says tmux", async () => { const calls: string[] = []; const runSingleTask = createConfiguredRunSingleTask({ loadConfig: () => ({ runner: "tmux" }), processRunner: async () => { calls.push("process"); return makeResult("process"); }, tmuxRunner: async () => { calls.push("tmux"); return makeResult("tmux"); }, }); const result = await runSingleTask({ cwd: "/repo", meta: { task: "inspect auth" } as any }); assert.equal(result.finalText, "tmux"); assert.deepEqual(calls, ["tmux"]); }); test("createConfiguredRunSingleTask passes task cwd into config loader", async () => { let cwdSeen = ""; const runSingleTask = createConfiguredRunSingleTask({ loadConfig: (cwd) => { cwdSeen = cwd; return { runner: "process" }; }, processRunner: async () => makeResult("process"), tmuxRunner: async () => makeResult("tmux"), }); await runSingleTask({ cwd: "/repo/worktree", meta: { task: "inspect auth" } as any }); assert.equal(cwdSeen, "/repo/worktree"); });