|
@@ -28,7 +28,7 @@ test.describe('用户管理 E2E 测试', () => {
|
|
|
|
|
|
|
|
// 验证搜索结果包含admin用户
|
|
// 验证搜索结果包含admin用户
|
|
|
const adminUser = await userManagementPage.getUserByUsername('admin');
|
|
const adminUser = await userManagementPage.getUserByUsername('admin');
|
|
|
- await expect(adminUser).not.toBeNull();
|
|
|
|
|
|
|
+ expect(adminUser).not.toBeNull();
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
test('创建新用户', async ({ userManagementPage }) => {
|
|
test('创建新用户', async ({ userManagementPage }) => {
|
|
@@ -70,7 +70,7 @@ test.describe('用户管理 E2E 测试', () => {
|
|
|
|
|
|
|
|
// 验证用户信息已更新
|
|
// 验证用户信息已更新
|
|
|
const userRow = await userManagementPage.getUserByUsername(testUsername);
|
|
const userRow = await userManagementPage.getUserByUsername(testUsername);
|
|
|
- await expect(userRow).not.toBeNull();
|
|
|
|
|
|
|
+ expect(userRow).not.toBeNull();
|
|
|
await expect(userRow!).toContainText('更新后的昵称');
|
|
await expect(userRow!).toContainText('更新后的昵称');
|
|
|
await expect(userRow!).toContainText(`updated_${testUsername}@example.com`);
|
|
await expect(userRow!).toContainText(`updated_${testUsername}@example.com`);
|
|
|
});
|
|
});
|
|
@@ -147,4 +147,80 @@ test.describe('用户管理 E2E 测试', () => {
|
|
|
await expect(userManagementPage.pageTitle).toBeVisible();
|
|
await expect(userManagementPage.pageTitle).toBeVisible();
|
|
|
await expect(userManagementPage.searchInput).toBeVisible();
|
|
await expect(userManagementPage.searchInput).toBeVisible();
|
|
|
});
|
|
});
|
|
|
|
|
+
|
|
|
|
|
+ test('完整用户管理工作流 - 登录→创建→编辑→删除', async ({ adminLoginPage, userManagementPage, page }) => {
|
|
|
|
|
+ const testUsername = `workflow_${Date.now()}`;
|
|
|
|
|
+ const testPassword = 'Test123!@#';
|
|
|
|
|
+
|
|
|
|
|
+ // 1. 登录系统
|
|
|
|
|
+ await adminLoginPage.goto();
|
|
|
|
|
+ await adminLoginPage.login(testUsers.admin.username, testUsers.admin.password);
|
|
|
|
|
+
|
|
|
|
|
+ // 验证登录成功,跳转到Dashboard
|
|
|
|
|
+ await expect(page).toHaveURL(/.*dashboard/);
|
|
|
|
|
+ await expect(page.locator('text=仪表盘')).toBeVisible();
|
|
|
|
|
+
|
|
|
|
|
+ // 2. 导航到用户管理页面
|
|
|
|
|
+ await userManagementPage.goto();
|
|
|
|
|
+ await userManagementPage.expectToBeVisible();
|
|
|
|
|
+
|
|
|
|
|
+ // 3. 创建新用户
|
|
|
|
|
+ await userManagementPage.createUser({
|
|
|
|
|
+ username: testUsername,
|
|
|
|
|
+ password: testPassword,
|
|
|
|
|
+ nickname: '工作流测试用户',
|
|
|
|
|
+ email: `${testUsername}@example.com`,
|
|
|
|
|
+ phone: '13800138000',
|
|
|
|
|
+ name: '工作流测试'
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ // 验证用户创建成功
|
|
|
|
|
+ await userManagementPage.expectUserExists(testUsername);
|
|
|
|
|
+
|
|
|
|
|
+ // 4. 搜索并编辑用户
|
|
|
|
|
+ await userManagementPage.searchUsers(testUsername);
|
|
|
|
|
+ await userManagementPage.editUser(testUsername, {
|
|
|
|
|
+ nickname: '更新后的工作流用户',
|
|
|
|
|
+ email: `updated_${testUsername}@example.com`,
|
|
|
|
|
+ phone: '13900139000',
|
|
|
|
|
+ name: '更新工作流测试'
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ // 验证用户信息已更新
|
|
|
|
|
+ const userRow = await userManagementPage.getUserByUsername(testUsername);
|
|
|
|
|
+ await expect(userRow).toBeVisible();
|
|
|
|
|
+ await expect(userRow).toContainText('更新后的工作流用户');
|
|
|
|
|
+ await expect(userRow).toContainText(`updated_${testUsername}@example.com`);
|
|
|
|
|
+
|
|
|
|
|
+ // 5. 删除用户
|
|
|
|
|
+ await userManagementPage.deleteUser(testUsername);
|
|
|
|
|
+
|
|
|
|
|
+ // 验证用户已被删除
|
|
|
|
|
+ await userManagementPage.expectUserNotExists(testUsername);
|
|
|
|
|
+
|
|
|
|
|
+ // 6. 返回Dashboard验证状态
|
|
|
|
|
+ await page.goto('/admin/dashboard');
|
|
|
|
|
+ await expect(page.locator('text=仪表盘')).toBeVisible();
|
|
|
|
|
+ await expect(page.locator('text=欢迎回来')).toBeVisible();
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ test('边界条件测试 - 批量操作和错误处理', async ({ userManagementPage }) => {
|
|
|
|
|
+ // 测试空搜索
|
|
|
|
|
+ await userManagementPage.searchUsers('nonexistentuser12345');
|
|
|
|
|
+ const emptyCount = await userManagementPage.getUserCount();
|
|
|
|
|
+ expect(emptyCount).toBe(0);
|
|
|
|
|
+
|
|
|
|
|
+ // 验证空状态提示
|
|
|
|
|
+ await expect(userManagementPage.page.locator('text=暂无数据')).toBeVisible();
|
|
|
|
|
+
|
|
|
|
|
+ // 测试特殊字符搜索
|
|
|
|
|
+ await userManagementPage.searchUsers('@#$%');
|
|
|
|
|
+ const specialCharCount = await userManagementPage.getUserCount();
|
|
|
|
|
+ expect(specialCharCount).toBe(0);
|
|
|
|
|
+
|
|
|
|
|
+ // 清除搜索
|
|
|
|
|
+ await userManagementPage.searchUsers('');
|
|
|
|
|
+ const normalCount = await userManagementPage.getUserCount();
|
|
|
|
|
+ expect(normalCount).toBeGreaterThan(0);
|
|
|
|
|
+ });
|
|
|
});
|
|
});
|