import { test, expect } from '../fixtures/admin.fixture' /** * 作品管理测试 */ test.describe('作品管理', () => { test.beforeEach(async ({ adminPage }) => { const page = adminPage // 导航到活动管理 > 作品管理 const submenu = page.locator('.ant-menu-submenu').filter({ hasText: '活动管理' }).first() await submenu.click() await page.waitForTimeout(500) await submenu.locator('.ant-menu-item').filter({ hasText: '作品管理' }).first().click() await page.waitForURL(/contests\/works/, { timeout: 10_000 }) }) test('W-01 作品列表页正常加载', async ({ adminPage }) => { const page = adminPage // 验证页面内容加载 await expect(page.locator('.ant-table, .works-page, .ant-card').first()).toBeVisible({ timeout: 10_000 }) }) test('W-02 搜索作品', async ({ adminPage }) => { const page = adminPage // 查找搜索输入框 const searchInput = page.locator('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('W-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('W-04 作品表格操作按钮', async ({ adminPage }) => { const page = adminPage // 等待页面加载 await page.waitForTimeout(2000) // 作品详情页操作列有"分配评委"按钮(页面快照显示为 button "分配评委") const actionBtn = page.locator('button:has-text("分配评委")').first() if (await actionBtn.isVisible({ timeout: 5000 }).catch(() => false)) { // 验证按钮可点击 expect(await actionBtn.isEnabled()).toBe(true) } }) })