import { describe, expect, it } from "vitest"; import { resolveMailConfig } from "./mailProviders"; describe("resolveMailConfig", () => { it("uses Gmail defaults when provider is gmail", () => { const config = resolveMailConfig({ smtpProvider: "gmail", smtpFrom: "notifications@example.com", smtpUser: "notifications@example.com", smtpPass: "secret", }); expect(config.provider).toBe("gmail"); expect(config.host).toBe("smtp.gmail.com"); expect(config.port).toBe(465); expect(config.secure).toBe(true); expect(config.ready).toBe(true); }); it("uses OVH defaults when provider is ovh", () => { const config = resolveMailConfig({ smtpProvider: "ovh", smtpFrom: "notifications@example.com", }); expect(config.provider).toBe("ovh"); expect(config.host).toBe("smtp.mail.ovh.net"); expect(config.port).toBe(465); expect(config.secure).toBe(true); expect(config.requireTLS).toBe(false); expect(config.ready).toBe(true); }); it("supports custom SMTP host and port", () => { const config = resolveMailConfig({ smtpHost: "mail.example.org", smtpPort: "2525", smtpFrom: "notifications@example.org", }); expect(config.provider).toBe("custom"); expect(config.host).toBe("mail.example.org"); expect(config.port).toBe(2525); expect(config.ready).toBe(true); }); it("reports missing SMTP_PASS when only SMTP_USER is present", () => { const config = resolveMailConfig({ smtpProvider: "outlook", smtpFrom: "notifications@example.com", smtpUser: "notifications@example.com", }); expect(config.ready).toBe(false); expect(config.missing).toContain("SMTP_PASS"); }); });