diff --git a/patchnotes-email/package.json b/patchnotes-email/package.json index 2b3d83b7..ffcfb825 100644 --- a/patchnotes-email/package.json +++ b/patchnotes-email/package.json @@ -9,7 +9,7 @@ "clean": "rimraf dist", "prestart": "pnpm clean && pnpm build", "start": "func start", - "test": "echo \"No tests yet...\"", + "test": "vitest run", "db:pull": "prisma db pull", "db:generate": "prisma generate", "db:smoke-test": "pnpm tsx scripts/prisma-smoke-test.ts" @@ -27,6 +27,7 @@ "dotenv": "^17.3.1", "prisma": "^7.4.0", "rimraf": "^6.1.2", - "typescript": "^5.0.0" + "typescript": "^5.0.0", + "vitest": "^4.0.18" } } diff --git a/patchnotes-email/src/functions/sendDigest.test.ts b/patchnotes-email/src/functions/sendDigest.test.ts new file mode 100644 index 00000000..9ad6add0 --- /dev/null +++ b/patchnotes-email/src/functions/sendDigest.test.ts @@ -0,0 +1,189 @@ +import { describe, it, expect, vi, beforeEach } from "vitest"; + +const { mockSend, mockFindMany } = vi.hoisted(() => ({ + mockSend: vi.fn(), + mockFindMany: vi.fn(), +})); + +vi.mock("../lib/resend", () => ({ + resend: { emails: { send: mockSend } }, + FROM_ADDRESS: "PatchNotes ", + escapeHtml: (s: string) => s.replace(/&/g, "&").replace(//g, ">").replace(/"/g, """), + emailFooter: () => "