import { Inputs } from "./payload.ts"; describe("Inputs schema", () => { it("only prompt is required", () => { const result = Inputs.assert({ prompt: "test prompt" }); expect(result).toEqual({ prompt: "test prompt" }); expect(() => Inputs.assert({})).toThrow(); }); it.each([ ["web", "enabled"], ["web", "disabled"], ["web", undefined], ["search", "enabled"], ["search", "disabled"], ["search", undefined], ["write", "enabled"], ["write", "disabled"], ["write", undefined], ["bash", "enabled"], ["bash", "restricted"], ["bash", "disabled"], ["bash", undefined], ["effort", "mini"], ["effort", "auto"], ["effort", "max"], ["agent", "claude"], ["agent", "codex"], ["agent", "cursor"], ["agent", "gemini"], ["agent", "opencode"], // ['agent', null], ] as const)("should accept %s for %s", (prop, value) => { const input = { prompt: "test", [prop]: value }; expect(() => Inputs.assert(input)).not.toThrow(); }); it.each([["web"], ["search"], ["write"], ["bash"], ["effort"], ["agent"]] as const)( "should reject invalid %s values", (prop) => { const input = { prompt: "test", [prop]: "invalid" as any }; expect(() => Inputs.assert(input)).toThrow(); } ); });