Files
image-prompt-studio/tests/request-schema.test.ts
2026-04-25 11:26:33 +08:00

61 lines
1.3 KiB
TypeScript

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 张图片/,
);
});