


























@@ -34,12 +34,20 @@ function expectMinimaxFetchCall(index: number, url: string) {
3434}
3535const [actualUrl, init, timeoutMs, fetchFn] = call;
3636expect(actualUrl).toBe(url);
37-expect(init).toMatchObject({ method: "GET" });
37+expect(init?.method).toBe("GET");
3838expect(Number.isInteger(timeoutMs)).toBe(true);
3939expect(timeoutMs).toBeGreaterThan(0);
4040expect(fetchFn).toBe(fetch);
4141}
424243+function mockCallArg(mock: { mock: { calls: unknown[][] } }, index = 0): Record<string, unknown> {
44+const call = mock.mock.calls[index];
45+if (!call) {
46+throw new Error(`expected mock call ${index}`);
47+}
48+return call[0] as Record<string, unknown>;
49+}
50+4351describe("minimax video generation provider", () => {
4452it("declares explicit mode capabilities", () => {
4553const provider = buildMinimaxVideoGenerationProvider();
@@ -83,23 +91,15 @@ describe("minimax video generation provider", () => {
8391resolution: "720P",
8492});
859386-expect(postJsonRequestMock).toHaveBeenCalledWith(
87-expect.objectContaining({
88-url: "https://api.minimax.io/v1/video_generation",
89-body: expect.objectContaining({
90-duration: 6,
91-resolution: "768P",
92-}),
93-}),
94-);
94+const request = mockCallArg(postJsonRequestMock);
95+expect(request.url).toBe("https://api.minimax.io/v1/video_generation");
96+const body = request.body as Record<string, unknown>;
97+expect(body.duration).toBe(6);
98+expect(body.resolution).toBe("768P");
9599expect(result.videos).toHaveLength(1);
96100expect(result.videos[0]?.fileName).toBe("video-1.webm");
97-expect(result.metadata).toEqual(
98-expect.objectContaining({
99-taskId: "task-123",
100-fileId: "file-1",
101-}),
102-);
101+expect(result.metadata?.taskId).toBe("task-123");
102+expect(result.metadata?.fileId).toBe("file-1");
103103});
104104105105it("downloads via file_id when the status response omits video_url", async () => {
@@ -147,13 +147,9 @@ describe("minimax video generation provider", () => {
147147expectMinimaxFetchCall(1, "https://api.minimax.io/v1/files/retrieve?file_id=file-9");
148148expectMinimaxFetchCall(2, "https://example.com/download.mp4");
149149expect(result.videos).toHaveLength(1);
150-expect(result.metadata).toEqual(
151-expect.objectContaining({
152-taskId: "task-456",
153-fileId: "file-9",
154-videoUrl: undefined,
155-}),
156-);
150+expect(result.metadata?.taskId).toBe("task-456");
151+expect(result.metadata?.fileId).toBe("file-9");
152+expect(result.metadata?.videoUrl).toBeUndefined();
157153});
158154159155it("routes portal video generation through minimax-portal auth and HTTP config", async () => {
@@ -201,23 +197,14 @@ describe("minimax video generation provider", () => {
201197},
202198});
203199204-expect(resolveApiKeyForProviderMock).toHaveBeenCalledWith(
205-expect.objectContaining({
206-provider: "minimax-portal",
207-}),
208-);
209-expect(resolveProviderHttpRequestConfigMock).toHaveBeenCalledWith(
210-expect.objectContaining({
211-baseUrl: "https://api.minimaxi.com",
212-provider: "minimax-portal",
213-capability: "video",
214-transport: "http",
215-}),
216-);
217-expect(postJsonRequestMock).toHaveBeenCalledWith(
218-expect.objectContaining({
219-url: "https://api.minimaxi.com/v1/video_generation",
220-}),
200+expect(mockCallArg(resolveApiKeyForProviderMock).provider).toBe("minimax-portal");
201+const httpConfigParams = mockCallArg(resolveProviderHttpRequestConfigMock);
202+expect(httpConfigParams.baseUrl).toBe("https://api.minimaxi.com");
203+expect(httpConfigParams.provider).toBe("minimax-portal");
204+expect(httpConfigParams.capability).toBe("video");
205+expect(httpConfigParams.transport).toBe("http");
206+expect(mockCallArg(postJsonRequestMock).url).toBe(
207+"https://api.minimaxi.com/v1/video_generation",
221208);
222209expectMinimaxFetchCall(
2232100,
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。