From 50177e75dc5a93e418dcfa7c2e93df1c4c540df7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Mierzwa?= Date: Sun, 27 Oct 2019 10:27:36 +0000 Subject: [PATCH] fix(ui): ensure that pagination doesn't set active page to 0 --- ui/src/Components/SilenceModal/Browser/index.js | 2 +- ui/src/Components/SilenceModal/Browser/index.test.js | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/ui/src/Components/SilenceModal/Browser/index.js b/ui/src/Components/SilenceModal/Browser/index.js index 54ed0fbec..0dfbb7c58 100644 --- a/ui/src/Components/SilenceModal/Browser/index.js +++ b/ui/src/Components/SilenceModal/Browser/index.js @@ -137,7 +137,7 @@ const Browser = observer( resetIfNeeded(totalItemsCount, maxPerPage) { const totalPages = Math.ceil(totalItemsCount / maxPerPage); if (this.activePage > totalPages) { - this.activePage = totalPages; + this.activePage = Math.max(1, totalPages); } } }, diff --git a/ui/src/Components/SilenceModal/Browser/index.test.js b/ui/src/Components/SilenceModal/Browser/index.test.js index a2eaec284..0e56b70f2 100644 --- a/ui/src/Components/SilenceModal/Browser/index.test.js +++ b/ui/src/Components/SilenceModal/Browser/index.test.js @@ -203,7 +203,7 @@ describe("", () => { expect(tree.find("ManagedSilence")).toHaveLength(1); }); - it("resetes pagination to last page on truncation", async () => { + it("resets pagination to last page on truncation", async () => { fetch.mockResponseOnce(JSON.stringify(MockSilenceList(11))); const tree = MountedBrowser(); const instance = tree.instance(); @@ -224,6 +224,14 @@ describe("", () => { expect(tree.find("ManagedSilence")).toHaveLength(2); expect(instance.pagination.activePage).toBe(2); + + fetch.mockResponseOnce(JSON.stringify([])); + instance.onFetch(); + await expect(instance.dataSource.fetch).resolves.toBeUndefined(); + tree.update(); + + expect(tree.find("ManagedSilence")).toHaveLength(0); + expect(instance.pagination.activePage).toBe(1); }); it("renders error after failed fetch", async () => {