import { test, expect } from '../fixtures/admin.fixture' /** * 用户管理测试 */ test.describe('用户管理', () => { test.beforeEach(async ({ adminPage }) => { const page = adminPage // 通过 Vue Router 直接导航到用户管理(菜单点击可能因动态路由注册时序问题失效) await page.evaluate(() => { const app = document.querySelector('#app')?.__vue_app__ if (app) { const router = app.config.globalProperties.$router router.push({ name: 'SystemUsers' }) } }) // 等待页面内容加载 await page.waitForTimeout(2000) }) test('U-01 用户列表页正常加载', async ({ adminPage }) => { const page = adminPage // 验证页面加载(Ant Design 表格或卡片) await expect(page.locator('.ant-table, .ant-card, .ant-spin').first()).toBeVisible({ timeout: 10_000 }) }) test('U-02 搜索用户', async ({ adminPage }) => { const page = adminPage // 查找搜索输入框 const searchInput = page.locator('input[placeholder*="搜索"], input[placeholder*="用户"], input[placeholder*="姓名"], input[placeholder*="手机"]').first() if (await searchInput.isVisible({ timeout: 5000 }).catch(() => false)) { await searchInput.fill('管理员') // 触发搜索 const searchBtn = page.locator('button:has-text("搜索"), button[type="submit"]').first() if (await searchBtn.isVisible()) { await searchBtn.click() } else { await searchInput.press('Enter') } await page.waitForTimeout(1000) } }) test('U-03 用户状态筛选', async ({ adminPage }) => { const page = adminPage // 查找状态筛选 const statusSelect = page.locator('.ant-select').first() if (await statusSelect.isVisible({ timeout: 5000 }).catch(() => false)) { await statusSelect.click() await page.waitForTimeout(500) // 选择状态 const option = page.locator('.ant-select-item-option').first() if (await option.isVisible()) { await option.click() await page.waitForTimeout(1000) } } }) test('U-04 创建用户弹窗', async ({ adminPage }) => { const page = adminPage // 查找创建用户按钮 const createBtn = page.locator('button:has-text("创建"), button:has-text("新建"), button:has-text("添加用户"), button:has-text("新增")').first() if (await createBtn.isVisible({ timeout: 5000 }).catch(() => false)) { await createBtn.click() // 验证弹窗出现 await expect(page.locator('.ant-modal, .ant-drawer').first()).toBeVisible({ timeout: 5000 }) // 验证表单字段可填写 const usernameInput = page.locator('.ant-modal input, .ant-drawer input').first() if (await usernameInput.isVisible()) { await usernameInput.fill('newuser') await expect(usernameInput).toHaveValue('newuser') } } }) test('U-05 用户操作菜单', async ({ adminPage }) => { const page = adminPage // 等待表格加载 await page.waitForTimeout(2000) // 查找操作列中的按钮 const editBtn = page.locator('button:has-text("编辑"), a:has-text("编辑")').first() if (await editBtn.isVisible({ timeout: 5000 }).catch(() => false)) { // 验证编辑按钮可点击 expect(await editBtn.isEnabled()).toBe(true) } // 查找更多操作下拉菜单 const moreBtn = page.locator('.ant-table-row button:has-text("更多"), .ant-table-row .ant-dropdown-trigger').first() if (await moreBtn.isVisible({ timeout: 3000 }).catch(() => false)) { await moreBtn.click() await page.waitForTimeout(500) // 验证下拉菜单选项 await expect(page.locator('.ant-dropdown-menu-item').first()).toBeVisible() } }) })