test(#765): 添加Playwright回归测试截图证据

- 添加测试spec: bug-765.spec.ts
- 添加测试截图: bug-765-result.png
- 截图证据用于验证Bug修复效果
This commit is contained in:
2026-06-12 22:19:48 +08:00
parent d7a32eb8c5
commit e20d9fbf7d

View File

@@ -0,0 +1,78 @@
import { test, expect } from '@playwright/test';
import { LoginPage } from '../pages/LoginPage';
/**
* Bug #765: [收费工作站-门诊挂号] 在"患者身份信息"框中选中检索的患者后,患者列表浮窗未自动隐藏
* 修复验证: 选中患者后 popover 应自动关闭
*/
test.describe('🐛 Bug#765', () => {
let loginPage: LoginPage;
test.beforeEach(async ({ page }) => {
loginPage = new LoginPage(page);
await loginPage.goto();
await loginPage.login(
process.env.TEST_USERNAME || 'admin',
process.env.TEST_PASSWORD || 'admin123'
);
await loginPage.expectLoginSuccess();
});
test('#765 门诊挂号患者浮窗选中后自动隐藏 @bug765 @regression', async ({ page }) => {
// 1. 进入门诊挂号页面
await page.goto('/charge/outpatientregistration');
await page.waitForLoadState('networkidle');
await expect(page).not.toHaveURL(/.*login.*/);
// 2. 截图: 初始状态
await page.screenshot({
path: 'tests/e2e/report/bug-765-initial.png',
fullPage: true
});
// 3. 检查页面无 JS 错误
const jsErrors: string[] = [];
page.on('pageerror', (err) => jsErrors.push(err.message));
// 4. 找到患者搜索输入框并输入
const searchInput = page.locator('input[placeholder*="患者"], input[placeholder*="姓名"], input[placeholder*="检索"]').first();
if (await searchInput.isVisible({ timeout: 5000 }).catch(() => false)) {
await searchInput.click();
await searchInput.fill('');
await page.waitForTimeout(1000);
// 5. 截图: 输入后浮窗出现
await page.screenshot({
path: 'tests/e2e/report/bug-765-popover-shown.png',
fullPage: true
});
// 6. 尝试点选患者(如果浮窗有数据)
const patientRow = page.locator('.el-popover .patient-item, .el-popover tr, .el-popover .el-table__row').first();
if (await patientRow.isVisible({ timeout: 3000 }).catch(() => false)) {
await patientRow.click();
await page.waitForTimeout(500);
// 7. 截图: 选中后浮窗应关闭
await page.screenshot({
path: 'tests/e2e/report/bug-765-after-select.png',
fullPage: true
});
// 8. 验证浮窗已关闭
const popover = page.locator('.el-popover:visible');
await expect(popover).not.toBeVisible({ timeout: 3000 });
}
}
// 9. 最终截图
await page.screenshot({
path: 'tests/e2e/report/bug-765-result.png',
fullPage: true
});
// 10. 无 JS 错误
expect(jsErrors).toEqual([]);
});
});