diff --git a/src/auto-reply/reply/reply-delivery.test.ts b/src/auto-reply/reply/reply-delivery.test.ts index 6978292e4748..083b60a38d05 100644 --- a/src/auto-reply/reply/reply-delivery.test.ts +++ b/src/auto-reply/reply/reply-delivery.test.ts @@ -311,6 +311,18 @@ describe("createBlockReplyDeliveryHandler", () => { expect(normalized.payload.mediaUrls).toEqual(["./report.pdf"]); }); + it("keeps parsed media when an explicit media list is empty", () => { + const normalized = normalizeReplyPayloadDirectives({ + payload: { text: "MEDIA: ./report.pdf", mediaUrls: [] }, + trimLeadingWhitespace: true, + parseMode: "auto", + }); + + expect(normalized.payload.text).toBeUndefined(); + expect(normalized.payload.mediaUrl).toBe("./report.pdf"); + expect(normalized.payload.mediaUrls).toEqual([]); + }); + it("leaves media-looking text alone when media directive parsing is disabled", () => { const normalized = normalizeReplyPayloadDirectives({ payload: { text: "Result\nMEDIA: ./image.png" }, diff --git a/src/auto-reply/reply/reply-delivery.ts b/src/auto-reply/reply/reply-delivery.ts index 3c63ee62d820..18626e65d0fe 100644 --- a/src/auto-reply/reply/reply-delivery.ts +++ b/src/auto-reply/reply/reply-delivery.ts @@ -49,7 +49,7 @@ export function normalizeReplyPayloadDirectives(params: { } const mediaUrls = params.payload.mediaUrls ?? parsed?.mediaUrls; - const mediaUrl = params.payload.mediaUrl ?? mediaUrls?.[0]; + const mediaUrl = params.payload.mediaUrl ?? parsed?.mediaUrls?.[0] ?? mediaUrls?.[0]; const channelData = mergeReactionDirectiveChannelData( params.payload.channelData,