Files
cfw-autumn/vite/tests/utils/link-utils.test.ts

63 lines
1.7 KiB
TypeScript

import { describe, expect, test } from "bun:test";
import { AppEnv } from "@autumn/shared";
import { getStripeInvoiceLink } from "@/utils/linkUtils";
describe("getStripeInvoiceLink", () => {
const baseArgs = {
env: AppEnv.Sandbox,
accountId: "acct_123",
};
test("works when stripeInvoice is an object with id", () => {
const result = getStripeInvoiceLink({
stripeInvoice: { id: "in_abc123" },
...baseArgs,
});
expect(result).toBe(
"https://dashboard.stripe.com/acct_123/test/invoices/in_abc123",
);
expect(result).not.toContain("undefined");
});
test("works when stripeInvoice is an object with stripe_id", () => {
const result = getStripeInvoiceLink({
stripeInvoice: { stripe_id: "in_abc123" },
...baseArgs,
});
expect(result).toBe(
"https://dashboard.stripe.com/acct_123/test/invoices/in_abc123",
);
expect(result).not.toContain("undefined");
});
test("works when stripeInvoice is a string (attach v2 flow)", () => {
const result = getStripeInvoiceLink({
stripeInvoice: "in_abc123",
...baseArgs,
});
expect(result).toBe(
"https://dashboard.stripe.com/acct_123/test/invoices/in_abc123",
);
expect(result).not.toContain("undefined");
});
test("works with live env (no /test prefix)", () => {
const result = getStripeInvoiceLink({
stripeInvoice: "in_abc123",
env: AppEnv.Live,
accountId: "acct_123",
});
expect(result).toBe(
"https://dashboard.stripe.com/acct_123/invoices/in_abc123",
);
});
test("works without accountId", () => {
const result = getStripeInvoiceLink({
stripeInvoice: "in_abc123",
env: AppEnv.Sandbox,
});
expect(result).toBe("https://dashboard.stripe.com/test/invoices/in_abc123");
});
});