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(); }); });