From 8b9ef7beb33b91acd4578e2a68f120a9ed52090e Mon Sep 17 00:00:00 2001 From: James Gordon Date: Wed, 19 Jun 2024 14:30:28 +0100 Subject: [PATCH 1/2] fix: conditionally call log when broadcast enabled --- src/components/timeout-dialog/timeout-dialog.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/components/timeout-dialog/timeout-dialog.js b/src/components/timeout-dialog/timeout-dialog.js index 25fab90c..b6534232 100644 --- a/src/components/timeout-dialog/timeout-dialog.js +++ b/src/components/timeout-dialog/timeout-dialog.js @@ -76,7 +76,9 @@ function TimeoutDialog($module, $sessionActivityService) { } const broadcastSessionActivity = () => { - sessionActivityService.logActivity(); + if (settings.synchroniseTabs) { + sessionActivityService.logActivity(); + } }; const listenForSessionActivityAndResetDialogTimer = () => { From f06e1fdec8c0d587f69d50cfa0be0b2c4d129764 Mon Sep 17 00:00:00 2001 From: James Gordon Date: Wed, 19 Jun 2024 15:32:48 +0100 Subject: [PATCH 2/2] fix: add unit test to broadcast when button clicked --- .../timeout-dialog/timeout-dialog.test.js | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/components/timeout-dialog/timeout-dialog.test.js b/src/components/timeout-dialog/timeout-dialog.test.js index 86dd896a..2579638b 100644 --- a/src/components/timeout-dialog/timeout-dialog.test.js +++ b/src/components/timeout-dialog/timeout-dialog.test.js @@ -126,6 +126,7 @@ describe('/components/timeout-dialog', () => { utils.ajaxGet.mockReset(); redirectHelper.redirectToUrl.mockReset(); mockSessionActivityService.onActivity.mockReset(); + mockSessionActivityService.logActivity.mockReset(); jest.clearAllTimers(); }); @@ -868,13 +869,28 @@ describe('/components/timeout-dialog', () => { describe('timeout broadcast feature switch disabled', () => { beforeEach(() => { setSynchroniseTabs('false'); - setupDialog(); + setupDialog({}, {}); }); it('should show dialog, as no callback is registered on the session activity service', () => { expect(mockSessionActivityService.onActivity).not.toHaveBeenCalled(); + expect(mockSessionActivityService.logActivity).not.toHaveBeenCalled(); + + pretendSecondsHavePassed(780); + + expect(dialog.displayDialog).toHaveBeenCalled(); + }); + + it('should not broadcast when clicked', () => { + expect(mockSessionActivityService.onActivity).not.toHaveBeenCalled(); + expect(mockSessionActivityService.logActivity).not.toHaveBeenCalled(); pretendSecondsHavePassed(780); + clickElem(testScope.latestDialog$element.querySelector('#hmrc-timeout-keep-signin-btn')); + + expect(mockSessionActivityService.onActivity).not.toHaveBeenCalled(); + expect(mockSessionActivityService.logActivity).not.toHaveBeenCalled(); + expect(dialog.displayDialog).toHaveBeenCalled(); }); });