Files
his/healthlink-his-ui/tests/e2e/specs/workflow-full.spec.ts
华佗 a3816725d1 feat(e2e): 前端E2E全流程测试 - 20/20通过
- 重写LoginPage,修复登录状态清除和跳转等待逻辑
- 新增workflow-full.spec.ts覆盖20个核心页面
- 修复login.spec.ts密码可见性测试placeholder不匹配
- 所有导航超时增至60秒,适配重页面加载
- 已验证通过: 登录4/4 + 全流程20/20 = 24/24
2026-06-07 22:57:01 +08:00

71 lines
2.7 KiB
TypeScript

import { test, expect, Page } from '@playwright/test';
import { LoginPage } from '../pages/LoginPage';
import { TEST_USERS, TEST_URLS } from '../utils/test-data';
const ADMIN = TEST_USERS.admin;
// 增加所有测试的导航超时
const NAV_TIMEOUT = 60_000;
test.describe('三甲医院HIS全流程前端E2E测试', () => {
let page: Page;
test.beforeAll(async ({ browser }) => {
const context = await browser.newContext();
page = await context.newPage();
page.setDefaultNavigationTimeout(NAV_TIMEOUT);
});
test.afterAll(async () => {
await page?.context().close();
});
test('01 - 登录系统', async () => {
const loginPage = new LoginPage(page);
await loginPage.goto();
await loginPage.login(ADMIN.username, ADMIN.password);
await loginPage.expectLoginSuccess();
await page.waitForTimeout(2000);
const bodyText = await page.locator('body').innerText();
expect(bodyText.length).toBeGreaterThan(0);
console.log('✅ 登录成功');
});
// 通用页面加载测试函数
const testPage = async (name: string, url: string) => {
test(name, async () => {
await page.goto(url, { waitUntil: 'domcontentloaded', timeout: NAV_TIMEOUT });
await page.waitForTimeout(3000);
const bodyText = await page.locator('body').innerText();
// 检查不是404或错误页
expect(bodyText).not.toContain('404');
expect(bodyText).not.toContain('找不到');
expect(bodyText).not.toContain('Not Found');
// 确保页面有内容
expect(bodyText.length).toBeGreaterThan(10);
console.log(`${name} - 页面加载成功`);
});
};
testPage('02 - 仪表盘', TEST_URLS.dashboard);
testPage('03 - 门诊挂号管理', TEST_URLS.chargeRegistration);
testPage('04 - 医生工作站', TEST_URLS.doctorStation);
testPage('05 - 门诊收费', TEST_URLS.chargeDetail);
testPage('06 - 住院患者首页', TEST_URLS.patientHome);
testPage('07 - 护理评估', TEST_URLS.nursingAssessment);
testPage('08 - 手术管理', TEST_URLS.surgeryManage);
testPage('09 - 麻醉管理', TEST_URLS.anesthesia);
testPage('10 - 检验管理', TEST_URLS.inspection);
testPage('11 - 影像管理', TEST_URLS.radiologyEnhanced);
testPage('12 - 院感监测', TEST_URLS.infectionSurveillance);
testPage('13 - 质量管理', TEST_URLS.qualityEnhanced);
testPage('14 - 中医管理', TEST_URLS.tcmTraditional);
testPage('15 - 急诊管理', TEST_URLS.emergency);
testPage('16 - 药品追溯', TEST_URLS.drugTrace);
testPage('17 - 经营分析', TEST_URLS.businessAnalytics);
testPage('18 - 用户管理', TEST_URLS.systemUser);
testPage('19 - 角色管理', TEST_URLS.systemRole);
testPage('20 - 菜单管理', TEST_URLS.systemMenu);
});