portail-associations/shared/mailProviders.test.ts

57 lines
1.7 KiB
TypeScript

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");
});
});