loading up the forgejo repo on tangled to test page performance
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge pull request 'feat: Create temporary user helper function' (#5617) from gusted/forgejo-temp-user-e2e into forgejo

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5617
Reviewed-by: Otto <otto@codeberg.org>

Otto dfe9bdd1 cd7c015d

+25 -8
+21
tests/e2e/utils_e2e.js
··· 80 80 }); 81 81 } 82 82 } 83 + 84 + // Create a temporary user and login to that user and store session info. 85 + // This should ideally run on a per test basis. 86 + export async function create_temp_user(browser, workerInfo, request) { 87 + const username = globalThis.crypto.randomUUID(); 88 + const newUser = await request.post(`/api/v1/admin/users`, { 89 + headers: { 90 + 'Content-Type': 'application/json', 91 + 'Authorization': `Basic ${btoa(`user1:${LOGIN_PASSWORD}`)}`, 92 + }, 93 + data: { 94 + username, 95 + email: `${username}@host.invalid`, 96 + password: LOGIN_PASSWORD, 97 + must_change_password: false, 98 + }, 99 + }); 100 + expect(newUser.ok()).toBeTruthy(); 101 + 102 + return {context: await login_user(browser, workerInfo, username), username}; 103 + }
+4 -8
tests/e2e/webauthn.test.e2e.js
··· 9 9 // @watch end 10 10 11 11 import {expect} from '@playwright/test'; 12 - import {test, login_user, load_logged_in_context} from './utils_e2e.js'; 13 - 14 - test.beforeAll(async ({browser}, workerInfo) => { 15 - await login_user(browser, workerInfo, 'user40'); 16 - }); 12 + import {test, create_temp_user} from './utils_e2e.js'; 17 13 18 - test('WebAuthn register & login flow', async ({browser}, workerInfo) => { 14 + test('WebAuthn register & login flow', async ({browser, request}, workerInfo) => { 19 15 test.skip(workerInfo.project.name !== 'chromium', 'Uses Chrome protocol'); 20 - const context = await load_logged_in_context(browser, workerInfo, 'user40'); 16 + const {context, username} = await create_temp_user(browser, workerInfo, request); 21 17 const page = await context.newPage(); 22 18 23 19 // Register a security key. ··· 51 47 response = await page.goto('/user/login'); 52 48 await expect(response?.status()).toBe(200); 53 49 54 - await page.getByLabel('Username or email address').fill('user40'); 50 + await page.getByLabel('Username or email address').fill(username); 55 51 await page.getByLabel('Password').fill('password'); 56 52 await page.getByRole('button', {name: 'Sign in'}).click(); 57 53 await page.waitForURL(`${workerInfo.project.use.baseURL}/user/webauthn`);