
























@@ -31,6 +31,31 @@ vi.mock("openclaw/plugin-sdk/provider-http", () => ({
3131resolveProviderHttpRequestConfig: resolveProviderHttpRequestConfigMock,
3232}));
333334+function requireOpenRouterPostBody(): {
35+messages?: Array<{ content?: unknown }>;
36+} {
37+const request = postJsonRequestMock.mock.calls[0]?.[0];
38+expect(request).toBeDefined();
39+if (!request) {
40+throw new Error("expected OpenRouter image generation request");
41+}
42+return request.body as { messages?: Array<{ content?: unknown }> };
43+}
44+45+function requireGeneratedImage(
46+result: Awaited<
47+ReturnType<ReturnType<typeof buildOpenRouterImageGenerationProvider>["generateImage"]>
48+>,
49+index: number,
50+) {
51+const image = result.images[index];
52+expect(image).toBeDefined();
53+if (!image) {
54+throw new Error(`expected OpenRouter generated image at index ${index}`);
55+}
56+return image;
57+}
58+3459describe("openrouter image generation provider", () => {
3560afterEach(() => {
3661assertOkOrThrowHttpErrorMock.mockClear();
@@ -125,8 +150,9 @@ describe("openrouter image generation provider", () => {
125150}),
126151}),
127152);
128-expect(result.images[0]?.buffer.toString()).toBe("png-one");
129-expect(result.images[0]?.mimeType).toBe("image/png");
153+const image = requireGeneratedImage(result, 0);
154+expect(image.buffer.toString()).toBe("png-one");
155+expect(image.mimeType).toBe("image/png");
130156expect(release).toHaveBeenCalledOnce();
131157});
132158@@ -162,9 +188,7 @@ describe("openrouter image generation provider", () => {
162188cfg: {} as never,
163189});
164190165-const body = postJsonRequestMock.mock.calls[0]?.[0].body as {
166-messages?: Array<{ content?: unknown }>;
167-};
191+const body = requireOpenRouterPostBody();
168192expect(body.messages?.[0]?.content).toEqual([
169193{ type: "text", text: "turn this into watercolor" },
170194{
@@ -174,8 +198,9 @@ describe("openrouter image generation provider", () => {
174198},
175199},
176200]);
177-expect(result.images[0]?.buffer.toString()).toBe("webp-one");
178-expect(result.images[0]?.mimeType).toBe("image/webp");
201+const image = requireGeneratedImage(result, 0);
202+expect(image.buffer.toString()).toBe("webp-one");
203+expect(image.mimeType).toBe("image/webp");
179204});
180205181206it("extracts image fallbacks from string content and raw b64 parts", () => {
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。