diff --git a/packages/dockview-core/src/__tests__/gridview/gridviewComponent.spec.ts b/packages/dockview-core/src/__tests__/gridview/gridviewComponent.spec.ts index 3063c692d..2efe570c7 100644 --- a/packages/dockview-core/src/__tests__/gridview/gridviewComponent.spec.ts +++ b/packages/dockview-core/src/__tests__/gridview/gridviewComponent.spec.ts @@ -198,6 +198,8 @@ describe('gridview', () => { }, }); + expect(container.querySelectorAll('.dv-grid-view').length).toBe(1); + gridview.layout(800, 400); gridview.fromJSON({ grid: { @@ -242,6 +244,9 @@ describe('gridview', () => { }, activePanel: 'panel_1', }); + + expect(container.querySelectorAll('.dv-grid-view').length).toBe(1); + gridview.layout(800, 400, true); const panel1 = gridview.getPanel('panel_1')!; diff --git a/packages/dockview-core/src/__tests__/paneview/paneviewComponent.spec.ts b/packages/dockview-core/src/__tests__/paneview/paneviewComponent.spec.ts index a30f73fd5..6b1678d19 100644 --- a/packages/dockview-core/src/__tests__/paneview/paneviewComponent.spec.ts +++ b/packages/dockview-core/src/__tests__/paneview/paneviewComponent.spec.ts @@ -180,6 +180,8 @@ describe('componentPaneview', () => { }, }); + expect(container.querySelectorAll('.dv-pane-container').length).toBe(1); + paneview.fromJSON({ size: 6, views: [ @@ -212,6 +214,8 @@ describe('componentPaneview', () => { ], }); + expect(container.querySelectorAll('.dv-pane-container').length).toBe(1); + paneview.layout(400, 800); const panel1 = paneview.getPanel('panel1'); diff --git a/packages/dockview-core/src/__tests__/splitview/splitviewComponent.spec.ts b/packages/dockview-core/src/__tests__/splitview/splitviewComponent.spec.ts index 6c034091c..3f154f364 100644 --- a/packages/dockview-core/src/__tests__/splitview/splitviewComponent.spec.ts +++ b/packages/dockview-core/src/__tests__/splitview/splitviewComponent.spec.ts @@ -395,6 +395,10 @@ describe('componentSplitview', () => { }); splitview.layout(400, 6); + expect( + container.querySelectorAll('.dv-split-view-container').length + ).toBe(1); + splitview.fromJSON({ views: [ { @@ -414,6 +418,10 @@ describe('componentSplitview', () => { activeView: 'panel1', }); + expect( + container.querySelectorAll('.dv-split-view-container').length + ).toBe(1); + expect(splitview.length).toBe(3); expect(JSON.parse(JSON.stringify(splitview.toJSON()))).toEqual({ diff --git a/packages/dockview-core/src/splitview/splitviewComponent.ts b/packages/dockview-core/src/splitview/splitviewComponent.ts index b97855f58..ed76122f0 100644 --- a/packages/dockview-core/src/splitview/splitviewComponent.ts +++ b/packages/dockview-core/src/splitview/splitviewComponent.ts @@ -122,6 +122,10 @@ export class SplitviewComponent } set splitview(value: Splitview) { + if (this._splitview) { + this._splitview.dispose(); + } + this._splitview = value; this._splitviewChangeDisposable.value = new CompositeDisposable(