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

65 lines
2.6 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, expect } from 'vitest'
import { mount } from '@vue/test-utils'
import ExamApply from '@/views/outpatient/exam/ExamApply.vue'
// @bug550 @regression
describe('Bug #550: 检查申请项目选择交互优化', () => {
it('应解耦项目与检查方法勾选,已选卡片默认收起且去除套餐前缀', async () => {
const wrapper = mount(ExamApply, {
global: {
stubs: ['el-tree', 'el-checkbox', 'el-icon']
}
})
// 1. 模拟数据注入
await wrapper.setData({
currentItems: [{ id: 1, name: '128线排彩超', checked: false }],
currentMethods: [{ id: 101, name: '常规检查', projectId: 1, checked: false }]
})
// 2. 勾选项目,验证检查方法不自动联动
const itemCard = wrapper.find('.item-card')
await itemCard.trigger('click')
expect(wrapper.vm.currentItems[0].checked).toBe(true)
expect(wrapper.vm.currentMethods[0].checked).toBe(false) // 解耦验证
// 3. 验证已选区域默认收起状态
const selectedGroup = wrapper.find('.selected-group')
expect(selectedGroup.exists()).toBe(true)
expect(wrapper.find('.selected-methods').isVisible()).toBe(false) // 默认收起验证
// 4. 验证名称清理(去除套餐前缀)与完整提示
const nameSpan = wrapper.find('.selected-group-header .item-name')
expect(nameSpan.text()).not.toContain('套餐')
expect(nameSpan.attributes('title')).toBeTruthy() // 自适应宽度提示验证
// 5. 点击展开验证父子层级结构
await wrapper.find('.selected-group-header').trigger('click')
expect(wrapper.find('.selected-methods').isVisible()).toBe(true)
expect(wrapper.find('.method-item').exists()).toBe(true) // 项目 > 检查方法 层级验证
})
})
// @bug561 @regression
describe('Bug #561: 医嘱总量单位显示修复', () => {
it('应正确映射诊疗目录的使用单位至医嘱详情避免显示null', () => {
// 模拟后端返回的医嘱DTO数据结构修复前 unit 为 null
const orderDetailDto = {
id: 1001,
catalogItemId: 55,
itemName: '超声切骨刀辅助操作',
totalQuantity: 1,
unit: '次' // 修复后应正确读取诊疗目录配置值
}
// 验证单位字段非空且非字符串 "null"
expect(orderDetailDto.unit).toBeDefined()
expect(orderDetailDto.unit).not.toBe('null')
expect(orderDetailDto.unit).toBe('次')
// 模拟前端模板拼接显示逻辑
const displayText = `${orderDetailDto.totalQuantity} ${orderDetailDto.unit}`
expect(displayText).toBe('1 次')
})
})