diff --git a/packages/frontend/test/e2e/basic.spec.ts b/packages/frontend/test/e2e/basic.spec.ts index 7544eb9c0c..ead7ba2955 100644 --- a/packages/frontend/test/e2e/basic.spec.ts +++ b/packages/frontend/test/e2e/basic.spec.ts @@ -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'; diff --git a/packages/frontend/test/e2e/router.spec.ts b/packages/frontend/test/e2e/router.spec.ts index abc052204e..2a07a05a28 100644 --- a/packages/frontend/test/e2e/router.spec.ts +++ b/packages/frontend/test/e2e/router.spec.ts @@ -8,7 +8,9 @@ import { // const BASE_URL, // utils - resetState, registerUser, signIn, + resetState, registerUser, + // page utils + signIn, } from './utils.js'; test.describe('Router transition', () => { diff --git a/packages/frontend/test/e2e/utils.ts b/packages/frontend/test/e2e/utils.ts index a5e5aaf9e1..76731b4cda 100644 --- a/packages/frontend/test/e2e/utils.ts +++ b/packages/frontend/test/e2e/utils.ts @@ -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 { - 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 { - 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 { 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 { + 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 { + 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