Skip to content
Snippets Groups Projects
Unverified Commit 8cf7dd2c authored by Paul Rosenzweig's avatar Paul Rosenzweig Committed by GitHub
Browse files

only load membership if user is updating group_ids (#10815)

parent 75138e1a
No related branches found
No related tags found
No related merge requests found
......@@ -89,11 +89,12 @@ const Users = createEntity({
...result,
};
},
update: thunkCreator => (...args) => async (dispatch, getState) => {
const result = await thunkCreator(...args)(dispatch, getState);
// HACK: reload memberships when updating a user
// TODO: only do this if group_ids changes
dispatch(loadMemberships());
update: thunkCreator => user => async (dispatch, getState) => {
const result = await thunkCreator(user)(dispatch, getState);
if (user.group_ids) {
// group ids were just updated
dispatch(loadMemberships());
}
return result;
},
},
......
import React from "react";
import mock from "xhr-mock";
import { getFormValues } from "__support__/enzyme_utils";
import { mountWithStore } from "__support__/integration_tests";
import UserSettings from "metabase/user/components/UserSettings";
import Users from "metabase/entities/users";
const MOCK_USER = {
first_name: "Testy",
......@@ -12,6 +15,9 @@ const MOCK_USER = {
};
describe("UserSettings", () => {
beforeEach(() => mock.setup());
afterEach(() => mock.teardown());
it("should show user info", async () => {
const { wrapper } = mountWithStore(
<UserSettings
......@@ -27,4 +33,21 @@ describe("UserSettings", () => {
expect(values).toEqual(MOCK_USER);
});
it("should update the user without fetching memberships", async () => {
const user = { ...MOCK_USER, id: 1 };
const { wrapper, store } = mountWithStore(
<UserSettings user={user} tab="details" />,
);
mock.put("/api/user/1", (req, res) => res.json(user));
const getMemberships = jest.fn();
mock.get("/api/permissions/membership", getMemberships);
wrapper.find("button").simulate("submit");
const { payload } = await store.waitForAction(Users.actionTypes.UPDATE);
expect(payload.user.id).toBe(1);
expect(getMemberships).not.toHaveBeenCalled();
});
});
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment