mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-06 06:20:43 +00:00
test: cover generated media delivery evidence fallback
This commit is contained in:
@@ -554,7 +554,9 @@ export function extractMessagingToolSend(
|
||||
const provider = providerId ?? normalizeOptionalLowercaseString(providerHint) ?? "message";
|
||||
const to = normalizeTargetForProvider(provider, toRaw);
|
||||
const threadId = normalizeOptionalString(args.threadId);
|
||||
return to ? { tool: toolName, provider, accountId, to, threadId } : undefined;
|
||||
return to
|
||||
? { tool: toolName, provider, accountId, to, ...(threadId ? { threadId } : {}) }
|
||||
: undefined;
|
||||
}
|
||||
const providerId = normalizeChannelId(toolName);
|
||||
if (!providerId) {
|
||||
|
||||
@@ -1271,6 +1271,58 @@ describe("deliverSubagentAnnouncement completion delivery", () => {
|
||||
);
|
||||
});
|
||||
|
||||
it("does not fallback for generated media group completions when message tool evidence exists", async () => {
|
||||
const callGateway = createGatewayMock({
|
||||
result: {
|
||||
payloads: [],
|
||||
didSendViaMessagingTool: false,
|
||||
messagingToolSentTargets: [
|
||||
{
|
||||
tool: "message",
|
||||
provider: "slack",
|
||||
accountId: "acct-1",
|
||||
to: "channel:C123",
|
||||
text: "The track is ready.",
|
||||
mediaUrls: ["/tmp/generated-night-drive.mp3"],
|
||||
},
|
||||
],
|
||||
},
|
||||
});
|
||||
const sendMessage = createSendMessageMock();
|
||||
const result = await deliverSlackChannelAnnouncement({
|
||||
callGateway,
|
||||
sendMessage,
|
||||
sessionId: "requester-session-channel",
|
||||
isActive: false,
|
||||
expectsCompletionMessage: true,
|
||||
directIdempotencyKey: "announce-channel-media-message-tool-evidence",
|
||||
sourceTool: "music_generate",
|
||||
internalEvents: [
|
||||
{
|
||||
type: "task_completion",
|
||||
source: "music_generation",
|
||||
childSessionKey: "music_generate:task-123",
|
||||
childSessionId: "task-123",
|
||||
announceType: "music generation task",
|
||||
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"],
|
||||
replyInstruction: "Deliver the generated music through the message tool.",
|
||||
},
|
||||
],
|
||||
});
|
||||
|
||||
expect(result).toEqual(
|
||||
expect.objectContaining({
|
||||
delivered: true,
|
||||
path: "direct",
|
||||
}),
|
||||
);
|
||||
expect(sendMessage).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it("does not fallback while generated media announce-agent run is still pending", async () => {
|
||||
const callGateway = createGatewayMock({
|
||||
runId: "video_generate:task-123:ok",
|
||||
|
||||
Reference in New Issue
Block a user