Files
cozsweet-frontend-nextjs/src/lib/payment/__tests__/payment_launch.test.ts
T

44 lines
1.3 KiB
TypeScript

import { describe, expect, it } from "vitest";
import {
getPaymentUrl,
getStripeClientSecret,
isEzpayPayment,
} from "../payment_launch";
describe("payment launch helpers", () => {
it("extracts supported redirect urls from payment params", () => {
expect(getPaymentUrl({ cashier_url: "https://pay.example/cashier" })).toBe(
"https://pay.example/cashier",
);
expect(getPaymentUrl({ checkoutUrl: "https://pay.example/checkout" })).toBe(
"https://pay.example/checkout",
);
expect(getPaymentUrl({ url: "" })).toBeNull();
});
it("detects ezpay provider case-insensitively", () => {
expect(isEzpayPayment({ provider: "ezpay" })).toBe(true);
expect(isEzpayPayment({ provider: "EZPAY" })).toBe(true);
expect(isEzpayPayment({ provider: "stripe" })).toBe(false);
});
it("extracts stripe client secrets only for stripe-like providers", () => {
expect(
getStripeClientSecret({
provider: "stripe",
clientSecret: "pi_secret",
}),
).toBe("pi_secret");
expect(getStripeClientSecret({ client_secret: "pi_secret_snake" })).toBe(
"pi_secret_snake",
);
expect(
getStripeClientSecret({
provider: "ezpay",
clientSecret: "pi_secret",
}),
).toBeNull();
});
});