Initial 智念AIGC platform
This commit is contained in:
68
tests/evolink-image-client.test.ts
Normal file
68
tests/evolink-image-client.test.ts
Normal file
@@ -0,0 +1,68 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
import {
|
||||
buildEvolinkImagePayload,
|
||||
extractEvolinkResultUrls,
|
||||
getEvolinkTaskId,
|
||||
mapEvolinkStatus
|
||||
} from "@/lib/evolink/image-client";
|
||||
|
||||
describe("EvoLink image client helpers", () => {
|
||||
it("builds payloads for GPT Image 2 generation", () => {
|
||||
const payload = buildEvolinkImagePayload("image.generate", {
|
||||
prompt: "商品海报",
|
||||
imageUrls: ["https://example.com/ref.png"],
|
||||
width: 2048,
|
||||
height: 2048
|
||||
}, {
|
||||
baseUrl: "https://api.evolink.ai",
|
||||
model: "gpt-image-2",
|
||||
quality: "medium",
|
||||
resolution: "2K"
|
||||
});
|
||||
|
||||
expect(payload).toMatchObject({
|
||||
model: "gpt-image-2",
|
||||
prompt: "商品海报",
|
||||
image_urls: ["https://example.com/ref.png"],
|
||||
size: "1:1",
|
||||
quality: "medium",
|
||||
resolution: "2K",
|
||||
n: 1
|
||||
});
|
||||
});
|
||||
|
||||
it("maps inpainting original and mask URLs", () => {
|
||||
const payload = buildEvolinkImagePayload("image.inpaint", {
|
||||
prompt: "移除背景杂物",
|
||||
imageUrls: ["https://example.com/original.png", "https://example.com/mask.png"]
|
||||
}, {
|
||||
baseUrl: "https://api.evolink.ai",
|
||||
model: "gpt-image-2"
|
||||
});
|
||||
|
||||
expect(payload).toMatchObject({
|
||||
image_urls: ["https://example.com/original.png"],
|
||||
mask_url: "https://example.com/mask.png"
|
||||
});
|
||||
});
|
||||
|
||||
it("normalizes task ids, statuses, and result URLs", () => {
|
||||
const response = {
|
||||
data: {
|
||||
task_id: "task-1",
|
||||
status: "completed",
|
||||
results: [
|
||||
"https://example.com/a.png",
|
||||
{ image_url: "https://example.com/b.png" }
|
||||
]
|
||||
}
|
||||
};
|
||||
|
||||
expect(getEvolinkTaskId(response)).toBe("task-1");
|
||||
expect(mapEvolinkStatus(response)).toBe("succeeded");
|
||||
expect(extractEvolinkResultUrls(response)).toEqual([
|
||||
"https://example.com/a.png",
|
||||
"https://example.com/b.png"
|
||||
]);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user