import { describe, expect, test } from "bun:test"; import { shouldRefuseNoPayment } from "../payment-gate"; import type { PaymentMethod } from "../types"; const wire: PaymentMethod = { type: "wire", label: "Wire Transfer", details: { bank: "Acme Bank" }, }; describe("shouldRefuseNoPayment", () => { test("refuses when no payment methods are configured", () => { expect(shouldRefuseNoPayment([], false)).toBe(true); }); test("refuses when payment methods are undefined (unset template config)", () => { expect(shouldRefuseNoPayment(undefined, false)).toBe(true); }); test("allows when at least one payment method is configured", () => { expect(shouldRefuseNoPayment([wire], false)).toBe(false); }); test("honors the allowNoPayment escape hatch with no methods", () => { expect(shouldRefuseNoPayment([], true)).toBe(false); expect(shouldRefuseNoPayment(undefined, true)).toBe(false); }); });