diff --git a/packages/row-detail-view-plugin/src/slickRowDetailView.spec.ts b/packages/row-detail-view-plugin/src/slickRowDetailView.spec.ts index af6be93b5..2fa412a27 100644 --- a/packages/row-detail-view-plugin/src/slickRowDetailView.spec.ts +++ b/packages/row-detail-view-plugin/src/slickRowDetailView.spec.ts @@ -306,40 +306,10 @@ describe('SlickRowDetailView plugin', () => { expect(stopPropagationSpy).not.toHaveBeenCalled(); }); - it('should trigger onClick and NOT expect Row Detail to be toggled when onBeforeRowDetailToggle returns false', () => { - const mockProcess = jest.fn(); - const expandDetailViewSpy = jest.spyOn(plugin, 'expandDetailView'); - const onBeforeSlickEventData = new Slick.EventData(); - jest.spyOn(onBeforeSlickEventData, 'getReturnValue').mockReturnValue(false); - const beforeRowDetailToggleSpy = jest.spyOn(plugin.onBeforeRowDetailToggle, 'notify').mockReturnValueOnce(onBeforeSlickEventData); - const afterRowDetailToggleSpy = jest.spyOn(plugin.onAfterRowDetailToggle, 'notify'); - const itemMock = { id: 123, firstName: 'John', lastName: 'Doe', _collapsed: true }; - const detailView = `loading...`; - jest.spyOn(gridStub.getEditorLock(), 'isActive').mockReturnValue(false); - jest.spyOn(gridStub.getEditorLock(), 'commitCurrentEdit').mockReturnValue(true); - jest.spyOn(gridStub, 'getDataItem').mockReturnValue(itemMock); - jest.spyOn(gridStub, 'getColumns').mockReturnValue(mockColumns); - jest.spyOn(gridStub, 'getOptions').mockReturnValue({ ...gridOptionsMock, rowDetailView: { process: mockProcess, columnIndexPosition: 0, useRowClick: true, maxRows: 2, panelRows: 2 } as any }); - - plugin.init(gridStub); - plugin.onAsyncResponse.notify({ item: itemMock, itemDetail: itemMock, detailView, }, new Slick.EventData()); - - const clickEvent = new Event('click'); - Object.defineProperty(clickEvent, 'target', { writable: true, configurable: true, value: document.createElement('div') }); - Object.defineProperty(clickEvent, 'isPropagationStopped', { writable: true, configurable: true, value: jest.fn() }); - Object.defineProperty(clickEvent, 'isImmediatePropagationStopped', { writable: true, configurable: true, value: jest.fn() }); - gridStub.onClick.notify({ row: 0, cell: 1, grid: gridStub }, clickEvent); - - expect(beforeRowDetailToggleSpy).toHaveBeenCalled(); - expect(afterRowDetailToggleSpy).not.toHaveBeenCalled(); - expect(expandDetailViewSpy).not.toHaveBeenCalled(); - }); - - it('should trigger onClick and expect Row Detail to be toggled', () => { + it('should trigger onClick and ', () => { const mockProcess = jest.fn(); const expandDetailViewSpy = jest.spyOn(plugin, 'expandDetailView'); const beforeRowDetailToggleSpy = jest.spyOn(plugin.onBeforeRowDetailToggle, 'notify'); - const afterRowDetailToggleSpy = jest.spyOn(plugin.onAfterRowDetailToggle, 'notify'); const itemMock = { id: 123, firstName: 'John', lastName: 'Doe', _collapsed: true }; const detailView = `loading...`; jest.spyOn(gridStub.getEditorLock(), 'isActive').mockReturnValue(false); @@ -358,7 +328,6 @@ describe('SlickRowDetailView plugin', () => { gridStub.onClick.notify({ row: 0, cell: 1, grid: gridStub }, clickEvent); expect(beforeRowDetailToggleSpy).toHaveBeenCalled(); - expect(afterRowDetailToggleSpy).toHaveBeenCalled(); expect(expandDetailViewSpy).toHaveBeenCalledWith({ _collapsed: false, _detailContent: undefined, _detailViewLoaded: true, _height: 75, _sizePadding: 3, firstName: 'John', id: 123, lastName: 'Doe' @@ -441,7 +410,7 @@ describe('SlickRowDetailView plugin', () => { _collapsed: true, _detailViewLoaded: true, _sizePadding: 0, _height: 150, _detailContent: 'loading...', id: 123, firstName: 'John', lastName: 'Doe', } - }, expect.anything(), expect.anything()); + }); expect(afterRowDetailToggleSpy).toHaveBeenCalledWith({ grid: gridStub, item: { diff --git a/packages/row-detail-view-plugin/src/slickRowDetailView.ts b/packages/row-detail-view-plugin/src/slickRowDetailView.ts index 850f410ba..1d23c3dd1 100644 --- a/packages/row-detail-view-plugin/src/slickRowDetailView.ts +++ b/packages/row-detail-view-plugin/src/slickRowDetailView.ts @@ -682,10 +682,10 @@ export class SlickRowDetailView implements ExternalResource, UniversalRowDetailV } // trigger an event before toggling - // user could cancel the Row Detail opening when event is returning false - if (this.onBeforeRowDetailToggle.notify({ grid: this._grid, item: dataContext }, e, this).getReturnValue() === false) { - return; - } + this.onBeforeRowDetailToggle.notify({ + grid: this._grid, + item: dataContext + }); this.toggleRowSelection(args.row, dataContext);