1
0
mirror of https://github.com/misskey-dev/misskey.git synced 2026-07-25 15:35:14 +02:00
This commit is contained in:
kakkokari-gtyih
2026-07-08 16:10:40 +09:00
parent 0a7454f227
commit c7c86aacee
3 changed files with 25 additions and 20 deletions

View File

@@ -10,7 +10,9 @@ import {
// locator helper
locateMkInput, locateMkSwitch, locateMkTextarea,
// utils
registerUser, waitApiResponse, resetState, visitHome, signIn,
registerUser, resetState, visitHome,
// page utils
waitApiResponse, signIn,
} from './utils.js';
import type { RegisteredUser } from './utils.js';

View File

@@ -8,7 +8,9 @@ import {
// const
BASE_URL,
// utils
resetState, registerUser, signIn,
resetState, registerUser,
// page utils
signIn,
} from './utils.js';
test.describe('Router transition', () => {

View File

@@ -47,24 +47,6 @@ export async function registerUser(
assertOk(response.status(), await response.text(), route);
return await response.json() as RegisteredUser;
}
export async function waitApiResponse(page: Page, path: string): Promise<void> {
await page.waitForResponse((response) => {
return response.url().endsWith(path) && response.request().method() === 'POST';
}, { timeout: 30_000 });
}
export async function signIn(page: Page, username: string, password: string): Promise<void> {
await page.getByTestId('signin').click();
await page.getByTestId('signin-page-input').waitFor({ state: 'visible', timeout: 10_000 });
await locateMkInput(page, 'signin-username').fill(username);
await page.keyboard.press('Enter');
await page.getByTestId('signin-page-password').waitFor({ state: 'visible', timeout: 10_000 });
await locateMkInput(page, 'signin-password').fill(password);
const signinResponse = waitApiResponse(page, '/api/signin-flow');
await page.keyboard.press('Enter');
await signinResponse;
}
//#endregion
//#region Locator Helpers
@@ -86,4 +68,23 @@ export async function visitHome(page: Page): Promise<void> {
await page.goto(`${BASE_URL}/`);
await page.locator('button').first().waitFor({ state: 'visible', timeout: 30_000 });
}
export async function waitApiResponse(page: Page, path: string): Promise<void> {
await page.waitForResponse((response) => {
return response.url().endsWith(path) && response.request().method() === 'POST';
}, { timeout: 30_000 });
}
export async function signIn(page: Page, username: string, password: string): Promise<void> {
await visitHome(page);
await page.getByTestId('signin').click();
await page.getByTestId('signin-page-input').waitFor({ state: 'visible', timeout: 10_000 });
await locateMkInput(page, 'signin-username').fill(username);
await page.keyboard.press('Enter');
await page.getByTestId('signin-page-password').waitFor({ state: 'visible', timeout: 10_000 });
await locateMkInput(page, 'signin-password').fill(password);
const signinResponse = waitApiResponse(page, '/api/signin-flow');
await page.keyboard.press('Enter');
await signinResponse;
}
//#endregion