71 lines
2.0 KiB
TypeScript
71 lines
2.0 KiB
TypeScript
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");
|
|
});
|