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.finance.username, TEST_USERS.finance.password); await loginPage.expectLoginSuccess(); await page.goto(TEST_URLS.chargeRegistration); await page.waitForLoadState('networkidle'); await expect(page).not.toHaveURL(/.*login.*/); await page.screenshot({ path: 'tests/e2e/report/outpatient-registration.png' }); }); test('收费员-收费页面加载', async ({ page }) => { await loginPage.login(TEST_USERS.finance.username, TEST_USERS.finance.password); await loginPage.expectLoginSuccess(); await page.goto(TEST_URLS.chargeDetail); await page.waitForLoadState('networkidle'); await expect(page).not.toHaveURL(/.*login.*/); await page.screenshot({ path: 'tests/e2e/report/outpatient-charge.png' }); }); test('收费员-退费页面加载', async ({ page }) => { await loginPage.login(TEST_USERS.finance.username, TEST_USERS.finance.password); await loginPage.expectLoginSuccess(); await page.goto(TEST_URLS.chargeRefund); await page.waitForLoadState('networkidle'); await expect(page).not.toHaveURL(/.*login.*/); await page.screenshot({ path: 'tests/e2e/report/outpatient-refund.png' }); }); test('医生-门诊医生站页面加载', async ({ page }) => { await loginPage.login(TEST_USERS.doctor1.username, TEST_USERS.doctor1.password); await loginPage.expectLoginSuccess(); await page.goto(TEST_URLS.doctorStation); await page.waitForLoadState('networkidle'); await expect(page).not.toHaveURL(/.*login.*/); await page.screenshot({ path: 'tests/e2e/report/doctor-station.png' }); }); test('医技-检验检查页面加载', async ({ page }) => { await loginPage.login(TEST_USERS.tech.username, TEST_USERS.tech.password); await loginPage.expectLoginSuccess(); await page.goto(TEST_URLS.inspection); await page.waitForLoadState('networkidle'); await expect(page).not.toHaveURL(/.*login.*/); await page.screenshot({ path: 'tests/e2e/report/inspection.png' }); }); test('药师-药品库存预警页面加载', async ({ page }) => { await loginPage.login(TEST_USERS.pharmacist.username, TEST_USERS.pharmacist.password); await loginPage.expectLoginSuccess(); await page.goto(TEST_URLS.pharmacyStockAlert); await page.waitForLoadState('networkidle'); await expect(page).not.toHaveURL(/.*login.*/); await page.screenshot({ path: 'tests/e2e/report/pharmacy-stock.png' }); }); });