23 lines
1.1 KiB
TypeScript
23 lines
1.1 KiB
TypeScript
import { describe, expect, test } from "bun:test";
|
||
|
||
import { buildGeminiImageGenerationConfig, parseGeminiImageDataUrl } from "../src/lib/gemini-image";
|
||
|
||
describe("Gemini Images request helpers", () => {
|
||
test("拆分参考图 data URL 时使用真实 MIME 和裸 base64", () => {
|
||
expect(parseGeminiImageDataUrl("data:image/jpeg;base64,aGVsbG8=")).toEqual({ mimeType: "image/jpeg", data: "aGVsbG8=" });
|
||
});
|
||
|
||
test("拒绝空图和非图片 data URL,避免把错误参考图发给 Gemini", () => {
|
||
expect(() => parseGeminiImageDataUrl("")).toThrow("未得到有效的 image data URL");
|
||
expect(() => parseGeminiImageDataUrl("data:text/plain;base64,aGVsbG8=")).toThrow("MIME 类型无效");
|
||
});
|
||
|
||
test("把统一图片选项映射到 Gemini imageConfig", () => {
|
||
expect(buildGeminiImageGenerationConfig("16:9", "high")).toEqual({
|
||
responseModalities: ["TEXT", "IMAGE"],
|
||
imageConfig: { aspectRatio: "16:9", imageSize: "4K" },
|
||
});
|
||
expect(buildGeminiImageGenerationConfig("auto", "auto")).toEqual({ responseModalities: ["TEXT", "IMAGE"] });
|
||
});
|
||
});
|