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

115 lines
4.1 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';
// 历史回归测试用例占位...
describe('Historical Regression Tests', () => {
it('should pass existing outpatient flow', () => {
cy.visit('/outpatient/dashboard');
cy.get('#patient-search').type('测试患者');
cy.contains('查询').click();
});
});
// @bug550 @regression
describe('Bug #550: 检查申请项目选择交互优化', () => {
beforeEach(() => {
cy.visit('/outpatient/examination-apply');
// 模拟接口返回数据
cy.intercept('GET', '/api/examination/categories', { fixture: 'categories.json' }).as('getCategories');
cy.intercept('GET', '/api/examination/items', { fixture: 'items.json' }).as('getItems');
cy.intercept('GET', '/api/examination/methods', { fixture: 'methods.json' }).as('getMethods');
});
it('1. 联动解耦:勾选项目不应自动勾选检查方法', () => {
cy.wait(['@getCategories', '@getItems', '@getMethods']);
cy.get('.category-tree').contains('彩超').click();
cy.get('.item-list').find('label').contains('128线排').click();
// 验证方法区域保持未勾选状态
cy.get('.method-list').find('input[type="checkbox"]').each(($el) => {
cy.wrap($el).should('not.be.checked');
});
});
it('2. 卡片显示优化:名称完整提示、去除冗余前缀、默认收起', () => {
cy.wait(['@getCategories', '@getItems', '@getMethods']);
cy.get('.category-tree').contains('彩超').click();
cy.get('.item-list').find('label').contains('128线排').click();
// 验证已选择区域默认收起
cy.get('.selected-card .card-body').should('not.be.visible');
// 验证去除“套餐”字样
cy.get('.selected-card .card-title').should('not.contain', '套餐');
// 验证 hover 显示完整名称
cy.get('.selected-card .card-title').should('have.attr', 'title', '128线排');
});
it('3. 结构化展示:严格遵循 项目 > 方法 层级,无冗余标签', () => {
cy.wait(['@getCategories', '@getItems', '@getMethods']);
cy.get('.category-tree').contains('彩超').click();
cy.get('.item-list').find('label').contains('128线排').click();
// 展开明细
cy.get('.selected-card .card-header').click();
cy.get('.selected-card .card-body').should('be.visible');
// 验证层级结构:方法缩进显示在父项目下
cy.get('.selected-card .card-body .method-row').should('have.length.greaterThan', 0);
// 验证已删除“项目套餐明细”冗余标签
});
});
// @bug561 @regression
describe('Bug #561: 医嘱总量单位显示异常修复', () => {
beforeEach(() => {
cy.visit('/outpatient/doctor-workstation');
// 模拟正常返回配置单位的医嘱数据
cy.intercept('GET', '/api/outpatient/orders*', {
statusCode: 200,
body: {
code: 200,
data: {
list: [
{
id: 1001,
catalogItemId: 501,
catalogItemName: '超声切骨刀辅助操作',
totalQuantity: 1,
quantityUnit: '次',
status: 'OPEN'
}
],
total: 1
}
}
}).as('getOrders');
});
it('1. 验证总量单位正确显示为诊疗目录配置值而非null', () => {
cy.wait('@getOrders');
// 验证表格中显示 "1 次"
cy.get('.order-table').contains('td', '1 次').should('exist');
// 严格拦截 "1 null" 的渲染
cy.get('.order-table').contains('td', '1 null').should('not.exist');
});
it('2. 验证目录未配置单位时的降级处理不显示字符串null', () => {
cy.intercept('GET', '/api/outpatient/orders*', {
statusCode: 200,
body: {
code: 200,
data: {
list: [{ id: 1002, catalogItemName: '未配置单位项目', totalQuantity: 2, quantityUnit: null, status: 'OPEN' }],
total: 1
}
}
}).as('getOrdersNullUnit');
cy.visit('/outpatient/doctor-workstation');
cy.wait('@getOrdersNullUnit');
// 后端已兜底为空字符串,前端不应渲染出 "2 null"
cy.get('.order-table').contains('td', '2 null').should('not.exist');
});
});