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:
Sahil Batra
2024-09-09 15:11:46 +05:30
committed by Tim Abbott
parent f3fafc719f
commit 6482f0c2ea
3 changed files with 14 additions and 10 deletions

View File

@@ -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);

View File

@@ -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 {

View File

@@ -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);
}