Migrate billing from Paddle to Lemon Squeezy

This commit is contained in:
Codex Agent
2026-02-03 10:59:54 +01:00
parent 2f4ebfefd4
commit a0ef90e13a
228 changed files with 4369 additions and 4067 deletions

View File

@@ -41,7 +41,7 @@ export type TestingApiFixtures = {
getTestMailbox: () => Promise<MailboxEntry[]>;
seedTestCoupons: (definitions?: CouponSeedDefinition[]) => Promise<Array<{ id: number; code: string }>>;
getLatestCheckoutSession: (filters?: { email?: string; tenantId?: number; status?: string }) => Promise<CheckoutSessionSummary | null>;
simulatePaddleCompletion: (sessionId: string, overrides?: Partial<PaddleSimulationOverrides>) => Promise<void>;
simulateLemonSqueezyCompletion: (sessionId: string, overrides?: Partial<LemonSqueezySimulationOverrides>) => Promise<void>;
fetchJoinToken: (params: { eventId?: number; slug?: string; ensureActive?: boolean }) => Promise<JoinTokenPayload>;
};
@@ -58,9 +58,9 @@ export type CheckoutSessionSummary = {
created_at: string | null;
};
export type PaddleSimulationOverrides = {
export type LemonSqueezySimulationOverrides = {
event_type: string;
transaction_id?: string;
order_id?: string;
status?: string;
checkout_id?: string;
metadata?: Record<string, unknown>;
@@ -156,10 +156,10 @@ export const test = base.extend<TenantAdminFixtures & TestingApiFixtures>({
});
},
simulatePaddleCompletion: async ({ request }, use) => {
await use(async (sessionId: string, overrides?: Partial<PaddleSimulationOverrides>) => {
simulateLemonSqueezyCompletion: async ({ request }, use) => {
await use(async (sessionId: string, overrides?: Partial<LemonSqueezySimulationOverrides>) => {
await expectApiSuccess(
request.post(`/api/_testing/checkout/sessions/${sessionId}/simulate-paddle`, {
request.post(`/api/_testing/checkout/sessions/${sessionId}/simulate-lemonsqueezy`, {
data: overrides,
})
);