





















@@ -96,34 +96,56 @@ describe("deepinfra image generation provider", () => {
9696} as never,
9797});
989899-expect(resolveProviderHttpRequestConfigMock).toHaveBeenCalledWith(
100-expect.objectContaining({
101-provider: "deepinfra",
102-capability: "image",
103-baseUrl: "https://api.deepinfra.com/v1/openai",
104-}),
105-);
106-expect(postJsonRequestMock).toHaveBeenCalledWith(
107-expect.objectContaining({
108-url: "https://api.deepinfra.com/v1/openai/images/generations",
109-timeoutMs: 12_345,
110-body: {
111-model: "black-forest-labs/FLUX-1-schnell",
112-prompt: "red square",
113-n: 2,
114-size: "512x512",
115-response_format: "b64_json",
99+expect(resolveProviderHttpRequestConfigMock.mock.calls).toEqual([
100+[
101+{
102+baseUrl: "https://api.deepinfra.com/v1/openai",
103+defaultBaseUrl: "https://api.deepinfra.com/v1/openai",
104+allowPrivateNetwork: false,
105+request: undefined,
106+defaultHeaders: {
107+Authorization: "Bearer deepinfra-key",
108+},
109+provider: "deepinfra",
110+capability: "image",
111+transport: "http",
116112},
117-}),
118-);
113+],
114+]);
115+expect(postJsonRequestMock).toHaveBeenCalledOnce();
116+const [jsonRequest] = postJsonRequestMock.mock.calls[0] ?? [];
117+const jsonRequestHeaders = Reflect.get(jsonRequest ?? {}, "headers");
118+expect(jsonRequestHeaders).toBeInstanceOf(Headers);
119+expect(Object.fromEntries((jsonRequestHeaders as Headers).entries())).toEqual({
120+authorization: "Bearer deepinfra-key",
121+"content-type": "application/json",
122+});
123+expect(jsonRequest).toEqual({
124+url: "https://api.deepinfra.com/v1/openai/images/generations",
125+headers: jsonRequestHeaders,
126+timeoutMs: 12_345,
127+body: {
128+model: "black-forest-labs/FLUX-1-schnell",
129+prompt: "red square",
130+n: 2,
131+size: "512x512",
132+response_format: "b64_json",
133+},
134+fetchFn: fetch,
135+allowPrivateNetwork: false,
136+dispatcherPolicy: undefined,
137+});
119138expect(result.images).toHaveLength(1);
120139const [firstImage] = result.images;
121140if (!firstImage) {
122141throw new Error("Expected generated DeepInfra image");
123142}
124-expect(firstImage.mimeType).toBe("image/jpeg");
125-expect(firstImage.fileName).toBe("image-1.jpg");
126-expect(firstImage.revisedPrompt).toBe("red square");
143+expect(firstImage).toEqual({
144+buffer: jpegBytes,
145+mimeType: "image/jpeg",
146+fileName: "image-1.jpg",
147+revisedPrompt: "red square",
148+});
127149expect(release).toHaveBeenCalledOnce();
128150});
129151@@ -152,16 +174,26 @@ describe("deepinfra image generation provider", () => {
152174cfg: {} as never,
153175});
154176155-expect(postMultipartRequestMock).toHaveBeenCalledWith(
156-expect.objectContaining({
157-url: "https://api.deepinfra.com/v1/openai/images/edits",
158-}),
159-);
160-const firstCall = postMultipartRequestMock.mock.calls[0];
161-if (!firstCall) {
177+expect(postMultipartRequestMock).toHaveBeenCalledOnce();
178+const [multipartRequest] = postMultipartRequestMock.mock.calls[0] ?? [];
179+if (!multipartRequest) {
162180throw new Error("Expected DeepInfra multipart request");
163181}
164-const form = firstCall[0].body as FormData;
182+const multipartHeaders = Reflect.get(multipartRequest, "headers");
183+expect(multipartHeaders).toBeInstanceOf(Headers);
184+expect(Object.fromEntries((multipartHeaders as Headers).entries())).toEqual({
185+authorization: "Bearer deepinfra-key",
186+});
187+const form = Reflect.get(multipartRequest, "body") as FormData;
188+expect(multipartRequest).toEqual({
189+url: "https://api.deepinfra.com/v1/openai/images/edits",
190+headers: multipartHeaders,
191+body: form,
192+timeoutMs: undefined,
193+fetchFn: fetch,
194+allowPrivateNetwork: false,
195+dispatcherPolicy: undefined,
196+});
165197expect(form.get("model")).toBe("black-forest-labs/FLUX-1-schnell");
166198expect(form.get("prompt")).toBe("make it neon");
167199expect(form.get("response_format")).toBe("b64_json");
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。