Skip to content

Commit 571483a

Browse files
committed
fix(test): narrow live video asset buffers
1 parent 25c4723 commit 571483a

2 files changed

Lines changed: 31 additions & 13 deletions

File tree

extensions/video-generation-providers.live.test.ts

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,18 @@ function maybeLoadShellEnvForVideoProviders(providerIds: string[]): void {
149149
});
150150
}
151151

152+
function expectBufferedVideo(
153+
video: { buffer?: Buffer; mimeType: string; fileName?: string } | undefined,
154+
): { buffer: Buffer; mimeType: string; fileName?: string } {
155+
expect(video).toBeDefined();
156+
expect(video?.mimeType.startsWith("video/")).toBe(true);
157+
if (!video?.buffer) {
158+
throw new Error("expected generated video buffer");
159+
}
160+
expect(video.buffer.byteLength).toBeGreaterThan(1024);
161+
return video;
162+
}
163+
152164
describeLive("video generation provider live", () => {
153165
it(
154166
"covers declared video-generation modes with shell/profile auth",
@@ -238,9 +250,7 @@ describeLive("video generation provider live", () => {
238250
});
239251

240252
expect(result.videos.length).toBeGreaterThan(0);
241-
expect(result.videos[0]?.mimeType.startsWith("video/")).toBe(true);
242-
expect(result.videos[0]?.buffer.byteLength).toBeGreaterThan(1024);
243-
generatedVideo = result.videos[0] ?? null;
253+
generatedVideo = expectBufferedVideo(result.videos[0]);
244254
attempted.push(`${testCase.providerId}:generate:${providerModel} (${authLabel})`);
245255
console.error(
246256
`${logPrefix} mode=generate done ms=${Date.now() - startedAt} videos=${result.videos.length}`,
@@ -298,8 +308,7 @@ describeLive("video generation provider live", () => {
298308
});
299309

300310
expect(result.videos.length).toBeGreaterThan(0);
301-
expect(result.videos[0]?.mimeType.startsWith("video/")).toBe(true);
302-
expect(result.videos[0]?.buffer.byteLength).toBeGreaterThan(1024);
311+
expectBufferedVideo(result.videos[0]);
303312
attempted.push(`${testCase.providerId}:imageToVideo:${providerModel} (${authLabel})`);
304313
console.error(
305314
`${logPrefix} mode=imageToVideo done ms=${Date.now() - startedAt} videos=${result.videos.length}`,
@@ -348,8 +357,7 @@ describeLive("video generation provider live", () => {
348357
});
349358

350359
expect(result.videos.length).toBeGreaterThan(0);
351-
expect(result.videos[0]?.mimeType.startsWith("video/")).toBe(true);
352-
expect(result.videos[0]?.buffer.byteLength).toBeGreaterThan(1024);
360+
expectBufferedVideo(result.videos[0]);
353361
attempted.push(`${testCase.providerId}:videoToVideo:${providerModel} (${authLabel})`);
354362
console.error(
355363
`${logPrefix} mode=videoToVideo done ms=${Date.now() - startedAt} videos=${result.videos.length}`,

extensions/vydra/vydra.live.test.ts

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,19 @@ const registerVydraPlugin = () =>
2424
name: "Vydra Provider",
2525
});
2626

27+
function expectBufferedAsset(
28+
asset: { buffer?: Buffer; mimeType: string } | undefined,
29+
kind: "image" | "video",
30+
minBytes: number,
31+
): void {
32+
expect(asset).toBeDefined();
33+
expect(asset?.mimeType.startsWith(`${kind}/`)).toBe(true);
34+
if (!asset?.buffer) {
35+
throw new Error(`expected generated ${kind} buffer`);
36+
}
37+
expect(asset.buffer.byteLength).toBeGreaterThan(minBytes);
38+
}
39+
2740
describe.skipIf(!LIVE || !VYDRA_API_KEY)("vydra live", () => {
2841
it("generates an image through the registered provider", async () => {
2942
const { imageProviders } = await registerVydraPlugin();
@@ -38,8 +51,7 @@ describe.skipIf(!LIVE || !VYDRA_API_KEY)("vydra live", () => {
3851
});
3952

4053
expect(result.images.length).toBeGreaterThan(0);
41-
expect(result.images[0]?.mimeType.startsWith("image/")).toBe(true);
42-
expect(result.images[0]?.buffer.byteLength).toBeGreaterThan(512);
54+
expectBufferedAsset(result.images[0], "image", 512);
4355
}, 60_000);
4456

4557
it("synthesizes speech through the registered provider", async () => {
@@ -78,8 +90,7 @@ describe.skipIf(!LIVE || !VYDRA_API_KEY)("vydra live", () => {
7890
});
7991

8092
expect(result.videos.length).toBeGreaterThan(0);
81-
expect(result.videos[0]?.mimeType.startsWith("video/")).toBe(true);
82-
expect(result.videos[0]?.buffer.byteLength).toBeGreaterThan(1024);
93+
expectBufferedAsset(result.videos[0], "video", 1024);
8394
},
8495
8 * 60_000,
8596
);
@@ -101,8 +112,7 @@ describe.skipIf(!LIVE || !VYDRA_API_KEY)("vydra live", () => {
101112
});
102113

103114
expect(result.videos.length).toBeGreaterThan(0);
104-
expect(result.videos[0]?.mimeType.startsWith("video/")).toBe(true);
105-
expect(result.videos[0]?.buffer.byteLength).toBeGreaterThan(1024);
115+
expectBufferedAsset(result.videos[0], "video", 1024);
106116
},
107117
15 * 60_000,
108118
);

0 commit comments

Comments
 (0)