Files
gitea-MIRROR/tests/e2e/user-settings.test.ts
silverwind 3c41728017 test(e2e): assert server-rendered biography after profile update (#40176)
Since Playwright 1.56, a WebKit click on a native submit button can
return before the form navigation starts, so `toHaveValue` passed on the
old page with the value `fill()` just set, and the next step raced the
reload.

Assert the textarea's text instead, its server-rendered default, which
only the reloaded page has.

---------

Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
2026-11-09 21:50:27 +00:00

29 lines
1.4 KiB
TypeScript

import {test, expect} from '@playwright/test';
import {login, loginUser, apiCreateUser, randomString} from './utils.ts';
test('update profile biography', async ({page, request}) => {
const username = `e2e-settings-${randomString(8)}`;
const bio = `e2e-bio-${randomString(8)}`;
await apiCreateUser(request, username);
await loginUser(page, username);
await page.goto('/user/settings');
await page.getByLabel('Biography').fill(bio);
await page.getByRole('button', {name: 'Update Profile'}).click();
await expect(page.getByText('Your profile has been updated.', {exact: true})).toBeVisible();
await expect(page.getByLabel('Biography')).toHaveText(bio);
await page.getByLabel('Biography').fill('');
await page.getByRole('button', {name: 'Update Profile'}).click();
await expect(page.getByText('Your profile has been updated.', {exact: true})).toBeVisible();
await expect(page.getByLabel('Biography')).toHaveText('');
});
test('select and deselect all webhook events', async ({page}) => {
await login(page);
await page.goto('/user/settings/hooks/gitea/new');
await page.getByRole('radio', {name: 'Custom Events'}).check();
await page.getByRole('button', {name: 'Select All', exact: true}).click();
await expect(page.getByRole('checkbox', {checked: false})).toHaveCount(0);
await page.getByRole('button', {name: 'Deselect All', exact: true}).click();
await expect(page.getByRole('checkbox', {checked: true})).toHaveAccessibleName('Active');
});