diff --git a/frontend/src/metabase/admin/people/containers/GroupsListingApp.jsx b/frontend/src/metabase/admin/people/containers/GroupsListingApp.jsx index 925c5e0abdc402b564fb890cd7b0be13cf84c34c..12e0ea996b7da7e1d28e1a9d3d9d3b725b4f79f7 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 0000000000000000000000000000000000000000..e54cfe80d553f33aa021b9150397b078d1215190 --- /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"); +};