mirror of
https://github.com/zulip/zulip.git
synced 2025-11-03 05:23:35 +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":
|
||||
switch (event.op) {
|
||||
case "add":
|
||||
user_groups.add(event.group);
|
||||
case "add": {
|
||||
const user_group = user_groups.add(event.group);
|
||||
if (overlays.groups_open()) {
|
||||
user_group_edit.add_group_to_table(event.group);
|
||||
user_group_edit.add_group_to_table(user_group);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "remove":
|
||||
user_groups.remove(user_groups.get_user_group_from_id(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!
|
||||
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.
|
||||
const user_group = {
|
||||
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_by_id_dict.set(user_group.id, user_group);
|
||||
return user_group;
|
||||
}
|
||||
|
||||
export function remove(user_group: UserGroup): void {
|
||||
|
||||
@@ -192,21 +192,23 @@ run_test("attachments", ({override}) => {
|
||||
run_test("user groups", ({override}) => {
|
||||
let event = event_fixtures.user_group__add;
|
||||
{
|
||||
const 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(user_group_edit, "add_group_to_table", user_group_settings_ui_stub.f);
|
||||
|
||||
dispatch(event);
|
||||
|
||||
assert.equal(stub.num_calls, 1);
|
||||
assert.equal(add_called, true);
|
||||
assert.equal(user_group_settings_ui_stub.num_calls, 1);
|
||||
|
||||
let args = stub.get_args("group");
|
||||
assert_same(args.group, event.group);
|
||||
args = user_group_settings_ui_stub.get_args("group");
|
||||
const args = user_group_settings_ui_stub.get_args("group");
|
||||
assert_same(args.group, event.group);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user