import { test, expect } from '../utils/test-setup'; import testUsers from '../../fixtures/test-users.json'; test.describe('用户管理CRUD操作', () => { test.beforeEach(async ({ loginPage, userManagementPage }) => { // 以管理员身份登录 await loginPage.goto(); await loginPage.login(testUsers.admin.username, testUsers.admin.password); await userManagementPage.goto(); }); test('查看用户列表', async ({ userManagementPage }) => { await userManagementPage.expectToBeVisible(); const userCount = await userManagementPage.getUserCount(); expect(userCount).toBeGreaterThan(0); }); test('搜索用户', async ({ userManagementPage }) => { await userManagementPage.searchUsers('admin'); const userCount = await userManagementPage.getUserCount(); expect(userCount).toBeGreaterThan(0); // 验证搜索结果包含admin用户 const adminUser = await userManagementPage.getUserByUsername('admin'); await expect(adminUser).not.toBeNull(); }); test('创建新用户', async ({ userManagementPage }) => { const testUsername = `testuser_${Date.now()}`; const testPassword = 'Test123!@#'; await userManagementPage.createUser({ username: testUsername, password: testPassword, nickname: '测试用户', email: `${testUsername}@example.com`, phone: '13800138000', name: '测试用户' }); // 验证用户创建成功 await userManagementPage.expectUserExists(testUsername); }); test('编辑用户信息', async ({ userManagementPage }) => { const testUsername = `edituser_${Date.now()}`; const testPassword = 'Test123!@#'; // 先创建测试用户 await userManagementPage.createUser({ username: testUsername, password: testPassword, nickname: '原始昵称', email: `${testUsername}@example.com` }); // 编辑用户信息 await userManagementPage.editUser(testUsername, { nickname: '更新后的昵称', email: `updated_${testUsername}@example.com`, phone: '13900139000', name: '更新姓名' }); // 验证用户信息已更新 const userRow = await userManagementPage.getUserByUsername(testUsername); await expect(userRow).toContainText('更新后的昵称'); await expect(userRow).toContainText(`updated_${testUsername}@example.com`); }); test('删除用户', async ({ userManagementPage }) => { const testUsername = `deleteuser_${Date.now()}`; const testPassword = 'Test123!@#'; // 先创建测试用户 await userManagementPage.createUser({ username: testUsername, password: testPassword, nickname: '待删除用户', email: `${testUsername}@example.com` }); // 验证用户存在 await userManagementPage.expectUserExists(testUsername); // 删除用户 await userManagementPage.deleteUser(testUsername); // 验证用户已被删除 await userManagementPage.expectUserNotExists(testUsername); }); test('用户分页功能', async ({ userManagementPage }) => { // 确保有足够多的用户来测试分页 const initialCount = await userManagementPage.getUserCount(); if (initialCount < 10) { // 创建一些测试用户 for (let i = 0; i < 5; i++) { await userManagementPage.createUser({ username: `pagetest_${Date.now()}_${i}`, password: 'Test123!@#', nickname: `分页测试用户 ${i}` }); } } // 搜索并验证分页控件可见 await userManagementPage.searchUsers(''); await expect(userManagementPage.pagination).toBeVisible(); }); test('创建用户验证 - 用户名已存在', async ({ userManagementPage }) => { // 尝试创建已存在的用户 await userManagementPage.createUser({ username: 'admin', password: 'Test123!@#', nickname: '重复用户' }); // 应该显示错误消息 await expect(userManagementPage.page.locator('text=创建失败')).toBeVisible(); }); });