Skip to content

Commit fcc86f0

Browse files
committed
fix(media): preserve outbound attachment filenames
1 parent f350bb4 commit fcc86f0

2 files changed

Lines changed: 40 additions & 0 deletions

File tree

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
import { describe, expect, it, vi } from "vitest";
2+
3+
const loadWebMedia = vi.hoisted(() => vi.fn());
4+
const saveMediaBuffer = vi.hoisted(() => vi.fn());
5+
6+
vi.mock("./web-media.js", () => ({
7+
loadWebMedia,
8+
}));
9+
10+
vi.mock("./store.js", () => ({
11+
saveMediaBuffer,
12+
}));
13+
14+
const { resolveOutboundAttachmentFromUrl } = await import("./outbound-attachment.js");
15+
16+
describe("resolveOutboundAttachmentFromUrl", () => {
17+
it("preserves the loaded file name when staging outbound media", async () => {
18+
const buffer = Buffer.from("pdf");
19+
loadWebMedia.mockResolvedValueOnce({
20+
buffer,
21+
contentType: "application/pdf",
22+
fileName: "report.pdf",
23+
});
24+
saveMediaBuffer.mockResolvedValueOnce({
25+
path: "/tmp/media/outbound/report---uuid.pdf",
26+
contentType: "application/pdf",
27+
});
28+
29+
await resolveOutboundAttachmentFromUrl("./report.pdf", 1024);
30+
31+
expect(saveMediaBuffer).toHaveBeenCalledWith(
32+
buffer,
33+
"application/pdf",
34+
"outbound",
35+
1024,
36+
"report.pdf",
37+
);
38+
});
39+
});

src/media/outbound-attachment.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ export async function resolveOutboundAttachmentFromUrl(
2525
media.contentType ?? undefined,
2626
"outbound",
2727
maxBytes,
28+
media.fileName,
2829
);
2930
return { path: saved.path, contentType: saved.contentType };
3031
}

0 commit comments

Comments
 (0)