20260915170028
This commit is contained in:
1 parent
d26afb5fec
commit
1f56cc3efb
89 files changed
+1135
-397
No files matched your search
@@ -0,0 +1,84 @@
|
||||
/**
|
||||
* 模块绑定弹层(ModulePickerModal):模块树默认全部收起。
|
||||
*
|
||||
* 回归点:弹层曾用 default-expanded-keys 展开第一层根节点,一打开就铺开整棵树;
|
||||
* 现在不设该 prop,初始只渲染根节点,子节点由用户按需逐层点开。
|
||||
* 折叠态下子树不渲染(tree-node.vue 用 v-if 而非 v-show),因此可直接数 treeitem。
|
||||
*/
|
||||
import { beforeEach, describe, expect, it } from 'vitest'
|
||||
import { flushPromises, mount } from '@vue/test-utils'
|
||||
import { nextTick } from 'vue'
|
||||
import ModulePickerModal from '@/views/module/menu-management/ModulePickerModal.vue'
|
||||
|
||||
const TREE = [
|
||||
{
|
||||
b_id: 'base',
|
||||
b_module_type: 'module',
|
||||
b_name: '基础资料',
|
||||
children: [
|
||||
{
|
||||
b_id: 'base_otherdata',
|
||||
b_module_type: 'module',
|
||||
b_name: '其他数据',
|
||||
children: [{ b_id: 'b_port', b_module_type: 'data', b_name: '港口' }],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
b_id: 'system',
|
||||
b_module_type: 'module',
|
||||
b_name: '系统',
|
||||
children: [{ b_id: 'b_user', b_module_type: 'data', b_name: '用户' }],
|
||||
},
|
||||
]
|
||||
|
||||
const MODULE_TYPES = {
|
||||
base: 'module',
|
||||
base_otherdata: 'module',
|
||||
b_port: 'data',
|
||||
system: 'module',
|
||||
b_user: 'data',
|
||||
}
|
||||
|
||||
async function mountModal(props = {}) {
|
||||
const wrapper = mount(ModulePickerModal, {
|
||||
props: {
|
||||
open: true,
|
||||
treeData: TREE,
|
||||
checkedKeys: [],
|
||||
moduleTypes: MODULE_TYPES,
|
||||
...props,
|
||||
},
|
||||
// Modal 用 Teleport 挂到 body;打桩后内容留在组件树内,便于断言
|
||||
global: { stubs: { teleport: true } },
|
||||
})
|
||||
await flushPromises()
|
||||
await nextTick()
|
||||
return wrapper
|
||||
}
|
||||
|
||||
beforeEach(() => {
|
||||
localStorage.clear()
|
||||
sessionStorage.clear()
|
||||
})
|
||||
|
||||
describe('模块绑定弹层:树默认收起', () => {
|
||||
it('初始只渲染根节点,没有任何节点处于展开态', async () => {
|
||||
const wrapper = await mountModal()
|
||||
|
||||
const items = wrapper.findAll('[role="treeitem"]')
|
||||
expect(items).toHaveLength(TREE.length)
|
||||
expect(items.map((item) => item.attributes('aria-expanded'))).toEqual([
|
||||
'false',
|
||||
'false',
|
||||
])
|
||||
})
|
||||
|
||||
it('折叠态下子节点不渲染', async () => {
|
||||
const wrapper = await mountModal()
|
||||
|
||||
expect(wrapper.text()).toContain('基础资料')
|
||||
expect(wrapper.text()).not.toContain('其他数据')
|
||||
expect(wrapper.text()).not.toContain('港口')
|
||||
})
|
||||
})
|
||||
Reference in new issue
Block a user