import test from "node:test"; import assert from "node:assert/strict"; import { parseGenerateRequest } from "../lib/request-schema"; test("parseGenerateRequest returns normalized payload", () => { const payload = parseGenerateRequest( { prompt: "A premium product poster", size: "1536x1024", quality: "high", outputFormat: "png", background: "auto", count: 2, moderation: "auto", user: "browser-demo-session-id", }, "gpt-image-2", ); assert.deepEqual(payload, { model: "gpt-image-2", prompt: "A premium product poster", size: "1536x1024", quality: "high", n: 2, moderation: "auto", output_format: "png", background: "auto", user: "browser-demo-session-id", }); }); test("parseGenerateRequest rejects transparent jpeg output", () => { assert.throws( () => parseGenerateRequest( { prompt: "A cutout product shot", outputFormat: "jpeg", background: "transparent", }, "gpt-image-2", ), /JPEG 不支持透明背景/, ); }); test("parseGenerateRequest rejects oversized count", () => { assert.throws( () => parseGenerateRequest( { prompt: "too many", count: 5, }, "gpt-image-2", ), /最多生成 4 张图片/, ); });