Files
novalon-manage-system/uat-tests/scenarios/user-lifecycle/user-registration.spec.ts
T
2026-03-25 09:49:12 +08:00

100 lines
3.2 KiB
TypeScript

import { test, expect } from '@playwright/test';
import { LoginPage } from '../../../novalon-manage-web/e2e/pages/LoginPage';
import { UserManagementPage } from '../../pages/UserManagementPage';
import { UATHelper } from '../../utils/uat-helper';
import { DataLoader } from '../../utils/data-loader';
test.describe('UAT - 用户生命周期场景', () => {
let loginPage: LoginPage;
let userManagementPage: UserManagementPage;
let helper: UATHelper;
test.beforeEach(async ({ page }) => {
loginPage = new LoginPage(page);
userManagementPage = new UserManagementPage(page);
helper = new UATHelper(page);
const adminUser = DataLoader.getUserByRole('admin');
await loginPage.goto();
await loginPage.login(adminUser.username, adminUser.password);
});
test('新用户注册与激活', async ({ page }) => {
await userManagementPage.navigateTo();
await helper.waitForElement('[data-testid="user-table"]');
await userManagementPage.clickCreateUser();
const timestamp = Date.now();
const userData = {
username: `newuser_${timestamp}`,
nickname: `新用户${timestamp}`,
email: `newuser_${timestamp}@example.com`,
phone: '13800138000',
password: 'Test123!@#',
confirmPassword: 'Test123!@#',
};
await userManagementPage.fillUserForm(userData);
await userManagementPage.submitForm();
await helper.verifySuccessMessage('创建成功');
await helper.waitForPageLoad();
await expect(userManagementPage.table).toContainText(userData.username);
await userManagementPage.logout();
await loginPage.goto();
await loginPage.login(userData.username, userData.password);
await expect(page).toHaveURL(/.*dashboard/);
});
test('用户信息变更', async ({ page }) => {
const testUser = DataLoader.getUserByRole('user');
await userManagementPage.navigateTo();
await helper.waitForElement('[data-testid="user-table"]');
await userManagementPage.editUser(1);
await page.fill('input[name="email"]', 'updated@example.com');
await page.fill('input[name="nickname"]', '更新后的昵称');
await userManagementPage.submitForm();
await helper.verifySuccessMessage('更新成功');
await helper.waitForPageLoad();
await expect(userManagementPage.table).toContainText('updated@example.com');
await expect(userManagementPage.table).toContainText('更新后的昵称');
});
test('用户角色演进', async ({ page }) => {
const testUser = DataLoader.getUserByRole('user');
await userManagementPage.navigateTo();
await helper.waitForElement('[data-testid="user-table"]');
await userManagementPage.editUser(1);
await page.selectOption('select[name="role"]', 'manager');
await userManagementPage.submitForm();
await helper.verifySuccessMessage('更新成功');
await helper.waitForPageLoad();
await userManagementPage.logout();
await loginPage.goto();
await loginPage.login(testUser.username, testUser.password);
await page.goto('/role-management');
await helper.waitForElement('[data-testid="role-table"]');
await expect(page.locator('[data-testid="role-table"]')).toBeVisible();
});
});