From ca894c0a83b5762a42b703f28fc59bdb38e01944 Mon Sep 17 00:00:00 2001 From: Jurriaan Wijnberg Date: Mon, 20 Sep 2021 08:27:51 +0200 Subject: [PATCH] fix(resizer): only bind autoresize when enabled --- .../__tests__/resizer.service.spec.ts | 27 ++++++++++++++++--- .../common/src/services/resizer.service.ts | 4 +-- 2 files changed, 26 insertions(+), 5 deletions(-) diff --git a/packages/common/src/services/__tests__/resizer.service.spec.ts b/packages/common/src/services/__tests__/resizer.service.spec.ts index 6b4865763..9d026873c 100644 --- a/packages/common/src/services/__tests__/resizer.service.spec.ts +++ b/packages/common/src/services/__tests__/resizer.service.spec.ts @@ -101,9 +101,30 @@ describe('Resizer Service', () => { expect(service).toBeTruthy(); }); - it('should throw an error when there is no grid object defined', () => { - service = new ResizerService(eventPubSubService); - expect(() => service.init(null as any, divContainer)).toThrowError('[Slickgrid-Universal] Resizer Service requires a valid Grid object and DOM Element Container to be provided.'); + describe('init method', () => { + it('should throw an error when there is no grid object defined', () => { + expect(() => service.init(null as any, divContainer)).toThrowError('[Slickgrid-Universal] Resizer Service requires a valid Grid object and DOM Element Container to be provided.'); + }); + + it('should call "bindAutoResizeDataGrid" when autoResize is enabled', () => { + mockGridOptions.enableAutoResize = true; + jest.spyOn(gridStub, 'getContainerNode').mockReturnValue(null); + const bindAutoResizeDataGridSpy = jest.spyOn(service, 'bindAutoResizeDataGrid').mockImplementation(); + + service.init(gridStub, divContainer); + + expect(bindAutoResizeDataGridSpy).toHaveBeenCalled(); + }); + + it('should not call "bindAutoResizeDataGrid" when autoResize is not enabled', () => { + mockGridOptions.enableAutoResize = false; + jest.spyOn(gridStub, 'getContainerNode').mockReturnValue(null); + const bindAutoResizeDataGridSpy = jest.spyOn(service, 'bindAutoResizeDataGrid').mockImplementation(); + + service.init(gridStub, divContainer); + + expect(bindAutoResizeDataGridSpy).not.toHaveBeenCalled(); + }); }); describe('resizeGrid method', () => { diff --git a/packages/common/src/services/resizer.service.ts b/packages/common/src/services/resizer.service.ts index fb8104bd3..9418d4dbe 100644 --- a/packages/common/src/services/resizer.service.ts +++ b/packages/common/src/services/resizer.service.ts @@ -117,7 +117,7 @@ export class ResizerService { this._fixedWidth = fixedGridSizes.width; } - if (this.gridOptions) { + if (this.gridOptions && this.gridOptions.enableAutoResize) { this.bindAutoResizeDataGrid(); } @@ -251,7 +251,7 @@ export class ResizerService { /** * Provide the possibility to pause the resizer for some time, until user decides to re-enabled it later if he wish to. - * @param {boolean} isResizePaused are we pausing the resizer? + * @param {boolean} isResizePaused are we pausing the resizer?@C */ pauseResizer(isResizePaused: boolean) { this._resizePaused = isResizePaused;