test(auth): cover PSID external entry login

This commit is contained in:
2026-07-16 11:55:03 +08:00
parent e730799aa5
commit 0b96b5ed95
5 changed files with 87 additions and 1 deletions
+11 -1
View File
@@ -1,14 +1,24 @@
import type { Page } from "@playwright/test";
import { apiEnvelope } from "../data/common";
import { emailLoginResponse, guestLoginResponse, refreshedEmailLoginResponse, refreshedGuestLoginResponse } from "../data/auth";
import { emailLoginResponse, guestLoginResponse, psidLoginResponse, refreshedEmailLoginResponse, refreshedGuestLoginResponse } from "../data/auth";
export interface AuthMockState {
chatSendTokenRefreshFlow: boolean;
isChatSendTokenExpired: () => boolean;
psidLoginFlow: boolean;
}
export async function registerAuthMocks(page: Page, state: AuthMockState) {
await page.route("**/api/auth/login/facebook/psid", async (route) => {
if (!state.psidLoginFlow) {
await route.continue();
return;
}
await route.fulfill({ json: apiEnvelope(psidLoginResponse) });
});
await page.route("**/api/auth/guest", async (route) => {
const response = state.chatSendTokenRefreshFlow && state.isChatSendTokenExpired() ? refreshedGuestLoginResponse : guestLoginResponse;
await route.fulfill({ json: apiEnvelope(response) });