feat(platform): 创作能力整合 - 新增 Gemini Images 图片请求协议

This commit is contained in:
ddCat
2026-08-18 21:42:22 +08:00
parent a23b4dda93
commit 778551127c
17 changed files with 489 additions and 74 deletions

View File

@@ -0,0 +1,22 @@
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"] });
});
});