diff --git a/src/agents/tools/media-generate-background.test-support.ts b/src/agents/tools/media-generate-background.test-support.ts index e8664b9014e..1b4ee26fb61 100644 --- a/src/agents/tools/media-generate-background.test-support.ts +++ b/src/agents/tools/media-generate-background.test-support.ts @@ -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, diff --git a/src/agents/tools/music-generate-background.test.ts b/src/agents/tools/music-generate-background.test.ts index 3d9d9958675..b9a24605970 100644 --- a/src/agents/tools/music-generate-background.test.ts +++ b/src/agents/tools/music-generate-background.test.ts @@ -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({ diff --git a/src/agents/tools/video-generate-background.test.ts b/src/agents/tools/video-generate-background.test.ts index ae23883673d..d02011d0f1f 100644 --- a/src/agents/tools/video-generate-background.test.ts +++ b/src/agents/tools/video-generate-background.test.ts @@ -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({