fix(test): narrow live video asset buffers

This commit is contained in:
Vincent Koc
2026-04-11 11:19:46 +01:00
parent 25c47231bb
commit 571483a13d
2 changed files with 31 additions and 13 deletions

View File

@@ -149,6 +149,18 @@ function maybeLoadShellEnvForVideoProviders(providerIds: string[]): void {
});
}
function expectBufferedVideo(
video: { buffer?: Buffer; mimeType: string; fileName?: string } | undefined,
): { buffer: Buffer; mimeType: string; fileName?: string } {
expect(video).toBeDefined();
expect(video?.mimeType.startsWith("video/")).toBe(true);
if (!video?.buffer) {
throw new Error("expected generated video buffer");
}
expect(video.buffer.byteLength).toBeGreaterThan(1024);
return video;
}
describeLive("video generation provider live", () => {
it(
"covers declared video-generation modes with shell/profile auth",
@@ -238,9 +250,7 @@ describeLive("video generation provider live", () => {
});
expect(result.videos.length).toBeGreaterThan(0);
expect(result.videos[0]?.mimeType.startsWith("video/")).toBe(true);
expect(result.videos[0]?.buffer.byteLength).toBeGreaterThan(1024);
generatedVideo = result.videos[0] ?? null;
generatedVideo = expectBufferedVideo(result.videos[0]);
attempted.push(`${testCase.providerId}:generate:${providerModel} (${authLabel})`);
console.error(
`${logPrefix} mode=generate done ms=${Date.now() - startedAt} videos=${result.videos.length}`,
@@ -298,8 +308,7 @@ describeLive("video generation provider live", () => {
});
expect(result.videos.length).toBeGreaterThan(0);
expect(result.videos[0]?.mimeType.startsWith("video/")).toBe(true);
expect(result.videos[0]?.buffer.byteLength).toBeGreaterThan(1024);
expectBufferedVideo(result.videos[0]);
attempted.push(`${testCase.providerId}:imageToVideo:${providerModel} (${authLabel})`);
console.error(
`${logPrefix} mode=imageToVideo done ms=${Date.now() - startedAt} videos=${result.videos.length}`,
@@ -348,8 +357,7 @@ describeLive("video generation provider live", () => {
});
expect(result.videos.length).toBeGreaterThan(0);
expect(result.videos[0]?.mimeType.startsWith("video/")).toBe(true);
expect(result.videos[0]?.buffer.byteLength).toBeGreaterThan(1024);
expectBufferedVideo(result.videos[0]);
attempted.push(`${testCase.providerId}:videoToVideo:${providerModel} (${authLabel})`);
console.error(
`${logPrefix} mode=videoToVideo done ms=${Date.now() - startedAt} videos=${result.videos.length}`,

View File

@@ -24,6 +24,19 @@ const registerVydraPlugin = () =>
name: "Vydra Provider",
});
function expectBufferedAsset(
asset: { buffer?: Buffer; mimeType: string } | undefined,
kind: "image" | "video",
minBytes: number,
): void {
expect(asset).toBeDefined();
expect(asset?.mimeType.startsWith(`${kind}/`)).toBe(true);
if (!asset?.buffer) {
throw new Error(`expected generated ${kind} buffer`);
}
expect(asset.buffer.byteLength).toBeGreaterThan(minBytes);
}
describe.skipIf(!LIVE || !VYDRA_API_KEY)("vydra live", () => {
it("generates an image through the registered provider", async () => {
const { imageProviders } = await registerVydraPlugin();
@@ -38,8 +51,7 @@ describe.skipIf(!LIVE || !VYDRA_API_KEY)("vydra live", () => {
});
expect(result.images.length).toBeGreaterThan(0);
expect(result.images[0]?.mimeType.startsWith("image/")).toBe(true);
expect(result.images[0]?.buffer.byteLength).toBeGreaterThan(512);
expectBufferedAsset(result.images[0], "image", 512);
}, 60_000);
it("synthesizes speech through the registered provider", async () => {
@@ -78,8 +90,7 @@ describe.skipIf(!LIVE || !VYDRA_API_KEY)("vydra live", () => {
});
expect(result.videos.length).toBeGreaterThan(0);
expect(result.videos[0]?.mimeType.startsWith("video/")).toBe(true);
expect(result.videos[0]?.buffer.byteLength).toBeGreaterThan(1024);
expectBufferedAsset(result.videos[0], "video", 1024);
},
8 * 60_000,
);
@@ -101,8 +112,7 @@ describe.skipIf(!LIVE || !VYDRA_API_KEY)("vydra live", () => {
});
expect(result.videos.length).toBeGreaterThan(0);
expect(result.videos[0]?.mimeType.startsWith("video/")).toBe(true);
expect(result.videos[0]?.buffer.byteLength).toBeGreaterThan(1024);
expectBufferedAsset(result.videos[0], "video", 1024);
},
15 * 60_000,
);