import { afterEach, describe, expect, it } from "vitest";
import { countRecentMailFailures, getReceivers } from "./email";

const ORIGINAL = process.env.CONTACT_RECEIVER;

afterEach(() => {
  if (ORIGINAL === undefined) delete process.env.CONTACT_RECEIVER;
  else process.env.CONTACT_RECEIVER = ORIGINAL;
});

describe("getReceivers", () => {
  it("splits comma-separated receivers and trims", () => {
    process.env.CONTACT_RECEIVER = "akg@acgil.net, manvi@acgil.net ";
    expect(getReceivers()).toEqual(["akg@acgil.net", "manvi@acgil.net"]);
  });

  it("drops empty entries", () => {
    process.env.CONTACT_RECEIVER = "a@x.com,, ,b@x.com";
    expect(getReceivers()).toEqual(["a@x.com", "b@x.com"]);
  });

  it("returns empty when unset", () => {
    delete process.env.CONTACT_RECEIVER;
    expect(getReceivers()).toEqual([]);
  });
});

describe("countRecentMailFailures", () => {
  it("returns a non-negative number without throwing", async () => {
    const n = await countRecentMailFailures();
    expect(Number.isInteger(n)).toBe(true);
    expect(n).toBeGreaterThanOrEqual(0);
  });
});
