diff --git a/packages/components/tree-v2/__tests__/tree.test.ts b/packages/components/tree-v2/__tests__/tree.test.ts index 49a3d0321e..76479cbb3d 100644 --- a/packages/components/tree-v2/__tests__/tree.test.ts +++ b/packages/components/tree-v2/__tests__/tree.test.ts @@ -1176,5 +1176,65 @@ describe('Virtual Tree', () => { }) expect(treeRef.getCurrentKey()).toBe('1-1-2') }) + + test('setCurrentKey', async () => { + const { treeRef, wrapper } = createTree({ + data() { + return { + data: [ + { + id: 0, + label: 'node-0', + }, + { + id: '1', + label: 'node-1', + children: [ + { + id: '1-1', + label: 'node-1-1', + children: [ + { + id: '1-1-1', + label: 'node-1-1-1', + }, + { + id: '1-1-2', + label: 'node-1-1-2', + }, + ], + }, + { + id: '1-2', + label: 'node-1-2', + children: [ + { + id: '1-2-1', + label: 'node-1-2-1', + }, + ], + }, + { + id: '1-3', + label: 'node-1-3', + }, + ], + }, + { + id: '2', + label: 'node-2', + }, + ], + } + }, + }) + await nextTick() + treeRef.setCurrentKey(0) + await nextTick() + const currentKeys = treeRef.getCurrentKey() + const nodes = wrapper.findAll(TREE_NODE_CLASS_NAME) + expect(currentKeys).toBe(0) + expect(nodes[0].classes()).toContain('is-current') + }) }) }) diff --git a/packages/components/tree-v2/src/composables/useTree.ts b/packages/components/tree-v2/src/composables/useTree.ts index f3d109bb41..60ac3d4361 100644 --- a/packages/components/tree-v2/src/composables/useTree.ts +++ b/packages/components/tree-v2/src/composables/useTree.ts @@ -253,7 +253,7 @@ export function useTree( function isCurrent(node: TreeNode): boolean { const current = currentKey.value - return !!current && current === node.key + return current !== undefined && current === node.key } function getCurrentNode(): TreeNodeData | undefined {