summaryrefslogtreecommitdiffhomepage
path: root/packages/cli/src/args.test.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/cli/src/args.test.ts')
-rw-r--r--packages/cli/src/args.test.ts43
1 files changed, 43 insertions, 0 deletions
diff --git a/packages/cli/src/args.test.ts b/packages/cli/src/args.test.ts
index 02b9e9b..ce278bb 100644
--- a/packages/cli/src/args.test.ts
+++ b/packages/cli/src/args.test.ts
@@ -49,6 +49,7 @@ describe("parseArgs", () => {
file: undefined,
cwd: undefined,
conversationId: undefined,
+ reasoningEffort: undefined,
showReasoning: false,
});
});
@@ -63,6 +64,7 @@ describe("parseArgs", () => {
file: "foo.txt",
cwd: undefined,
conversationId: undefined,
+ reasoningEffort: undefined,
showReasoning: false,
});
});
@@ -96,10 +98,51 @@ describe("parseArgs", () => {
file: undefined,
cwd: "/tmp",
conversationId: "abc",
+ reasoningEffort: undefined,
showReasoning: true,
});
});
+ it("parses --effort high", () => {
+ const result = parseArgs(["m", "--text", "x", "--effort", "high"], { defaultServer });
+ expect(result).toEqual({
+ kind: "chat",
+ server: "http://localhost:24203",
+ modelName: "m",
+ text: "x",
+ file: undefined,
+ cwd: undefined,
+ conversationId: undefined,
+ reasoningEffort: "high",
+ showReasoning: false,
+ });
+ });
+
+ it.each(["low", "medium", "high", "xhigh", "max"] as const)("accepts --effort %s", (level) => {
+ const result = parseArgs(["m", "--text", "x", "--effort", level], { defaultServer });
+ expect(result.kind).toBe("chat");
+ if (result.kind === "chat") expect(result.reasoningEffort).toBe(level);
+ });
+
+ it("errors when --effort has no value", () => {
+ const result = parseArgs(["m", "--text", "x", "--effort"], { defaultServer });
+ expect(result.kind).toBe("error");
+ if (result.kind === "error") expect(result.message).toContain("--effort requires a value");
+ });
+
+ it("errors on invalid effort level", () => {
+ const result = parseArgs(["m", "--text", "x", "--effort", "banana"], { defaultServer });
+ expect(result.kind).toBe("error");
+ if (result.kind === "error") {
+ expect(result.message).toContain("banana");
+ expect(result.message).toContain("low");
+ expect(result.message).toContain("medium");
+ expect(result.message).toContain("high");
+ expect(result.message).toContain("xhigh");
+ expect(result.message).toContain("max");
+ }
+ });
+
it("errors when text and file are both missing", () => {
const result = parseArgs(["my-model"], { defaultServer });
expect(result.kind).toBe("error");