import { describe, expect, mock, test } from "bun:test"; const fakeEnv: Record = {}; mock.module("cloudflare:workers", () => ({ env: fakeEnv })); const { checkoutDisabled, liveMode, stripeEnabled, stripeModeError } = await import("./config"); describe("stripe key modes", () => { test("matching test or live keys pass", () => { expect(stripeModeError({ secret: "sk_test_a", publishable: "pk_test_b", webhookMode: "test" })).toBeNull(); expect(stripeModeError({ secret: "rk_live_a", publishable: "pk_live_b" })).toBeNull(); expect(stripeModeError({})).toBeNull(); }); test("mixed modes and unknown prefixes are refused", () => { expect(stripeModeError({ secret: "sk_live_a", publishable: "pk_test_b" })).toMatch(/pk_live_/); expect(stripeModeError({ secret: "sk_test_a", publishable: "pk_live_b" })).toMatch(/pk_test_/); expect(stripeModeError({ secret: "sk_test_a", webhookMode: "live" })).toMatch(/STRIPE_WEBHOOK_MODE/); expect(stripeModeError({ secret: "whsec_oops" })).toMatch(/STRIPE_SECRET_KEY/); }); test("a mixed configuration disables billing", () => { Object.assign(fakeEnv, { STRIPE_SECRET_KEY: "sk_live_a", STRIPE_PUBLISHABLE_KEY: "pk_test_b" }); expect(stripeEnabled()).toBe(false); fakeEnv.STRIPE_PUBLISHABLE_KEY = "pk_live_b"; expect(stripeEnabled()).toBe(true); expect(liveMode()).toBe(true); }); test("BILLING_CHECKOUT_DISABLED", () => { expect(checkoutDisabled()).toBe(false); fakeEnv.BILLING_CHECKOUT_DISABLED = "true"; expect(checkoutDisabled()).toBe(true); fakeEnv.BILLING_CHECKOUT_DISABLED = "0"; expect(checkoutDisabled()).toBe(false); }); });