mirror of
https://github.com/umami-software/umami.git
synced 2026-05-30 06:47:25 +00:00
60 lines
2.3 KiB
TypeScript
60 lines
2.3 KiB
TypeScript
import { expect, test } from '@playwright/test';
|
|
import { loginPage, logout } from './helpers';
|
|
|
|
test.describe('User tests', () => {
|
|
test.describe.configure({ mode: 'serial' });
|
|
|
|
test.beforeEach(async ({ page, request }) => {
|
|
await loginPage(page, request);
|
|
await page.goto('/settings/users');
|
|
});
|
|
|
|
test('adds a user', async ({ page }) => {
|
|
await expect(page.getByText(/Create user/i)).toBeVisible();
|
|
|
|
await page.getByTestId('button-create-user').click();
|
|
await page.getByTestId('input-username').locator('input').fill('Test-user');
|
|
await page.getByTestId('input-password').locator('input').fill('testPasswordPlaywright');
|
|
await page.getByTestId('dropdown-role').click();
|
|
await page.getByTestId('dropdown-item-user').click();
|
|
await page.getByTestId('button-submit').click();
|
|
|
|
await expect(page.locator('td[label="Username"]')).toContainText('Test-user');
|
|
await expect(page.locator('td[label="Role"]')).toContainText('User');
|
|
});
|
|
|
|
test('edits a user role and password', async ({ page }) => {
|
|
const userRow = page.locator('table tbody tr').filter({
|
|
has: page.locator('td', { hasText: /Test-user/i }),
|
|
});
|
|
|
|
await userRow.getByTestId('link-button-edit').click();
|
|
await page.getByTestId('input-password').locator('input').fill('newPassword');
|
|
await page.getByTestId('dropdown-role').click();
|
|
await page.getByTestId('dropdown-item-viewOnly').click();
|
|
await page.getByTestId('button-submit').click();
|
|
|
|
await page.goto('/settings/users');
|
|
await expect(
|
|
page.locator('table tbody tr').filter({ has: page.locator('td', { hasText: /Test-user/i }) }),
|
|
).toContainText('View only');
|
|
|
|
await logout(page);
|
|
await page.getByTestId('input-username').locator('input').fill('Test-user');
|
|
await page.getByTestId('input-password').locator('input').fill('newPassword');
|
|
await page.getByTestId('button-submit').click();
|
|
|
|
await expect(page).toHaveURL(/\/dashboard$/);
|
|
});
|
|
|
|
test('deletes a user', async ({ page }) => {
|
|
const userRow = page.locator('table tbody tr').filter({
|
|
has: page.locator('td', { hasText: /Test-user/i }),
|
|
});
|
|
|
|
await userRow.getByTestId('button-delete').click();
|
|
await expect(page.getByText(/Are you sure you want to delete Test-user?/i)).toBeVisible();
|
|
await page.getByTestId('button-confirm').click();
|
|
});
|
|
});
|