test: share media completion fixture

This commit is contained in:
Peter Steinberger
2026-04-19 02:58:01 +01:00
parent 3d3d585165
commit e28984c74a
3 changed files with 65 additions and 80 deletions

View File

@@ -71,6 +71,43 @@ type FallbackAnnouncementExpectation = {
mediaUrls: string[];
};
type CompletionFixtureParams = {
directSend?: boolean;
mediaUrls?: string[];
result: string;
runId: string;
taskLabel: string;
};
export function createMediaCompletionFixture({
directSend,
mediaUrls,
result,
runId,
taskLabel,
}: CompletionFixtureParams) {
return {
...(directSend
? { config: { tools: { media: { asyncCompletion: { directSend: true } } } } }
: {}),
handle: {
taskId: "task-123",
runId,
requesterSessionKey: "agent:main:discord:direct:123",
requesterOrigin: {
channel: "discord",
to: "channel:1",
threadId: "thread-1",
},
taskLabel,
},
status: "ok" as const,
statusLabel: "completed successfully",
result,
...(mediaUrls ? { mediaUrls } : {}),
};
}
export function resetMediaBackgroundMocks({
taskExecutorMocks,
taskDeliveryRuntimeMocks,

View File

@@ -2,6 +2,7 @@ import { beforeEach, describe, expect, it, vi } from "vitest";
import { MUSIC_GENERATION_TASK_KIND } from "../music-generation-task-status.js";
import {
announceDeliveryMocks,
createMediaCompletionFixture,
expectDirectMediaSend,
expectFallbackMediaAnnouncement,
expectQueuedTaskRun,
@@ -83,21 +84,12 @@ describe("music generate background helpers", () => {
});
await wakeMusicGenerationTaskCompletion({
handle: {
taskId: "task-123",
...createMediaCompletionFixture({
runId: "tool:music_generate:abc",
requesterSessionKey: "agent:main:discord:direct:123",
requesterOrigin: {
channel: "discord",
to: "channel:1",
threadId: "thread-1",
},
taskLabel: "night-drive synthwave",
},
status: "ok",
statusLabel: "completed successfully",
result: "Generated 1 track.\nMEDIA:/tmp/generated-night-drive.mp3",
mediaUrls: ["/tmp/generated-night-drive.mp3"],
result: "Generated 1 track.\nMEDIA:/tmp/generated-night-drive.mp3",
mediaUrls: ["/tmp/generated-night-drive.mp3"],
}),
});
expect(taskDeliveryRuntimeMocks.sendMessage).not.toHaveBeenCalled();
@@ -111,21 +103,12 @@ describe("music generate background helpers", () => {
});
await wakeMusicGenerationTaskCompletion({
config: { tools: { media: { asyncCompletion: { directSend: true } } } },
handle: {
taskId: "task-123",
...createMediaCompletionFixture({
directSend: true,
runId: "tool:music_generate:abc",
requesterSessionKey: "agent:main:discord:direct:123",
requesterOrigin: {
channel: "discord",
to: "channel:1",
threadId: "thread-1",
},
taskLabel: "night-drive synthwave",
},
status: "ok",
statusLabel: "completed successfully",
result: "Generated 1 track.\nMEDIA:/tmp/generated-night-drive.mp3",
result: "Generated 1 track.\nMEDIA:/tmp/generated-night-drive.mp3",
}),
});
expectDirectMediaSend({
@@ -147,22 +130,13 @@ describe("music generate background helpers", () => {
});
await wakeMusicGenerationTaskCompletion({
config: { tools: { media: { asyncCompletion: { directSend: true } } } },
handle: {
taskId: "task-123",
...createMediaCompletionFixture({
directSend: true,
runId: "tool:music_generate:abc",
requesterSessionKey: "agent:main:discord:direct:123",
requesterOrigin: {
channel: "discord",
to: "channel:1",
threadId: "thread-1",
},
taskLabel: "night-drive synthwave",
},
status: "ok",
statusLabel: "completed successfully",
result: "Generated 1 track.\nMEDIA:/tmp/generated-night-drive.mp3",
mediaUrls: ["/tmp/generated-night-drive.mp3"],
result: "Generated 1 track.\nMEDIA:/tmp/generated-night-drive.mp3",
mediaUrls: ["/tmp/generated-night-drive.mp3"],
}),
});
expectFallbackMediaAnnouncement({

View File

@@ -2,6 +2,7 @@ import { beforeEach, describe, expect, it, vi } from "vitest";
import { VIDEO_GENERATION_TASK_KIND } from "../video-generation-task-status.js";
import {
announceDeliveryMocks,
createMediaCompletionFixture,
expectDirectMediaSend,
expectFallbackMediaAnnouncement,
expectQueuedTaskRun,
@@ -83,21 +84,12 @@ describe("video generate background helpers", () => {
});
await wakeVideoGenerationTaskCompletion({
handle: {
taskId: "task-123",
...createMediaCompletionFixture({
runId: "tool:video_generate:abc",
requesterSessionKey: "agent:main:discord:direct:123",
requesterOrigin: {
channel: "discord",
to: "channel:1",
threadId: "thread-1",
},
taskLabel: "friendly lobster surfing",
},
status: "ok",
statusLabel: "completed successfully",
result: "Generated 1 video.\nMEDIA:/tmp/generated-lobster.mp4",
mediaUrls: ["/tmp/generated-lobster.mp4"],
result: "Generated 1 video.\nMEDIA:/tmp/generated-lobster.mp4",
mediaUrls: ["/tmp/generated-lobster.mp4"],
}),
});
expect(taskDeliveryRuntimeMocks.sendMessage).not.toHaveBeenCalled();
@@ -111,21 +103,12 @@ describe("video generate background helpers", () => {
});
await wakeVideoGenerationTaskCompletion({
config: { tools: { media: { asyncCompletion: { directSend: true } } } },
handle: {
taskId: "task-123",
...createMediaCompletionFixture({
directSend: true,
runId: "tool:video_generate:abc",
requesterSessionKey: "agent:main:discord:direct:123",
requesterOrigin: {
channel: "discord",
to: "channel:1",
threadId: "thread-1",
},
taskLabel: "friendly lobster surfing",
},
status: "ok",
statusLabel: "completed successfully",
result: "Generated 1 video.\nMEDIA:/tmp/generated-lobster.mp4",
result: "Generated 1 video.\nMEDIA:/tmp/generated-lobster.mp4",
}),
});
expectDirectMediaSend({
@@ -147,22 +130,13 @@ describe("video generate background helpers", () => {
});
await wakeVideoGenerationTaskCompletion({
config: { tools: { media: { asyncCompletion: { directSend: true } } } },
handle: {
taskId: "task-123",
...createMediaCompletionFixture({
directSend: true,
runId: "tool:video_generate:abc",
requesterSessionKey: "agent:main:discord:direct:123",
requesterOrigin: {
channel: "discord",
to: "channel:1",
threadId: "thread-1",
},
taskLabel: "friendly lobster surfing",
},
status: "ok",
statusLabel: "completed successfully",
result: "Generated 1 video.\nMEDIA:/tmp/generated-lobster.mp4",
mediaUrls: ["/tmp/generated-lobster.mp4"],
result: "Generated 1 video.\nMEDIA:/tmp/generated-lobster.mp4",
mediaUrls: ["/tmp/generated-lobster.mp4"],
}),
});
expectFallbackMediaAnnouncement({