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

83 lines
3.3 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 { describe, it, cy } from 'cypress';
// 假设文件原有内容在此处保留...
// @bug550 @regression
describe('Bug #550 Regression: 门诊检查申请项目选择交互优化', () => {
beforeEach(() => {
cy.visit('/outpatient/check-application');
cy.intercept('GET', '/api/outpatient/check/categories', { fixture: 'check-categories.json' }).as('getCategories');
cy.intercept('GET', '/api/outpatient/check/projects', { fixture: 'check-projects.json' }).as('getProjects');
});
it('应解耦项目与检查方法勾选,卡片显示完整名称且默认收起,层级结构清晰', () => {
// 1. 展开分类并勾选项目
cy.get('.category-tree').contains('彩超').click();
cy.wait('@getProjects');
cy.get('.project-list').contains('128线排').click();
// 验证解耦:勾选项目不应自动勾选下方检查方法
cy.get('.method-panel input[type="checkbox"]').should('not.be.checked');
// 2. 验证已选卡片显示
cy.get('.selected-card').should('be.visible');
cy.get('.selected-card .card-title').should('contain', '128线排');
cy.get('.selected-card .card-title').should('not.contain', '套餐'); // 冗余前缀已移除
cy.get('.selected-card .card-title').should('have.attr', 'title'); // 悬停显示完整名称
// 3. 验证默认收起状态与展开交互
cy.get('.selected-card .details-wrapper').should('not.be.visible'); // 默认收起
cy.get('.selected-card .expand-toggle').click();
cy.get('.selected-card .details-wrapper').should('be.visible');
// 4. 验证层级结构与冗余标签清理
cy.get('.details-wrapper').should('contain', '检查项目 > 检查方法');
cy.get('.redundant-label').should('not.exist'); // "项目套餐明细" 标签已移除
// 5. 验证方法独立勾选
cy.get('.details-wrapper').contains('常规扫查').click();
cy.get('.details-wrapper input[type="checkbox"]').first().should('be.checked');
});
});
// @bug562 @regression
describe('Bug #562 Regression: 门诊医生工作站-待写病历加载性能优化', () => {
beforeEach(() => {
cy.visit('/outpatient/doctor/pending-records');
cy.intercept('GET', '/api/outpatient/medical-records/pending*', {
statusCode: 200,
delay: 800, // 模拟真实网络延迟
body: {
code: 200,
data: {
list: Array(15).fill(null).map((_, i) => ({
id: i + 1,
patientName: `患者${i + 1}`,
visitDate: '2026-05-20',
status: 'PENDING'
})),
total: 15
}
}
}).as('getPendingRecords');
});
it('待写病历列表应在2秒内完成加载并正确渲染分页', () => {
cy.clock();
cy.visit('/outpatient/doctor/pending-records');
cy.wait('@getPendingRecords');
cy.tick(1500); // 推进1.5秒验证是否在2秒阈值内完成渲染
cy.get('.pending-records-container').should('be.visible');
cy.get('.el-table__body-wrapper').should('be.visible');
cy.get('.el-table__row').should('have.length.at.least', 1);
cy.get('.loading-mask').should('not.exist');
// 验证分页组件存在且可交互
cy.get('.el-pagination').should('be.visible');
cy.get('.el-pager li').contains('2').click();
cy.wait('@getPendingRecords');
cy.get('.el-table__row').should('have.length.at.least', 1);
});
});