feat(S-102): Test-drive and implement --timeout flag, config layering, and default in
This commit is contained in:
@@ -39,6 +39,8 @@ describe("main", () => {
|
||||
stdout: "output",
|
||||
stderr: "",
|
||||
exitCode: 0,
|
||||
client: "codex",
|
||||
durationMs: 42,
|
||||
};
|
||||
|
||||
it("returns 0 for --help and prints usage", async () => {
|
||||
@@ -152,6 +154,8 @@ describe("main", () => {
|
||||
stdout: "hello-out",
|
||||
stderr: "hello-err",
|
||||
exitCode: 0,
|
||||
client: "codex",
|
||||
durationMs: 42,
|
||||
}),
|
||||
stdoutWrite: (chunk) => stdoutChunks.push(chunk),
|
||||
stderrWrite: (chunk) => stderrChunks.push(chunk),
|
||||
@@ -259,7 +263,7 @@ describe("main", () => {
|
||||
return mockResult;
|
||||
},
|
||||
resolveClient: () => "claude",
|
||||
resolveConfig: () => ({ paths: {} }),
|
||||
resolveConfig: () => ({ paths: {}, timeout: 600_000 }),
|
||||
}
|
||||
);
|
||||
assert.strictEqual(code, 0);
|
||||
@@ -286,7 +290,7 @@ describe("main", () => {
|
||||
return mockResult;
|
||||
},
|
||||
resolveClient: () => "codex",
|
||||
resolveConfig: () => ({ paths: {} }),
|
||||
resolveConfig: () => ({ paths: {}, timeout: 600_000 }),
|
||||
}
|
||||
);
|
||||
assert.strictEqual(code, 0);
|
||||
@@ -310,7 +314,7 @@ describe("main", () => {
|
||||
return mockResult;
|
||||
},
|
||||
resolveClient: (_p, cfg) => cfg?.client ?? null,
|
||||
resolveConfig: () => ({ paths: {}, defaultClient: "claude" }),
|
||||
resolveConfig: () => ({ paths: {}, defaultClient: "claude", timeout: 600_000 }),
|
||||
}
|
||||
);
|
||||
assert.strictEqual(code, 0);
|
||||
@@ -329,7 +333,7 @@ describe("main", () => {
|
||||
detectClients: () => mockClients,
|
||||
executePrompt: async () => mockResult,
|
||||
resolveClient: () => null,
|
||||
resolveConfig: () => ({ paths: {} }),
|
||||
resolveConfig: () => ({ paths: {}, timeout: 600_000 }),
|
||||
}
|
||||
);
|
||||
assert.strictEqual(code, 1);
|
||||
@@ -351,7 +355,7 @@ describe("main", () => {
|
||||
throw new ClientNotFoundError("claude");
|
||||
},
|
||||
resolveClient: () => "claude",
|
||||
resolveConfig: () => ({ paths: {} }),
|
||||
resolveConfig: () => ({ paths: {}, timeout: 600_000 }),
|
||||
}
|
||||
);
|
||||
assert.strictEqual(code, 1);
|
||||
@@ -388,9 +392,11 @@ describe("main", () => {
|
||||
stdout: "done",
|
||||
stderr: "",
|
||||
exitCode: 0,
|
||||
client: "codex",
|
||||
durationMs: 42,
|
||||
}),
|
||||
resolveClient: () => "codex",
|
||||
resolveConfig: () => ({ paths: {} }),
|
||||
resolveConfig: () => ({ paths: {}, timeout: 600_000 }),
|
||||
stdoutWrite: (chunk) => stdoutChunks.push(chunk),
|
||||
}
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user