Files
Codex 2e04260ebd
Docker Image / Build and Push Docker Image (push) Successful in 2m15s
revert(payment): remove unsupported Stripe and EzPay upgrade
2026-07-29 18:15:20 +08:00

39 lines
1.5 KiB
TypeScript

import type { Page } from "@playwright/test";
import { registerAuthMocks } from "./api/auth";
import { registerChatMocks } from "./api/chat";
import { registerCharacterMocks } from "./api/character";
import { registerPaymentMocks } from "./api/payment";
import { registerUserMocks } from "./api/user";
export interface MockCoreApisOptions {
chatLimitTriggerAt?: number;
chatSendTokenRefreshFlow?: boolean;
paidImageFlow?: boolean;
paidImageInsufficientCreditsFlow?: boolean;
paidVoiceInsufficientCreditsFlow?: boolean;
topUpHandoffFlow?: boolean;
}
export async function mockCoreApis(page: Page, options: MockCoreApisOptions = {}) {
const chatOptions = {
chatLimitTriggerAt: options.chatLimitTriggerAt,
chatSendTokenRefreshFlow: options.chatSendTokenRefreshFlow ?? false,
paidImageFlow: options.paidImageFlow ?? false,
paidImageInsufficientCreditsFlow: options.paidImageInsufficientCreditsFlow ?? false,
paidVoiceInsufficientCreditsFlow: options.paidVoiceInsufficientCreditsFlow ?? false,
topUpHandoffFlow: options.topUpHandoffFlow ?? false,
};
const chatState = { hasExpiredChatSend: false, paidImageRequested: false, paidImageUnlocked: false };
await registerAuthMocks(page, {
chatSendTokenRefreshFlow: chatOptions.chatSendTokenRefreshFlow,
isChatSendTokenExpired: () => chatState.hasExpiredChatSend,
topUpHandoffFlow: chatOptions.topUpHandoffFlow,
});
await registerCharacterMocks(page);
await registerUserMocks(page);
await registerChatMocks(page, chatOptions, chatState);
await registerPaymentMocks(page);
}