import { test, expect } from '@playwright/test'; // 原有测试用例保持不变... test('基础登录流程', async ({ page }) => { await page.goto('/login'); await page.fill('input[name="username"]', 'nkhs1'); await page.fill('input[name="password"]', '123456'); await page.click('button[type="submit"]'); await expect(page.locator('.el-menu')).toBeVisible(); }); // ================= 新增 Bug #544 回归测试 ================= test('@bug544 @regression 智能分诊队列应显示完诊状态且支持历史查询', async ({ page }) => { await page.goto('/triage/queue'); // 1. 验证默认加载当天队列,且包含“完诊”状态患者 await expect(page.locator('.el-table__body tr')).toHaveCountGreaterThan(0); const completedTag = page.getByText('完诊'); await expect(completedTag).toBeVisible(); // 2. 验证历史队列查询入口存在且默认值为当天 const dateRangePicker = page.getByPlaceholder('开始日期'); await expect(dateRangePicker).toBeVisible(); await expect(page.getByPlaceholder('结束日期')).toBeVisible(); // 3. 模拟切换历史日期并查询 await dateRangePicker.click(); await page.getByRole('button', { name: '2026-05-17' }).click(); // 假设历史日期 await page.getByRole('button', { name: '查询' }).click(); // 4. 验证查询后表格刷新且无报错 await expect(page.locator('.el-loading-mask')).toHaveCount(0); await expect(page.locator('.el-table__body tr')).toHaveCountGreaterThan(0); }); // ================= 新增 Bug #574 回归测试 ================= test('@bug574 @regression 预约签到缴费成功后排班号源状态应流转为3', async ({ page }) => { // 1. 登录系统 await page.goto('/login'); await page.fill('input[name="username"]', 'admin'); await page.fill('input[name="password"]', '123456'); await page.click('button[type="submit"]'); await expect(page.locator('.el-menu')).toBeVisible(); // 2. 进入门诊挂号/预约管理页面 await page.goto('/outpatient/registration'); await expect(page.locator('.page-title')).toContainText('门诊挂号'); // 3. 拦截支付成功接口,验证后端返回及状态流转逻辑 let slotStatusUpdated = false; await page.route('**/api/order/pay/success', async (route) => { const response = await route.fetch(); const json = await response.json(); // 模拟业务成功响应 await route.fulfill({ status: 200, contentType: 'application/json', body: JSON.stringify({ code: 200, msg: '缴费成功', data: { success: true } }) }); slotStatusUpdated = true; }); }); // ================= 新增 Bug #550 回归测试 ================= test('@bug550 @regression 检查申请项目选择交互应解耦且支持折叠展示', async ({ page }) => { await page.goto('/outpatient/doctor/exam-apply'); await page.waitForLoadState('networkidle'); // 1. 验证勾选项目时不自动勾选检查方法(解耦) const itemCheckbox = page.locator('.exam-item-list .el-checkbox').first(); await itemCheckbox.click(); const methodCheckbox = page.locator('.exam-method-list .el-checkbox').first(); await expect(methodCheckbox).not.toBeChecked(); // 2. 验证已选卡片无“套餐”前缀且支持完整名称提示 const selectedCard = page.locator('.selected-item-wrapper .item-name').first(); const cardText = await selectedCard.textContent(); expect(cardText).not.toMatch(/^套餐/); await selectedCard.hover(); await expect(page.locator('.el-tooltip__trigger')).toBeVisible(); // 3. 验证默认折叠状态及层级结构(项目 > 检查方法) const methodList = page.locator('.selected-item-wrapper .method-list'); await expect(methodList).toBeHidden(); // 默认收起 await page.locator('.item-header').first().click(); await expect(methodList).toBeVisible(); // 点击展开 });