mirror of
https://github.com/moltbot/moltbot.git
synced 2026-04-20 21:23:23 +00:00
fix(test): narrow live video asset buffers
This commit is contained in:
@@ -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}`,
|
||||
|
||||
@@ -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,
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user