File
Blob: tests/e2e/rendering.spec.ts
| 1 | import { expect, test } from "playwright/test"; |
| 2 | import { |
| 3 | addDomain, |
| 4 | createTemporaryInbox, |
| 5 | makeDomainName, |
| 6 | openEmail, |
| 7 | sendLocalEmail, |
| 8 | signInAdmin, |
| 9 | stubTurnstile, |
| 10 | } from "./helpers"; |
| 11 | |
| 12 | test("@smoke blocks remote email content by default and rewrites external links", async ({ page }) => { |
| 13 | const domain = makeDomainName("rendering"); |
| 14 | const subject = `Rendering smoke ${Date.now()}`; |
| 15 | |
| 16 | await stubTurnstile(page); |
| 17 | await signInAdmin(page); |
| 18 | await addDomain(page, domain); |
| 19 | |
| 20 | const address = await createTemporaryInbox(page, domain); |
| 21 | |
| 22 | await sendLocalEmail({ |
| 23 | to: address, |
| 24 | subject, |
| 25 | htmlRemoteTest: true, |
| 26 | }); |
| 27 | |
| 28 | await openEmail(page, subject); |
| 29 | |
| 30 | const emailFrame = page.frameLocator('iframe[title^="Email "]'); |
| 31 | await expect(page.getByRole("button", { name: "Load remote content" })).toBeVisible(); |
| 32 | await expect(emailFrame.getByText("Remote image blocked: Remote inline image")).toBeVisible(); |
| 33 | await expect(emailFrame.getByRole("link", { name: "Open Cloudflare Docs" })).toHaveAttribute( |
| 34 | "href", |
| 35 | /\/link\?url=https%3A%2F%2Fdevelopers\.cloudflare\.com%2F/, |
| 36 | ); |
| 37 | }); |