From 665cc59b1968249b99fdef632993c9ea927e2dab Mon Sep 17 00:00:00 2001 From: zepeng <75007029+yj-liuzepeng@users.noreply.github.com> Date: Mon, 14 Aug 2023 12:49:36 +0800 Subject: [PATCH] fix(components): [tree-v2] modify the condition for when the value of currentKey is 0 (#13935) * modify the condition for when the value of currentKey is 0 * add a test case * add a test case * add a test case * Update packages/components/tree-v2/__tests__/tree.test.ts Co-authored-by: btea <2356281422@qq.com> * Update packages/components/tree-v2/__tests__/tree.test.ts Co-authored-by: btea <2356281422@qq.com> * Update packages/components/tree-v2/__tests__/tree.test.ts Co-authored-by: btea <2356281422@qq.com> --------- Co-authored-by: btea <2356281422@qq.com> --- .../components/tree-v2/__tests__/tree.test.ts | 60 +++++++++++++++++++ .../tree-v2/src/composables/useTree.ts | 2 +- 2 files changed, 61 insertions(+), 1 deletion(-) 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 {