20260914172820
This commit is contained in:
1 parent
c31329d387
commit
549c8bd2eb
38 files changed
+3430
-502
No files matched your search
@@ -5,6 +5,8 @@
|
||||
* (表现为 "Component inside <Transition> renders non-element root node" +
|
||||
* "Cannot set properties of null (setting '__vnode')")。
|
||||
* 修复:watch(menuSelectedId) 对未落库节点不走 loadMenuConfig,从树节点重建草稿。
|
||||
*
|
||||
* 临时 id 现由 createTempId() 生成本地负数(不再取号),断言按实际值 -1 校验。
|
||||
*/
|
||||
import { describe, it, expect, beforeEach, vi } from 'vitest'
|
||||
import { flushPromises } from '@vue/test-utils'
|
||||
@@ -28,9 +30,11 @@ import { loadDataApi } from '@/services/api'
|
||||
const savedMenu = {
|
||||
b_id: '1',
|
||||
b_code: 'home',
|
||||
b_parent_id: null,
|
||||
b_depth: 0,
|
||||
b_path: '/1/',
|
||||
b_name: '首页',
|
||||
b_menu_type: 'page',
|
||||
b_parent_id: null,
|
||||
b_route: '/dashboard',
|
||||
b_xh: 10,
|
||||
b_canuse: 1,
|
||||
@@ -40,8 +44,10 @@ beforeEach(() => {
|
||||
loadDataApi.mockReset()
|
||||
loadDataApi.mockImplementation((view, where) => {
|
||||
if (view === 's_menu' && where === '1 = 1') return Promise.resolve({ data: [savedMenu] })
|
||||
if (view === 's_menu' && where === 'b_id = 1') return Promise.resolve({ data: [savedMenu] })
|
||||
if (view === 's_menu') return Promise.resolve({ data: [] }) // 含 b_id = 9001(临时 id):查无此行
|
||||
// 加载单行用 sqlText 拼的 N'1' 字面量
|
||||
if (view === 's_menu' && where === "b_id = N'1'")
|
||||
return Promise.resolve({ data: [savedMenu] })
|
||||
if (view === 's_menu') return Promise.resolve({ data: [] }) // 含本地临时 id(负数):查无此行
|
||||
return Promise.resolve({ data: [] })
|
||||
})
|
||||
})
|
||||
@@ -54,7 +60,7 @@ describe('菜单管理:未保存新节点来回切换', () => {
|
||||
// 1. 新建节点(未保存)
|
||||
await wrapper.vm.addMenu(null, 'page')
|
||||
await flushPromises()
|
||||
expect(String(wrapper.vm.menuSelectedId)).toBe('9001')
|
||||
expect(String(wrapper.vm.menuSelectedId)).toBe('-1')
|
||||
expect(wrapper.vm.maindata?.b_menu_type).toBe('page')
|
||||
|
||||
// 2. 切到旧节点(已保存)
|
||||
@@ -64,14 +70,14 @@ describe('菜单管理:未保存新节点来回切换', () => {
|
||||
|
||||
// 3. 切回新节点:不应对临时 id 发起查库请求
|
||||
loadDataApi.mockClear()
|
||||
wrapper.vm.menuSelectedId = '9001'
|
||||
wrapper.vm.menuSelectedId = '-1'
|
||||
await flushPromises()
|
||||
await flushPromises()
|
||||
|
||||
expect(loadDataApi).not.toHaveBeenCalled()
|
||||
expect(wrapper.vm.maindata).not.toBeNull()
|
||||
expect(String(wrapper.vm.maindata?.b_id)).toBe('9001')
|
||||
expect(String(wrapper.vm.maindata?.b_id)).toBe('-1')
|
||||
expect(wrapper.vm.maindata?.b_menu_type).toBe('page')
|
||||
expect(String(wrapper.vm.loadedMenuId)).toBe('9001')
|
||||
expect(String(wrapper.vm.loadedMenuId)).toBe('-1')
|
||||
})
|
||||
})
|
||||
Reference in new issue
Block a user