mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-06 08:20:43 +00:00
test: share media completion fixture
This commit is contained in:
@@ -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,
|
||||
|
||||
@@ -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({
|
||||
|
||||
@@ -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({
|
||||
|
||||
Reference in New Issue
Block a user