diff --git a/packages/components/table/__tests__/table.test.ts b/packages/components/table/__tests__/table.test.ts index 7083ae67b2..5ec734e6b0 100644 --- a/packages/components/table/__tests__/table.test.ts +++ b/packages/components/table/__tests__/table.test.ts @@ -1722,6 +1722,92 @@ describe('Table.vue', () => { expect(spy.mock.calls[0][1]).toBeTruthy() }) + it('tree-props & default-expand-all with dynamic data', async () => { + wrapper = mount({ + components: { + ElTable, + ElTableColumn, + }, + template: ` + + + + + + + `, + data() { + return { + testData: [], + } + }, + methods: { + setData() { + this.testData = [ + { + id: 1, + name: 'Toy Story', + release: '1995-11-22', + director: 'John Lasseter', + runtime: 80, + children: [ + { + id: 11, + name: 'Toy Story', + release: '1995-11-22', + director: 'John Lasseter', + runtime: 80, + }, + { + id: 12, + name: 'Toy Story', + release: '1995-11-22', + director: 'John Lasseter', + runtime: 80, + }, + ], + }, + { + id: 2, + name: "A Bug's Life", + release: '1998-11-25', + director: 'John Lasseter', + runtime: 95, + children: [ + { + id: 21, + name: "A Bug's Life", + release: '1998-11-25', + director: 'John Lasseter', + runtime: 95, + }, + { + id: 22, + name: "A Bug's Life", + release: '1998-11-25', + director: 'John Lasseter', + runtime: 95, + }, + ], + }, + ] + }, + }, + }) + await doubleWait() + let childRows = wrapper.findAll('.el-table__row--level-1') + expect(childRows.length).toEqual(0) + wrapper.vm.setData() + await doubleWait() + + childRows = wrapper.findAll('.el-table__row--level-1') + childRows.forEach((item) => { + expect(item.attributes('style')).toBeUndefined() + }) + }) + it('tree-props & default-expand-all & shrink & edit-value', async () => { wrapper = mount({ components: { diff --git a/packages/components/table/src/store/tree.ts b/packages/components/table/src/store/tree.ts index 03adcfbc90..92bd360230 100644 --- a/packages/components/table/src/store/tree.ts +++ b/packages/components/table/src/store/tree.ts @@ -148,6 +148,7 @@ function useTree(watcherData: WatcherPropsData) { watch( () => normalizedData.value, () => { + isInitTree = true updateTreeData() } )