From abaad37edd5eb3da45e18f2d15c3ff27b9d06765 Mon Sep 17 00:00:00 2001 From: mathuo <6710312+mathuo@users.noreply.github.com> Date: Mon, 13 May 2024 18:11:24 +0100 Subject: [PATCH] chore: cleanup internals --- .../__tests__/dockview/dockviewPanel.spec.ts | 162 ++++++------------ .../src/dockview/dockviewPanel.ts | 12 +- .../dockview/src/dockview/reactContentPart.ts | 2 +- .../dockview/src/dockview/reactHeaderPart.ts | 2 +- 4 files changed, 58 insertions(+), 120 deletions(-) diff --git a/packages/dockview-core/src/__tests__/dockview/dockviewPanel.spec.ts b/packages/dockview-core/src/__tests__/dockview/dockviewPanel.spec.ts index 5298a575f..fd79e1a60 100644 --- a/packages/dockview-core/src/__tests__/dockview/dockviewPanel.spec.ts +++ b/packages/dockview-core/src/__tests__/dockview/dockviewPanel.spec.ts @@ -7,24 +7,8 @@ import { fromPartial } from '@total-typescript/shoehorn'; describe('dockviewPanel', () => { test('update title', () => { - const dockviewApiMock = jest.fn(() => { - return { - onDidActiveChange: jest.fn(), - } as any; - }); - const accessorMock = jest.fn(() => { - return {} as any; - }); - - const panelModelMock = jest.fn, []>(() => { - return { - update: jest.fn(), - init: jest.fn(), - }; - }); - - const api = new dockviewApiMock(); - const accessor = new accessorMock(); + const api = fromPartial({}); + const accessor = fromPartial({}); const group = fromPartial({ api: { onDidVisibilityChange: jest.fn(), @@ -32,7 +16,11 @@ describe('dockviewPanel', () => { onDidActiveChange: jest.fn(), }, }); - const model = new panelModelMock(); + const model = fromPartial({ + update: jest.fn(), + init: jest.fn(), + dispose: jest.fn(), + }); const cut = new DockviewPanel( 'fake-id', @@ -67,23 +55,8 @@ describe('dockviewPanel', () => { }); test('that .setTitle updates the title', () => { - const dockviewApiMock = jest.fn(() => { - return { - onDidActiveChange: jest.fn(), - } as any; - }); - const accessorMock = jest.fn(() => { - return {} as any; - }); - const panelModelMock = jest.fn, []>(() => { - return { - update: jest.fn(), - init: jest.fn(), - }; - }); - - const api = new dockviewApiMock(); - const accessor = new accessorMock(); + const api = fromPartial({}); + const accessor = fromPartial({}); const group = fromPartial({ api: { onDidVisibilityChange: jest.fn(), @@ -91,7 +64,10 @@ describe('dockviewPanel', () => { onDidActiveChange: jest.fn(), }, }); - const model = new panelModelMock(); + const model = fromPartial({ + update: jest.fn(), + init: jest.fn(), + }); const cut = new DockviewPanel( 'fake-id', @@ -117,22 +93,8 @@ describe('dockviewPanel', () => { }); test('dispose cleanup', () => { - const dockviewApiMock = jest.fn(() => { - return {} as any; - }); - const accessorMock = jest.fn(() => { - return {} as any; - }); - const panelModelMock = jest.fn, []>(() => { - return { - update: jest.fn(), - init: jest.fn(), - dispose: jest.fn(), - }; - }); - - const api = new dockviewApiMock(); - const accessor = new accessorMock(); + const api = fromPartial({}); + const accessor = fromPartial({}); const group = fromPartial({ api: { onDidVisibilityChange: jest @@ -146,7 +108,11 @@ describe('dockviewPanel', () => { .mockReturnValue({ dispose: jest.fn() }), }, }); - const model = new panelModelMock(); + const model = fromPartial({ + update: jest.fn(), + init: jest.fn(), + dispose: jest.fn(), + }); const cut = new DockviewPanel( 'fake-id', @@ -169,22 +135,8 @@ describe('dockviewPanel', () => { }); test('get params', () => { - const dockviewApiMock = jest.fn(() => { - return {} as any; - }); - const accessorMock = jest.fn(() => { - return {} as any; - }); - const panelModelMock = jest.fn, []>(() => { - return { - update: jest.fn(), - init: jest.fn(), - dispose: jest.fn(), - }; - }); - - const api = new dockviewApiMock(); - const accessor = new accessorMock(); + const api = fromPartial({}); + const accessor = fromPartial({}); const group = fromPartial({ api: { onDidVisibilityChange: jest.fn(), @@ -192,7 +144,11 @@ describe('dockviewPanel', () => { onDidActiveChange: jest.fn(), }, }); - const model = new panelModelMock(); + const model = fromPartial({ + update: jest.fn(), + init: jest.fn(), + dispose: jest.fn(), + }); const cut = new DockviewPanel( 'fake-id', @@ -215,22 +171,8 @@ describe('dockviewPanel', () => { }); test('setSize propagates to underlying group', () => { - const dockviewApiMock = jest.fn(() => { - return {} as any; - }); - const accessorMock = jest.fn(() => { - return {} as any; - }); - const panelModelMock = jest.fn, []>(() => { - return { - update: jest.fn(), - init: jest.fn(), - dispose: jest.fn(), - }; - }); - - const api = new dockviewApiMock(); - const accessor = new accessorMock(); + const api = fromPartial({}); + const accessor = fromPartial({}); const group = fromPartial({ api: { onDidVisibilityChange: jest.fn(), @@ -239,7 +181,11 @@ describe('dockviewPanel', () => { setSize: jest.fn(), }, }); - const model = new panelModelMock(); + const model = fromPartial({ + update: jest.fn(), + init: jest.fn(), + dispose: jest.fn(), + }); const cut = new DockviewPanel( 'fake-id', @@ -256,27 +202,16 @@ describe('dockviewPanel', () => { cut.api.setSize({ height: 123, width: 456 }); - expect(group.api.setSize).toBeCalledWith({ height: 123, width: 456 }); - expect(group.api.setSize).toBeCalledTimes(1); + expect(group.api.setSize).toHaveBeenCalledWith({ + height: 123, + width: 456, + }); + expect(group.api.setSize).toHaveBeenCalledTimes(1); }); test('updateParameter', () => { - const dockviewApiMock = jest.fn(() => { - return {} as any; - }); - const accessorMock = jest.fn(() => { - return {} as any; - }); - const panelModelMock = jest.fn, []>(() => { - return { - update: jest.fn(), - init: jest.fn(), - dispose: jest.fn(), - }; - }); - - const api = new dockviewApiMock(); - const accessor = new accessorMock(); + const api = fromPartial({}); + const accessor = fromPartial({}); const group = fromPartial({ api: { onDidVisibilityChange: jest.fn(), @@ -284,7 +219,11 @@ describe('dockviewPanel', () => { onDidActiveChange: jest.fn(), }, }); - const model = new panelModelMock(); + const model = fromPartial({ + update: jest.fn(), + init: jest.fn(), + dispose: jest.fn(), + }); const cut = new DockviewPanel( 'fake-id', @@ -305,6 +244,9 @@ describe('dockviewPanel', () => { // update 'a' and add 'c' cut.update({ params: { a: '-1', c: '3' } }); expect(cut.params).toEqual({ a: '-1', b: '2', c: '3' }); + expect(model.update).toHaveBeenCalledWith({ + params: { a: '-1', b: '2', c: '3' }, + }); cut.update({ params: { d: '4', e: '5', f: '6' } }); expect(cut.params).toEqual({ @@ -315,6 +257,9 @@ describe('dockviewPanel', () => { e: '5', f: '6', }); + expect(model.update).toHaveBeenCalledWith({ + params: { a: '-1', b: '2', c: '3', d: '4', e: '5', f: '6' }, + }); cut.update({ params: { @@ -335,5 +280,8 @@ describe('dockviewPanel', () => { g: '', h: null, }); + expect(model.update).toHaveBeenCalledWith({ + params: { a: '-1', b: '2', c: '3', d: '', e: null, g: '', h: null }, + }); }); }); diff --git a/packages/dockview-core/src/dockview/dockviewPanel.ts b/packages/dockview-core/src/dockview/dockviewPanel.ts index fdc3656e7..2bcb32afc 100644 --- a/packages/dockview-core/src/dockview/dockviewPanel.ts +++ b/packages/dockview-core/src/dockview/dockviewPanel.ts @@ -137,13 +137,6 @@ export class DockviewPanel if (didTitleChange) { this._title = title; - - this.view.update({ - params: { - params: this._params, - title: this.title, - }, - }); this.api._onDidTitleChange.fire({ title }); } } @@ -178,10 +171,7 @@ export class DockviewPanel // update the view with the updated props this.view.update({ - params: { - params: this._params, - title: this.title, - }, + params: this._params, }); } diff --git a/packages/dockview/src/dockview/reactContentPart.ts b/packages/dockview/src/dockview/reactContentPart.ts index 9623578ae..84991d844 100644 --- a/packages/dockview/src/dockview/reactContentPart.ts +++ b/packages/dockview/src/dockview/reactContentPart.ts @@ -52,7 +52,7 @@ export class ReactPanelContentPart implements IContentRenderer { } public update(event: PanelUpdateEvent) { - this.part?.update(event.params); + this.part?.update({ params: event.params }); } public layout(_width: number, _height: number): void { diff --git a/packages/dockview/src/dockview/reactHeaderPart.ts b/packages/dockview/src/dockview/reactHeaderPart.ts index 58959e0ef..f4a3e078f 100644 --- a/packages/dockview/src/dockview/reactHeaderPart.ts +++ b/packages/dockview/src/dockview/reactHeaderPart.ts @@ -44,7 +44,7 @@ export class ReactPanelHeaderPart implements ITabRenderer { } public update(event: PanelUpdateEvent): void { - this.part?.update(event.params); + this.part?.update({ params: event.params }); } public layout(_width: number, _height: number): void {