mirror of
https://github.com/AppFlowy-IO/AppFlowy-Web.git
synced 2026-03-13 10:02:51 +08:00
chore: fix test
This commit is contained in:
@@ -2,6 +2,7 @@ import { test, expect, Page } from '@playwright/test';
|
||||
import { DropdownSelectors, PageSelectors, SidebarSelectors, ShareSelectors } from '../../support/selectors';
|
||||
import { generateRandomEmail } from '../../support/test-config';
|
||||
import { signInAndWaitForApp } from '../../support/auth-flow-helpers';
|
||||
import { createUserAccount } from '../../support/auth-utils';
|
||||
|
||||
/**
|
||||
* Share Page Tests
|
||||
@@ -96,7 +97,8 @@ test.describe('Share Page Test', () => {
|
||||
}
|
||||
});
|
||||
|
||||
// 1. Sign in as user A
|
||||
// 1. Sign in as user A and create user B account
|
||||
await createUserAccount(request, userBEmail);
|
||||
await signInAndWaitForApp(page, request, testEmail);
|
||||
|
||||
// Wait for app to fully load
|
||||
@@ -148,6 +150,7 @@ test.describe('Share Page Test', () => {
|
||||
}
|
||||
});
|
||||
|
||||
await createUserAccount(request, userBEmail);
|
||||
await signInAndWaitForApp(page, request, testEmail);
|
||||
|
||||
await expect(SidebarSelectors.pageHeader(page)).toBeVisible({ timeout: 30000 });
|
||||
@@ -200,6 +203,12 @@ test.describe('Share Page Test', () => {
|
||||
const userCEmail = generateRandomEmail();
|
||||
const userDEmail = generateRandomEmail();
|
||||
|
||||
// Create all invited user accounts first
|
||||
await Promise.all([
|
||||
createUserAccount(request, userBEmail),
|
||||
createUserAccount(request, userCEmail),
|
||||
createUserAccount(request, userDEmail),
|
||||
]);
|
||||
await signInAndWaitForApp(page, request, testEmail);
|
||||
|
||||
await expect(SidebarSelectors.pageHeader(page)).toBeVisible({ timeout: 30000 });
|
||||
@@ -242,6 +251,7 @@ test.describe('Share Page Test', () => {
|
||||
}
|
||||
});
|
||||
|
||||
await createUserAccount(request, userBEmail);
|
||||
await signInAndWaitForApp(page, request, testEmail);
|
||||
|
||||
await expect(SidebarSelectors.pageHeader(page)).toBeVisible({ timeout: 30000 });
|
||||
@@ -290,6 +300,7 @@ test.describe('Share Page Test', () => {
|
||||
}
|
||||
});
|
||||
|
||||
await createUserAccount(request, userBEmail);
|
||||
await signInAndWaitForApp(page, request, testEmail);
|
||||
|
||||
await expect(SidebarSelectors.pageHeader(page)).toBeVisible({ timeout: 30000 });
|
||||
@@ -332,6 +343,7 @@ test.describe('Share Page Test', () => {
|
||||
|
||||
const userCEmail = generateRandomEmail();
|
||||
|
||||
await createUserAccount(request, userBEmail);
|
||||
await signInAndWaitForApp(page, request, testEmail);
|
||||
|
||||
await expect(SidebarSelectors.pageHeader(page)).toBeVisible({ timeout: 30000 });
|
||||
@@ -390,6 +402,7 @@ test.describe('Share Page Test', () => {
|
||||
}
|
||||
});
|
||||
|
||||
await createUserAccount(request, userBEmail);
|
||||
await signInAndWaitForApp(page, request, testEmail);
|
||||
|
||||
await expect(SidebarSelectors.pageHeader(page)).toBeVisible({ timeout: 30000 });
|
||||
@@ -433,6 +446,7 @@ test.describe('Share Page Test', () => {
|
||||
}
|
||||
});
|
||||
|
||||
await createUserAccount(request, userBEmail);
|
||||
await signInAndWaitForApp(page, request, testEmail);
|
||||
|
||||
await expect(SidebarSelectors.pageHeader(page)).toBeVisible({ timeout: 30000 });
|
||||
|
||||
@@ -242,3 +242,31 @@ export async function signInTestUser(
|
||||
const authUtils = new AuthTestUtils();
|
||||
await authUtils.signInWithTestUrl(page, request, email);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a user account without signing in via the browser.
|
||||
* Uses GoTrue admin generate_link to create the user, then calls
|
||||
* the verify endpoint to ensure the user profile exists.
|
||||
*/
|
||||
export async function createUserAccount(
|
||||
request: APIRequestContext,
|
||||
email: string
|
||||
): Promise<void> {
|
||||
const authUtils = new AuthTestUtils();
|
||||
const callbackLink = await authUtils.generateSignInUrl(request, email);
|
||||
|
||||
const hashIndex = callbackLink.indexOf('#');
|
||||
if (hashIndex === -1) return;
|
||||
|
||||
const hash = callbackLink.substring(hashIndex);
|
||||
const params = new URLSearchParams(hash.slice(1));
|
||||
const accessToken = params.get('access_token');
|
||||
|
||||
if (!accessToken) return;
|
||||
|
||||
// Call verify endpoint to create the user profile in the backend
|
||||
await request.get(`${TestConfig.apiUrl}/api/user/verify/${accessToken}`, {
|
||||
failOnStatusCode: false,
|
||||
timeout: 30000,
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user