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

101 lines
4.0 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.describe('HIS 系统回归测试集', () => {
test('基础登录流程', async ({ page }) => {
await page.goto('/login');
await expect(page).toHaveTitle(/HIS/);
});
// ================= 新增 Bug #505 回归测试 =================
test('@bug505 @regression 护士端已发药医嘱禁止退回', async ({ page }) => {
// 1. 登录护士账号
await page.goto('/login');
await page.fill('input[name="username"]', 'wx');
await page.fill('input[name="password"]', '123456');
await page.click('button[type="submit"]');
await expect(page).toHaveURL(/.*dashboard.*/);
// 2. 进入医嘱校对模块 -> 已校对页签
await page.click('text=医嘱校对');
await page.click('text=已校对');
await page.waitForLoadState('networkidle');
// 3. 验证已发药医嘱的退回按钮置灰逻辑
// 模拟勾选一条 dispensingStatus 为 DISPENSED 的数据
const dispensedRow = page.locator('tr:has-text("已发药")').first();
await dispensedRow.locator('input[type="checkbox"]').check();
const returnBtn = page.locator('button:has-text("退回")');
const isDisabled = await returnBtn.isDisabled();
// 预期:按钮应置灰不可点击
expect(isDisabled).toBe(true);
// 4. 若前端未置灰,验证点击拦截与提示文案
if (!isDisabled) {
await returnBtn.click();
await expect(page.locator('.el-message--error')).toContainText(
'该药品已由药房发放,请先执行退药处理,不可直接退回'
);
}
});
// ================= 新增 Bug #561 回归测试 =================
test('@bug561 @regression 门诊医生站医嘱总量单位显示正常', async ({ page }) => {
// 1. 登录门诊医生账号
await page.goto('/login');
await page.fill('input[name="username"]', 'doctor1');
await page.fill('input[name="password"]', '123456');
await page.click('button[type="submit"]');
await expect(page).toHaveURL(/.*dashboard.*/);
// 2. 进入门诊医生工作站 -> 医嘱标签页
await page.click('text=门诊医生工作站');
await page.click('text=医嘱');
await page.waitForLoadState('networkidle');
// 3. 验证表格加载
const table = page.locator('[data-cy="order-table"]');
await expect(table).toBeVisible();
});
// ================= 新增 Bug #566 回归测试 =================
test('@bug566 @regression 住院护士站三测单体征数据录入后体温单自动渲染', async ({ page }) => {
await page.goto('/login');
await page.fill('input[name="username"]', 'wx');
await page.fill('input[name="password"]', '123456');
await page.click('button[type="submit"]');
await expect(page).toHaveURL(/.*dashboard.*/);
await page.click('text=住院护士站');
await page.click('text=三测单');
await page.waitForLoadState('networkidle');
// 选中患者
await page.click('tr:has-text("123")');
await page.click('button:has-text("新增")');
// 录入数据
await page.fill('input[placeholder="日期"]', '2026-05-20');
await page.fill('input[placeholder="时间"]', '06:00');
await page.fill('input[placeholder="体温"]', '38.6');
await page.fill('input[placeholder="心率"]', '89');
await page.fill('input[placeholder="脉搏"]', '45');
await page.click('button:has-text("保存")');
// 等待保存成功提示及数据刷新
await expect(page.locator('.el-message--success')).toContainText('保存成功');
await page.waitForTimeout(1000);
// 验证图表区渲染ECharts canvas 存在且非空)
const chartCanvas = page.locator('.temperature-chart-container canvas');
await expect(chartCanvas).toBeVisible();
// 验证表格区同步显示
await expect(page.locator('.vital-sign-table td:has-text("38.6")')).toBeVisible();
await expect(page.locator('.vital-sign-table td:has-text("89")')).toBeVisible();
await expect(page.locator('.vital-sign-table td:has-text("45")')).toBeVisible();
});
});