127 lines
5.7 KiB
TypeScript
127 lines
5.7 KiB
TypeScript
import { test, expect } from '@playwright/test';
|
|
import { LoginPage } from '../pages/LoginPage';
|
|
import { TEST_USERS, TEST_URLS } from '../utils/test-data';
|
|
|
|
test.describe('🏥 手术全流程 E2E', () => {
|
|
let loginPage: LoginPage;
|
|
test.beforeEach(async ({ page }) => { loginPage = new LoginPage(page); await loginPage.goto(); });
|
|
|
|
test('医生-手术管理页面加载', async ({ page }) => {
|
|
await loginPage.login(TEST_USERS.doctor1.username, TEST_USERS.doctor1.password);
|
|
await loginPage.expectLoginSuccess();
|
|
await page.goto(TEST_URLS.surgeryManage);
|
|
await page.waitForLoadState('networkidle');
|
|
await expect(page).not.toHaveURL(/.*login.*/);
|
|
await page.screenshot({ path: 'tests/e2e/report/surgery-manage.png' });
|
|
});
|
|
|
|
test('医生-手术排程页面加载', async ({ page }) => {
|
|
await loginPage.login(TEST_USERS.doctor1.username, TEST_USERS.doctor1.password);
|
|
await loginPage.expectLoginSuccess();
|
|
await page.goto(TEST_URLS.surgicalSchedule);
|
|
await page.waitForLoadState('networkidle');
|
|
await expect(page).not.toHaveURL(/.*login.*/);
|
|
await page.screenshot({ path: 'tests/e2e/report/surgical-schedule.png' });
|
|
});
|
|
|
|
test('专家-术前讨论页面加载', async ({ page }) => {
|
|
await loginPage.login(TEST_USERS.consultant.username, TEST_USERS.consultant.password);
|
|
await loginPage.expectLoginSuccess();
|
|
await page.goto(TEST_URLS.preopDiscussion);
|
|
await page.waitForLoadState('networkidle');
|
|
await expect(page).not.toHaveURL(/.*login.*/);
|
|
await page.screenshot({ path: 'tests/e2e/report/preop-discussion.png' });
|
|
});
|
|
|
|
test('手术室护士-安全核查页面加载', async ({ page }) => {
|
|
await loginPage.login(TEST_USERS.nurseSS.username, TEST_USERS.nurseSS.password);
|
|
await loginPage.expectLoginSuccess();
|
|
await page.goto(TEST_URLS.surgerySafetyCheck);
|
|
await page.waitForLoadState('networkidle');
|
|
await expect(page).not.toHaveURL(/.*login.*/);
|
|
await page.screenshot({ path: 'tests/e2e/report/surgery-safety.png' });
|
|
});
|
|
|
|
test('医生-麻醉管理页面加载', async ({ page }) => {
|
|
await loginPage.login(TEST_USERS.doctor1.username, TEST_USERS.doctor1.password);
|
|
await loginPage.expectLoginSuccess();
|
|
await page.goto(TEST_URLS.anesthesiaEnhanced);
|
|
await page.waitForLoadState('networkidle');
|
|
await expect(page).not.toHaveURL(/.*login.*/);
|
|
await page.screenshot({ path: 'tests/e2e/report/anesthesia-enhanced.png' });
|
|
});
|
|
|
|
test('医生-知情同意页面加载', async ({ page }) => {
|
|
await loginPage.login(TEST_USERS.doctor1.username, TEST_USERS.doctor1.password);
|
|
await loginPage.expectLoginSuccess();
|
|
await page.goto('/informedconsent/consent');
|
|
await page.waitForLoadState('networkidle');
|
|
await expect(page).not.toHaveURL(/.*login.*/);
|
|
await page.screenshot({ path: 'tests/e2e/report/informed-consent.png' });
|
|
});
|
|
});
|
|
|
|
test.describe('🏥 院感全流程 E2E', () => {
|
|
let loginPage: LoginPage;
|
|
test.beforeEach(async ({ page }) => { loginPage = new LoginPage(page); await loginPage.goto(); });
|
|
|
|
test('护士-院感监测页面加载', async ({ page }) => {
|
|
await loginPage.login(TEST_USERS.nurseNK.username, TEST_USERS.nurseNK.password);
|
|
await loginPage.expectLoginSuccess();
|
|
await page.goto(TEST_URLS.infectionSurveillance);
|
|
await page.waitForLoadState('networkidle');
|
|
await expect(page).not.toHaveURL(/.*login.*/);
|
|
await page.screenshot({ path: 'tests/e2e/report/infection-surveillance.png' });
|
|
});
|
|
|
|
test('护士-手卫生页面加载', async ({ page }) => {
|
|
await loginPage.login(TEST_USERS.nurseNK.username, TEST_USERS.nurseNK.password);
|
|
await loginPage.expectLoginSuccess();
|
|
await page.goto(TEST_URLS.infectionHandHygiene);
|
|
await page.waitForLoadState('networkidle');
|
|
await expect(page).not.toHaveURL(/.*login.*/);
|
|
await page.screenshot({ path: 'tests/e2e/report/infection-hand-hygiene.png' });
|
|
});
|
|
|
|
test('护士-环境监测页面加载', async ({ page }) => {
|
|
await loginPage.login(TEST_USERS.nurseNK.username, TEST_USERS.nurseNK.password);
|
|
await loginPage.expectLoginSuccess();
|
|
await page.goto(TEST_URLS.infectionEnvironment);
|
|
await page.waitForLoadState('networkidle');
|
|
await expect(page).not.toHaveURL(/.*login.*/);
|
|
await page.screenshot({ path: 'tests/e2e/report/infection-environment.png' });
|
|
});
|
|
|
|
test('医技-多重耐药监测页面加载', async ({ page }) => {
|
|
await loginPage.login(TEST_USERS.tech.username, TEST_USERS.tech.password);
|
|
await loginPage.expectLoginSuccess();
|
|
await page.goto(TEST_URLS.infectionResistance);
|
|
await page.waitForLoadState('networkidle');
|
|
await expect(page).not.toHaveURL(/.*login.*/);
|
|
await page.screenshot({ path: 'tests/e2e/report/infection-resistance.png' });
|
|
});
|
|
});
|
|
|
|
test.describe('🏥 急诊全流程 E2E', () => {
|
|
let loginPage: LoginPage;
|
|
test.beforeEach(async ({ page }) => { loginPage = new LoginPage(page); await loginPage.goto(); });
|
|
|
|
test('急诊医生-急诊管理页面加载', async ({ page }) => {
|
|
await loginPage.login(TEST_USERS.doctorJZ.username, TEST_USERS.doctorJZ.password);
|
|
await loginPage.expectLoginSuccess();
|
|
await page.goto(TEST_URLS.emergency);
|
|
await page.waitForLoadState('networkidle');
|
|
await expect(page).not.toHaveURL(/.*login.*/);
|
|
await page.screenshot({ path: 'tests/e2e/report/emergency.png' });
|
|
});
|
|
|
|
test('急诊护士-分诊排队页面加载', async ({ page }) => {
|
|
await loginPage.login(TEST_USERS.nurseJZ.username, TEST_USERS.nurseJZ.password);
|
|
await loginPage.expectLoginSuccess();
|
|
await page.goto(TEST_URLS.triageQueue);
|
|
await page.waitForLoadState('networkidle');
|
|
await expect(page).not.toHaveURL(/.*login.*/);
|
|
await page.screenshot({ path: 'tests/e2e/report/triage-queue.png' });
|
|
});
|
|
});
|