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 = () => { 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(); }); });