17 lines
1015 B
TypeScript
17 lines
1015 B
TypeScript
import { expect, test } from "bun:test";
|
|
import { renderAlbumReadyEmail, emailBrowserPreview } from "./index";
|
|
|
|
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" });
|
|
expect(message.html).not.toContain("<script>");
|
|
expect(message.html).toContain("<script>");
|
|
expect(message.html).toContain('role="presentation"');
|
|
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(Buffer.from(message.attachments[0]!.content, "base64").subarray(1, 4).toString()).toBe("PNG");
|
|
expect(emailBrowserPreview(message.html)).toContain("data:image/png;base64,");
|
|
});
|