feat(project): init
This commit is contained in:
60
tests/request-schema.test.ts
Normal file
60
tests/request-schema.test.ts
Normal file
@@ -0,0 +1,60 @@
|
||||
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 张图片/,
|
||||
);
|
||||
});
|
||||
Reference in New Issue
Block a user