mirror of
https://github.com/go-gitea/gitea.git
synced 2026-10-01 20:59:45 +09:00
0b43bde974
Co-authored-by: silverwind <me@silverwind.io>
29 lines
1.5 KiB
TypeScript
29 lines
1.5 KiB
TypeScript
import {env} from 'node:process';
|
|
import {test, expect} from '@playwright/test';
|
|
import {login, randomString} from './utils.ts';
|
|
|
|
test('create a bot and manage its access token', async ({page, request}) => {
|
|
const botName = `e2e-bot-${randomString(8)}`;
|
|
await login(page);
|
|
await page.goto('/-/admin/users/new');
|
|
await page.getByLabel('Username').fill(botName);
|
|
await page.getByLabel('Username').press('Tab');
|
|
await page.getByRole('option', {name: 'Bot'}).click();
|
|
await page.getByLabel('Email Address').fill(`${botName}@${env.GITEA_TEST_E2E_DOMAIN}`);
|
|
await page.getByRole('button', {name: 'Create User Account'}).click();
|
|
await page.waitForURL(/\/-\/admin\/users\/\d+$/);
|
|
|
|
await page.getByLabel('Token Name').fill('e2e-token');
|
|
await page.getByRole('row', {name: /^user /}).getByRole('radio', {name: 'Read', exact: true}).check();
|
|
await page.getByRole('button', {name: 'Generate Token'}).click();
|
|
const token = await page.getByRole('code').textContent();
|
|
await page.getByRole('button', {name: 'Copy', exact: true}).click();
|
|
await expect.poll(() => page.evaluate(() => navigator.clipboard.readText())).toBe(token);
|
|
const response = await request.get('/api/v1/user', {headers: {Authorization: `token ${token}`}});
|
|
expect(await response.json()).toMatchObject({login: botName, type: 'Bot'});
|
|
|
|
await page.getByRole('button', {name: 'Delete'}).click();
|
|
await page.getByRole('button', {name: 'Yes'}).click();
|
|
await expect(page.getByText('The token has been deleted.')).toBeVisible();
|
|
});
|