From d15a0f1ff1632351d4c55970e98b374b3f85eaad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Mierzwa?= Date: Wed, 29 Apr 2020 10:10:02 +0100 Subject: [PATCH] fix(ui): fix upgrade needed reload --- ui/src/Components/Grid/UpgradeNeeded/index.js | 3 ++- ui/src/Components/Grid/UpgradeNeeded/index.test.js | 12 ++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/ui/src/Components/Grid/UpgradeNeeded/index.js b/ui/src/Components/Grid/UpgradeNeeded/index.js index df3d80c1b..725ce352f 100644 --- a/ui/src/Components/Grid/UpgradeNeeded/index.js +++ b/ui/src/Components/Grid/UpgradeNeeded/index.js @@ -11,7 +11,8 @@ import "csshake/scss/csshake-slow.scss"; const UpgradeNeeded = ({ newVersion, reloadAfter }) => { useEffect(() => { - setTimeout(window.location.reload, reloadAfter); + const timer = setTimeout(() => window.location.reload(), reloadAfter); + return () => clearTimeout(timer); }, [reloadAfter]); return ( diff --git a/ui/src/Components/Grid/UpgradeNeeded/index.test.js b/ui/src/Components/Grid/UpgradeNeeded/index.test.js index cbeba45bc..eca9b8a17 100644 --- a/ui/src/Components/Grid/UpgradeNeeded/index.test.js +++ b/ui/src/Components/Grid/UpgradeNeeded/index.test.js @@ -34,4 +34,16 @@ describe("", () => { jest.runOnlyPendingTimers(); expect(reloadSpy).toBeCalled(); }); + + it("stops calling window.location.reload after unmount", () => { + const reloadSpy = jest + .spyOn(global.window.location, "reload") + .mockImplementation(() => {}); + const tree = mount( + + ); + tree.unmount(); + jest.runOnlyPendingTimers(); + expect(reloadSpy).not.toBeCalled(); + }); });