57 lines
1.7 KiB
TypeScript
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");
|
|
});
|
|
});
|