From e8a7157d45b8db76e3be80abd315ceaae24e58bd Mon Sep 17 00:00:00 2001 From: mathuo <6710312+mathuo@users.noreply.github.com> Date: Fri, 11 Mar 2022 22:27:29 +0000 Subject: [PATCH] tests: add tests --- .../src/__tests__/api/component.api.spec.ts | 135 ++++++++++++++++++ packages/dockview/src/api/component.api.ts | 40 +++--- 2 files changed, 155 insertions(+), 20 deletions(-) create mode 100644 packages/dockview/src/__tests__/api/component.api.spec.ts diff --git a/packages/dockview/src/__tests__/api/component.api.spec.ts b/packages/dockview/src/__tests__/api/component.api.spec.ts new file mode 100644 index 000000000..898260d76 --- /dev/null +++ b/packages/dockview/src/__tests__/api/component.api.spec.ts @@ -0,0 +1,135 @@ +import { DockviewComponent } from '../..'; +import { + SplitviewApi, + PaneviewApi, + GridviewApi, + DockviewApi, +} from '../../api/component.api'; +import { GridviewComponent } from '../../gridview/gridviewComponent'; +import { PaneviewComponent } from '../../paneview/paneviewComponent'; +import { SplitviewComponent } from '../../splitview/splitviewComponent'; + +describe('component.api', () => { + describe('splitview', () => { + test('splitviewapi', () => { + const list: (keyof SplitviewComponent)[] = [ + 'minimumSize', + 'maximumSize', + 'height', + 'width', + 'length', + 'orientation', + 'onDidLayoutChange', + 'onDidAddView', + 'onDidRemoveView', + ]; + + for (const _ of list) { + const f = jest.fn(); + + const component: Partial = { + [_]: f(), + }; + + const cut = new SplitviewApi(component); + + expect((cut as any)[_]).toBeFalsy(); + + expect(f).toBeCalledTimes(1); + } + }); + }); + + describe('paneview', () => { + test('panviewapi', () => { + const list: (keyof PaneviewComponent)[] = [ + 'minimumSize', + 'maximumSize', + 'height', + 'width', + 'onDidLayoutChange', + 'onDidAddView', + 'onDidRemoveView', + ]; + + for (const _ of list) { + const f = jest.fn(); + + const component: Partial = { + [_]: f(), + }; + + const cut = new PaneviewApi(component); + + expect((cut as any)[_]).toBeFalsy(); + + expect(f).toBeCalledTimes(1); + } + }); + }); + + describe('gridview', () => { + test('gridviewapi', () => { + const list: (keyof GridviewComponent)[] = [ + 'minimumHeight', + 'maximumHeight', + 'minimumWidth', + 'maximumWidth', + 'width', + 'height', + 'onGridEvent', + 'onDidLayoutChange', + 'orientation', + ]; + + for (const _ of list) { + const f = jest.fn(); + + const component: Partial = { + [_]: f(), + }; + + const cut = new GridviewApi(component); + + expect((cut as any)[_]).toBeFalsy(); + + expect(f).toBeCalledTimes(1); + } + }); + }); + + describe('dockview', () => { + test('dockviewapi', () => { + const list: (keyof DockviewComponent)[] = [ + 'minimumHeight', + 'maximumHeight', + 'minimumWidth', + 'maximumWidth', + 'width', + 'height', + 'size', + 'totalPanels', + 'onGridEvent', + 'onDidLayoutChange', + 'panels', + 'groups', + 'activeGroup', + 'activePanel', + ]; + + for (const _ of list) { + const f = jest.fn(); + + const component: Partial = { + [_]: f(), + }; + + const cut = new DockviewApi(component); + + expect((cut as any)[_]).toBeFalsy(); + + expect(f).toBeCalledTimes(1); + } + }); + }); +}); diff --git a/packages/dockview/src/api/component.api.ts b/packages/dockview/src/api/component.api.ts index 6e6598211..64ea9016c 100644 --- a/packages/dockview/src/api/component.api.ts +++ b/packages/dockview/src/api/component.api.ts @@ -64,6 +64,10 @@ export class SplitviewApi implements CommonApi { return this.component.length; } + get orientation(): Orientation { + return this.component.orientation; + } + get onDidLayoutChange(): Event { return this.component.onDidLayoutChange; } @@ -76,10 +80,6 @@ export class SplitviewApi implements CommonApi { return this.component.onDidRemoveView; } - get orientation(): Orientation { - return this.component.orientation; - } - constructor(private readonly component: ISplitviewComponent) {} updateOptions(options: SplitviewComponentUpdateOptions): void { @@ -136,14 +136,6 @@ export class SplitviewApi implements CommonApi { } export class PaneviewApi implements CommonApi { - get width(): number { - return this.component.width; - } - - get height(): number { - return this.component.height; - } - get minimumSize(): number { return this.component.minimumSize; } @@ -152,6 +144,14 @@ export class PaneviewApi implements CommonApi { return this.component.maximumSize; } + get height(): number { + return this.component.height; + } + + get width(): number { + return this.component.width; + } + get onDidLayoutChange(): Event { return this.component.onDidLayoutChange; } @@ -223,14 +223,6 @@ export class PaneviewApi implements CommonApi { } export class GridviewApi implements CommonApi { - get width(): number { - return this.component.width; - } - - get height(): number { - return this.component.height; - } - get minimumHeight(): number { return this.component.minimumHeight; } @@ -247,6 +239,14 @@ export class GridviewApi implements CommonApi { return this.component.maximumWidth; } + get width(): number { + return this.component.width; + } + + get height(): number { + return this.component.height; + } + get onGridEvent(): Event { return this.component.onGridEvent; }