Harden bulk retries, parallelize guest uploads, and move guest map below gallery
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
import { expect, test } from "bun:test";
|
||||
import { renderAlbumReadyEmail, emailBrowserPreview } from "./index";
|
||||
import { EMAIL_LOGO_CID } from "./logo";
|
||||
|
||||
test("gallery email escapes content and includes a plain-text alternative", () => {
|
||||
const message = renderAlbumReadyEmail({ to: "test@example.test", eventTitle: '<script>alert("x")</script>', galleryUrl: "https://manyangles.test/e/demo" });
|
||||
@@ -9,8 +10,19 @@ test("gallery email escapes content and includes a plain-text alternative", () =
|
||||
expect(message.html).toContain("Manyangles");
|
||||
expect(message.text).toContain("https://manyangles.test/e/demo");
|
||||
expect(message.html).toContain("Arial,Helvetica,sans-serif");
|
||||
expect(message.html).toContain("cid:manyangles-mark-v1");
|
||||
expect(message.attachments[0]?.contentId).toBe("manyangles-mark-v1");
|
||||
expect(message.html).toContain(`cid:${EMAIL_LOGO_CID}`);
|
||||
expect(message.attachments[0]?.contentId).toBe(EMAIL_LOGO_CID);
|
||||
expect(Buffer.from(message.attachments[0]!.content, "base64").subarray(1, 4).toString()).toBe("PNG");
|
||||
expect(emailBrowserPreview(message.html)).toContain("data:image/png;base64,");
|
||||
});
|
||||
|
||||
test("logo stays inline in email and becomes a data URI only in browser previews", () => {
|
||||
const message = renderAlbumReadyEmail({ to: "test@example.test", eventTitle: "Wedding", galleryUrl: "https://manyangles.test/e/demo" });
|
||||
const preview = emailBrowserPreview(message.html);
|
||||
expect(message.attachments).toHaveLength(1);
|
||||
expect(message.html).not.toContain("data:image");
|
||||
expect(preview).not.toContain(`cid:${EMAIL_LOGO_CID}`);
|
||||
expect(preview).toContain(message.attachments[0]!.content);
|
||||
expect(emailBrowserPreview(preview)).toBe(preview);
|
||||
expect(message.html).toContain(`cid:${EMAIL_LOGO_CID}`);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user