diff --git a/src/media/outbound-attachment.test.ts b/src/media/outbound-attachment.test.ts new file mode 100644 index 00000000000..e5618469b82 --- /dev/null +++ b/src/media/outbound-attachment.test.ts @@ -0,0 +1,39 @@ +import { describe, expect, it, vi } from "vitest"; + +const loadWebMedia = vi.hoisted(() => vi.fn()); +const saveMediaBuffer = vi.hoisted(() => vi.fn()); + +vi.mock("./web-media.js", () => ({ + loadWebMedia, +})); + +vi.mock("./store.js", () => ({ + saveMediaBuffer, +})); + +const { resolveOutboundAttachmentFromUrl } = await import("./outbound-attachment.js"); + +describe("resolveOutboundAttachmentFromUrl", () => { + it("preserves the loaded file name when staging outbound media", async () => { + const buffer = Buffer.from("pdf"); + loadWebMedia.mockResolvedValueOnce({ + buffer, + contentType: "application/pdf", + fileName: "report.pdf", + }); + saveMediaBuffer.mockResolvedValueOnce({ + path: "/tmp/media/outbound/report---uuid.pdf", + contentType: "application/pdf", + }); + + await resolveOutboundAttachmentFromUrl("./report.pdf", 1024); + + expect(saveMediaBuffer).toHaveBeenCalledWith( + buffer, + "application/pdf", + "outbound", + 1024, + "report.pdf", + ); + }); +}); diff --git a/src/media/outbound-attachment.ts b/src/media/outbound-attachment.ts index ac303b07d74..fa9a93a1b66 100644 --- a/src/media/outbound-attachment.ts +++ b/src/media/outbound-attachment.ts @@ -25,6 +25,7 @@ export async function resolveOutboundAttachmentFromUrl( media.contentType ?? undefined, "outbound", maxBytes, + media.fileName, ); return { path: saved.path, contentType: saved.contentType }; }