26 lines
1.1 KiB
TypeScript
26 lines
1.1 KiB
TypeScript
import "../setup.ts";
|
|
import { assertFalse, assertStringIncludes } from "@std/assert";
|
|
import { renderWelcomeEmail } from "../../mail/welcome.ts";
|
|
import { renderPasswordResetEmail } from "../../mail/password-reset.ts";
|
|
|
|
Deno.test("renderWelcomeEmail: fills the built-in body, in both parts", () => {
|
|
const email = renderWelcomeEmail("newbie");
|
|
assertStringIncludes(email.subject, "Welcome to gerbeur");
|
|
assertStringIncludes(email.text, "Hi **newbie**");
|
|
assertFalse(email.text.includes("{{"));
|
|
assertStringIncludes(email.html, "newbie</strong>");
|
|
assertStringIncludes(email.html, "Welcome to gerbeur!</h1>");
|
|
});
|
|
|
|
Deno.test("renderPasswordResetEmail: the button and the raw link carry the URL", () => {
|
|
const url = "http://gerbeur.test/reset-password?token=a.b&x=<y>";
|
|
const email = renderPasswordResetEmail("bob", url, 1);
|
|
assertStringIncludes(email.text, url);
|
|
assertStringIncludes(email.text, "for 1 hour");
|
|
assertStringIncludes(
|
|
email.html,
|
|
`href="http://gerbeur.test/reset-password?token=a.b&x=<y>"`,
|
|
);
|
|
assertFalse(email.html.includes("<y>"));
|
|
});
|