Ctrl K
ComunidadGuías…

test/scripts/email-sandbox-e2e/legs.test.ts

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
/** Direct tests for the email leg table and its env resolution. */

import { expect } from "@std/expect";
import { describe, it as test } from "@std/testing/bdd";
import {
  parseEmailTarget,
  resolveEmailLeg,
} from "#scripts/email-sandbox-e2e/legs.ts";
import { VALID_EMAIL_PROVIDERS } from "#shared/email.ts";
import { withEnv } from "#test-utils/env.ts";

describe("resolveEmailLeg", () => {
  test("skips a leg whose on-switch secret is unset", () => {
    using _env = withEnv({ RESEND_API_KEY: undefined });
    expect(resolveEmailLeg("resend")).toEqual({
      reason: "RESEND_API_KEY is not set",
      state: "skipped",
    });
  });

  test("treats a blank on-switch secret as unset, like a missing Actions secret", () => {
    using _env = withEnv({ MAILGUN_EU_API_KEY: "  " });
    expect(resolveEmailLeg("mailgun-eu")).toEqual({
      reason: "MAILGUN_EU_API_KEY is not set",
      state: "skipped",
    });
  });

  test("readies resend on the key alone, with the documented safe addresses", () => {
    using _env = withEnv({
      RESEND_API_KEY: " re_test_123 ",
      RESEND_FROM: undefined,
      RESEND_TO: undefined,
    });
    expect(resolveEmailLeg("resend")).toEqual({
      config: {
        apiKey: "re_test_123",
        fromAddress: "onboarding@resend.dev",
        provider: "resend",
      },
      state: "ready",
      to: "delivered@resend.dev",
    });
  });

  test("lets a secret override each default address", () => {
    using _env = withEnv({
      RESEND_API_KEY: "re_test_123",
      RESEND_FROM: "sender@verified.example.com",
      RESEND_TO: "delivered+run@resend.dev",
    });
    expect(resolveEmailLeg("resend")).toEqual({
      config: {
        apiKey: "re_test_123",
        fromAddress: "sender@verified.example.com",
        provider: "resend",
      },
      state: "ready",
      to: "delivered+run@resend.dev",
    });
  });

  test("readies postmark with the blackhole discard address by default", () => {
    using _env = withEnv({
      POSTMARK_FROM: "sender@example.com",
      POSTMARK_SERVER_TOKEN: "POSTMARK_API_TEST",
      POSTMARK_TO: undefined,
    });
    expect(resolveEmailLeg("postmark")).toEqual({
      config: {
        apiKey: "POSTMARK_API_TEST",
        fromAddress: "sender@example.com",
        provider: "postmark",
      },
      state: "ready",
      to: "test@blackhole.postmarkapp.com",
    });
  });

  test("readies sendgrid with the sink recipient by default", () => {
    using _env = withEnv({
      SENDGRID_API_KEY: "SG.key",
      SENDGRID_FROM: "verified@example.com",
      SENDGRID_TO: undefined,
    });
    expect(resolveEmailLeg("sendgrid")).toEqual({
      config: {
        apiKey: "SG.key",
        fromAddress: "verified@example.com",
        provider: "sendgrid",
      },
      state: "ready",
      to: "e2e@sink.sendgrid.net",
    });
  });

  test("breaks a switched-on leg whose required sender is unset", () => {
    using _env = withEnv({
      SENDGRID_API_KEY: "SG.key",
      SENDGRID_FROM: "",
    });
    expect(resolveEmailLeg("sendgrid")).toEqual({
      reason: "SENDGRID_FROM is not set",
      state: "broken",
    });
  });

  test("breaks a switched-on leg whose sender is not an email address", () => {
    using _env = withEnv({
      POSTMARK_FROM: "not-an-address",
      POSTMARK_SERVER_TOKEN: "token",
    });
    expect(resolveEmailLeg("postmark")).toEqual({
      reason: "POSTMARK_FROM is not a valid email address",
      state: "broken",
    });
  });

  test("breaks a switched-on mailgun leg whose recipient is unset", () => {
    using _env = withEnv({
      MAILGUN_EU_API_KEY: "key-abc",
      MAILGUN_EU_FROM: "e2e@sandbox123.mailgun.org",
      MAILGUN_EU_TO: undefined,
    });
    expect(resolveEmailLeg("mailgun-eu")).toEqual({
      reason: "MAILGUN_EU_TO is not set",
      state: "broken",
    });
  });

  test("names the US region's secrets on the mailgun-us leg", () => {
    using _env = withEnv({
      MAILGUN_US_API_KEY: "key-us",
      MAILGUN_US_FROM: "e2e@mg.example.com",
      MAILGUN_US_TO: "authorized@example.com",
    });
    expect(resolveEmailLeg("mailgun-us")).toEqual({
      config: {
        apiKey: "key-us",
        fromAddress: "e2e@mg.example.com",
        provider: "mailgun-us",
      },
      state: "ready",
      to: "authorized@example.com",
    });
  });
});

describe("parseEmailTarget", () => {
  test("selects every provider by default, in the production order", () => {
    expect(parseEmailTarget(undefined)).toEqual([...VALID_EMAIL_PROVIDERS]);
    expect(parseEmailTarget("all")).toEqual([...VALID_EMAIL_PROVIDERS]);
  });

  test("selects one named provider, case-insensitively", () => {
    expect(parseEmailTarget("RESEND")).toEqual(["resend"]);
    expect(parseEmailTarget("mailgun-eu")).toEqual(["mailgun-eu"]);
  });

  test("refuses an unknown target and names the expected ones", () => {
    expect(() => parseEmailTarget("stripe")).toThrow(
      'unknown target "stripe" (expected all|mailgun-eu|mailgun-us|postmark|resend|sendgrid)',
    );
  });
});