mirror of
https://github.com/zulip/zulip.git
synced 2025-11-06 06:53:25 +00:00
user_groups: Pass correct group object for adding new group to UI.
We previously passed the UserGroupRaw type object received in the user group creation event to user_group_edit.add_group_to_table instead of the UserGroup type object. The add_group_to_table function is called after receiving creation event only, but other functions called later in the flow are called at other times as well like when opening edit panel for a particular group and they expect UserGroup type object, so this commit fixes it.
This commit is contained in:
@@ -918,12 +918,13 @@ export function dispatch_normal_event(event) {
|
|||||||
|
|
||||||
case "user_group":
|
case "user_group":
|
||||||
switch (event.op) {
|
switch (event.op) {
|
||||||
case "add":
|
case "add": {
|
||||||
user_groups.add(event.group);
|
const user_group = user_groups.add(event.group);
|
||||||
if (overlays.groups_open()) {
|
if (overlays.groups_open()) {
|
||||||
user_group_edit.add_group_to_table(event.group);
|
user_group_edit.add_group_to_table(user_group);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
case "remove":
|
case "remove":
|
||||||
user_groups.remove(user_groups.get_user_group_from_id(event.group_id));
|
user_groups.remove(user_groups.get_user_group_from_id(event.group_id));
|
||||||
user_group_edit.handle_deleted_group(event.group_id);
|
user_group_edit.handle_deleted_group(event.group_id);
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ export function init(): void {
|
|||||||
// WE INITIALIZE DATA STRUCTURES HERE!
|
// WE INITIALIZE DATA STRUCTURES HERE!
|
||||||
init();
|
init();
|
||||||
|
|
||||||
export function add(user_group_raw: UserGroupRaw): void {
|
export function add(user_group_raw: UserGroupRaw): UserGroup {
|
||||||
// Reformat the user group members structure to be a set.
|
// Reformat the user group members structure to be a set.
|
||||||
const user_group = {
|
const user_group = {
|
||||||
description: user_group_raw.description,
|
description: user_group_raw.description,
|
||||||
@@ -56,6 +56,7 @@ export function add(user_group_raw: UserGroupRaw): void {
|
|||||||
|
|
||||||
user_group_name_dict.set(user_group.name, user_group);
|
user_group_name_dict.set(user_group.name, user_group);
|
||||||
user_group_by_id_dict.set(user_group.id, user_group);
|
user_group_by_id_dict.set(user_group.id, user_group);
|
||||||
|
return user_group;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function remove(user_group: UserGroup): void {
|
export function remove(user_group: UserGroup): void {
|
||||||
|
|||||||
@@ -192,21 +192,23 @@ run_test("attachments", ({override}) => {
|
|||||||
run_test("user groups", ({override}) => {
|
run_test("user groups", ({override}) => {
|
||||||
let event = event_fixtures.user_group__add;
|
let event = event_fixtures.user_group__add;
|
||||||
{
|
{
|
||||||
const stub = make_stub();
|
|
||||||
const user_group_settings_ui_stub = make_stub();
|
const user_group_settings_ui_stub = make_stub();
|
||||||
|
|
||||||
override(user_groups, "add", stub.f);
|
let add_called = false;
|
||||||
|
override(user_groups, "add", (arg) => {
|
||||||
|
assert_same(arg, event.group);
|
||||||
|
add_called = true;
|
||||||
|
return event.group;
|
||||||
|
});
|
||||||
override(overlays, "groups_open", () => true);
|
override(overlays, "groups_open", () => true);
|
||||||
override(user_group_edit, "add_group_to_table", user_group_settings_ui_stub.f);
|
override(user_group_edit, "add_group_to_table", user_group_settings_ui_stub.f);
|
||||||
|
|
||||||
dispatch(event);
|
dispatch(event);
|
||||||
|
|
||||||
assert.equal(stub.num_calls, 1);
|
assert.equal(add_called, true);
|
||||||
assert.equal(user_group_settings_ui_stub.num_calls, 1);
|
assert.equal(user_group_settings_ui_stub.num_calls, 1);
|
||||||
|
|
||||||
let args = stub.get_args("group");
|
const args = user_group_settings_ui_stub.get_args("group");
|
||||||
assert_same(args.group, event.group);
|
|
||||||
args = user_group_settings_ui_stub.get_args("group");
|
|
||||||
assert_same(args.group, event.group);
|
assert_same(args.group, event.group);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user