import { describe, expect, it } from "vitest"; import { buildJimengPayload, buildJimengQueryPayload, getJimengCapabilities, getVisibleImageCapabilities } from "@/lib/jimeng/capabilities"; describe("Jimeng capability matrix", () => { it("only exposes image generation", () => { const capabilities = getJimengCapabilities(); expect(Object.keys(capabilities)).toEqual(["image.generate"]); expect(getVisibleImageCapabilities().map((capability) => capability.id)).toEqual(["image.generate"]); }); it("builds payloads for image generation 4.6", () => { const payload = buildJimengPayload("image.generate", "jimeng_seedream46_cvtob", { prompt: "商品海报", imageUrls: ["https://example.com/ref.png"], width: 2048, height: 2048, force_single: true, scale: 50 }); expect(payload).toMatchObject({ req_key: "jimeng_seedream46_cvtob", prompt: "商品海报", image_urls: ["https://example.com/ref.png"], width: 2048, height: 2048, force_single: true, scale: 50 }); }); it("uses return_url query payload for polling", () => { const payload = buildJimengQueryPayload("jimeng_i2i_seed3_tilesr_cvtob", "task-1"); expect(payload.req_key).toBe("jimeng_i2i_seed3_tilesr_cvtob"); expect(payload.task_id).toBe("task-1"); expect(String(payload.req_json)).toContain('"return_url":true'); }); });