feat(platform): 创作能力整合 - 新增 Gemini Images 图片请求协议
This commit is contained in:
22
web/test/gemini-image.test.ts
Normal file
22
web/test/gemini-image.test.ts
Normal 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"] });
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user