Files
his/openhis-ui-vue3/tests/e2e/specs/bug-regression.spec.ts
2026-05-27 07:40:01 +08:00

77 lines
3.2 KiB
TypeScript
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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 } })
});
});
// 4. 执行预约签到及缴费操作
const firstAppointmentRow = page.locator('.el-table__body tr').first();
await firstAppointmentRow.locator('.el-button:has-text("预约签到")').click();
await page.getByRole('button', { name: '确认缴费' }).click();
// 5. 验证界面提示成功
await expect(page.getByText('签到成功')).toBeVisible();
await expect(page.getByText('缴费成功')).toBeVisible();
// 6. 验证号源状态已更新为“已取号/待就诊”对应DB status=3
// 通过刷新列表或查看状态标签确认
await page.reload();
const statusTag = page.locator('.status-tag').filter({ hasText: '已取号' }).first();
await expect(statusTag).toBeVisible();
});