























@@ -29,6 +29,18 @@ function runGenerateVideo(params: GenerateVideoParams) {
2929return generateVideo(params, runtimeDeps);
3030}
313132+function requireAttempt(
33+result: Awaited<ReturnType<typeof runGenerateVideo>>,
34+index: number,
35+): NonNullable<(typeof result.attempts)[number]> {
36+const attempt = result.attempts[index];
37+expect(attempt).toBeDefined();
38+if (!attempt) {
39+throw new Error(`expected video generation attempt ${index}`);
40+}
41+return attempt;
42+}
43+3244function createProviderOptionsCaptureProvider(
3345capabilities: VideoGenerationProvider["capabilities"],
3446): { provider: VideoGenerationProvider; getSeenProviderOptions: () => unknown } {
@@ -330,8 +342,9 @@ describe("video-generation runtime", () => {
330342331343expect(result.provider).toBe("byteplus");
332344expect(result.attempts).toHaveLength(1);
333-expect(result.attempts[0]?.provider).toBe("openai");
334-expect(result.attempts[0]?.error).toMatch(/does not accept providerOptions/);
345+const attempt = requireAttempt(result, 0);
346+expect(attempt.provider).toBe("openai");
347+expect(attempt.error).toMatch(/does not accept providerOptions/);
335348});
336349337350it("skips providers that cannot satisfy reference audio inputs and falls back", async () => {
@@ -376,8 +389,9 @@ describe("video-generation runtime", () => {
376389377390expect(result.provider).toBe("byteplus");
378391expect(result.attempts).toHaveLength(1);
379-expect(result.attempts[0]?.provider).toBe("openai");
380-expect(result.attempts[0]?.error).toMatch(/does not support reference audio inputs/);
392+const attempt = requireAttempt(result, 0);
393+expect(attempt.provider).toBe("openai");
394+expect(attempt.error).toMatch(/does not support reference audio inputs/);
381395});
382396383397it("forwards mixed image, video, and audio references when explicitly supported", async () => {
@@ -498,8 +512,9 @@ describe("video-generation runtime", () => {
498512expect(result.provider).toBe("runway");
499513expect(seenDurationSeconds).toBe(6);
500514expect(result.attempts).toHaveLength(1);
501-expect(result.attempts[0]?.provider).toBe("openai");
502-expect(result.attempts[0]?.error).toMatch(/supports at most 4s per video, 6s requested/);
515+const attempt = requireAttempt(result, 0);
516+expect(attempt.provider).toBe("openai");
517+expect(attempt.error).toMatch(/supports at most 4s per video, 6s requested/);
503518});
504519505520it("fails when every candidate is skipped for exceeding hard duration caps", async () => {
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。