115 lines
4.1 KiB
TypeScript
Executable File
115 lines
4.1 KiB
TypeScript
Executable File
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');
|
||
});
|
||
});
|