diff --git a/packages/components/tree/__tests__/tree.test.ts b/packages/components/tree/__tests__/tree.test.ts index 263c78ba6f..4ace727b23 100644 --- a/packages/components/tree/__tests__/tree.test.ts +++ b/packages/components/tree/__tests__/tree.test.ts @@ -4,6 +4,7 @@ import { mount } from '@vue/test-utils' import { describe, expect, test, vi } from 'vitest' import defineGetter from '@element-plus/test-utils/define-getter' import Tree from '../src/tree.vue' +import Button from '../../button/src/button.vue' import type Node from '../src/model/node' const ALL_NODE_COUNT = 9 @@ -521,7 +522,7 @@ describe('Tree.vue', () => { expect(tree.getCheckedNodes().length).toEqual(0) expect(tree.getCheckedKeys().length).toEqual(0) }) - 69 + test('setCheckedKeys with leafOnly=false', async () => { const { wrapper } = getTreeVm( `:props="defaultProps" show-checkbox node-key="id"` @@ -1310,6 +1311,104 @@ describe('Tree.vue', () => { expect(flag).toBe(true) }) + test('custom children and label', async () => { + const wrapper = mount({ + template: ` +
+ + add +
+ `, + components: { + 'el-tree': Tree, + 'el-button': Button, + }, + data() { + return { + data: [ + { + id: 1, + l: '一级 1', + c: [ + { + id: 11, + l: '二级 1-1', + c: [ + { + id: 111, + l: '三级 1-1', + }, + ], + }, + ], + }, + { + id: 2, + l: '一级 2', + c: [ + { + id: 21, + l: '二级 2-1', + }, + { + id: 22, + l: '二级 2-2', + }, + ], + }, + { + id: 3, + l: '一级 3', + c: [ + { + id: 31, + l: '二级 3-1', + }, + { + id: 32, + l: '二级 3-2', + }, + ], + }, + ], + defaultProps: { + children: 'c', + label: 'l', + }, + } + }, + methods: { + addNewNode() { + this.data[0].c.push({ + id: 12, + l: 'new node', + }) + }, + }, + }) + const tree = wrapper.findComponent({ name: 'ElTree' }) + const button = wrapper.findComponent({ name: 'ElButton' }) + const firstNode = wrapper.find('.el-tree-node') + + expect(tree.vm.getNode(1).data.l).toEqual('一级 1') + expect(tree.vm.getNode(1).data.c[0].l).toEqual('二级 1-1') + + firstNode.trigger('click') + await nextTick() + + const firstChildrenNode = firstNode.element.querySelector( + '.el-tree-node__children' + ) + expect(firstChildrenNode.children.length).toEqual(1) + + button.trigger('click') + await nextTick() + + expect(tree.vm.getNode(1).data.c[1].l).toEqual('new node') + expect(firstChildrenNode.children.length).toEqual(2) + expect(firstChildrenNode.children[1].textContent).toEqual('new node') + }) + test('navigate with lazy and without node-key', async () => { const wrapper = mount({ template: `