From 75be28c2698f99f06caf04029eea4a2eef1fff2f Mon Sep 17 00:00:00 2001 From: Alexander Polyankin <alexander.polyankin@metabase.com> Date: Wed, 5 Jan 2022 13:44:29 +0300 Subject: [PATCH] Fix group caching issue (#19526) --- .../people/containers/GroupsListingApp.jsx | 2 +- .../12693-group-count.cy.spec.js | 43 +++++++++++++++++++ 2 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 frontend/test/metabase/scenarios/admin/people/reproductions/12693-group-count.cy.spec.js diff --git a/frontend/src/metabase/admin/people/containers/GroupsListingApp.jsx b/frontend/src/metabase/admin/people/containers/GroupsListingApp.jsx index 925c5e0abdc..12e0ea996b7 100644 --- a/frontend/src/metabase/admin/people/containers/GroupsListingApp.jsx +++ b/frontend/src/metabase/admin/people/containers/GroupsListingApp.jsx @@ -5,7 +5,7 @@ import Group from "metabase/entities/groups"; import GroupsListing from "../components/GroupsListing"; import { getGroupsWithoutMetabot } from "../selectors"; -@Group.loadList() +@Group.loadList({ reload: true }) @connect((state, props) => ({ groups: getGroupsWithoutMetabot(state, props), })) diff --git a/frontend/test/metabase/scenarios/admin/people/reproductions/12693-group-count.cy.spec.js b/frontend/test/metabase/scenarios/admin/people/reproductions/12693-group-count.cy.spec.js new file mode 100644 index 00000000000..e54cfe80d55 --- /dev/null +++ b/frontend/test/metabase/scenarios/admin/people/reproductions/12693-group-count.cy.spec.js @@ -0,0 +1,43 @@ +import { restore } from "__support__/e2e/cypress"; + +const GROUP = "collection"; + +describe("should update group count after editing a group", () => { + beforeEach(() => { + restore(); + cy.signInAsAdmin(); + }); + + it("should update the group count after adding a user to a group (metabase#12693)", () => { + cy.visit("/admin/people/groups"); + + findRow(GROUP).within(() => cy.findByText("3")); + cy.findByText(GROUP).click(); + + cy.findByText("Add members").click(); + cy.focused().type("Bobby"); + cy.findByText("Bobby Tables").click(); + cy.findByText("Add").click(); + cy.findByText("4 members"); + + cy.findByText("Groups").click(); + findRow(GROUP).within(() => cy.findByText("4")); + }); + + it("should update the group count after removing a user from a group (metabase#12693)", () => { + cy.visit("/admin/people/groups"); + + findRow(GROUP).within(() => cy.findByText("3")); + cy.findByText(GROUP).click(); + + findRow("User 1").within(() => cy.findByLabelText("close icon").click()); + cy.findByText("2 members"); + + cy.findByText("Groups").click(); + findRow(GROUP).within(() => cy.findByText("2")); + }); +}); + +const findRow = text => { + return cy.findByText(text).parentsUntil("tbody", "tr"); +}; -- GitLab