mirror of
https://github.com/zulip/zulip.git
synced 2025-11-14 10:57:58 +00:00
This cleans up the handoff of page_params data between ui_init and modules that take over ownership of page_params-derived data. Read the long comment in ui_init for a bit more context. Most of this diff is actually test cleanup. And a lot of the diff to "real" code is just glorified `s/page_params/params/` in the `initialize` functions. One little oddity is that we don't actually surrender ownership of `page_params.user_id` to `people.js`. We could plausibly sweep the rest of the codebase to just use `people.my_user_id()` consistently, but it's not a super high priority thing to fix, since the value never changes. The stream_data situation is a bit messy, since we consume `page_params` data in the initialize() function in addition to the `params` data we "own". I added a comment there and intend to follow up. I tried to mostly avoid the "word soup" by extracting three locals at the top. Finally, I don't touch `alert_words` yet, despite it also doing the delete-page-params-data dance. The problem is that `alert_words` doesn't have a proper `initialize()`. We should clean that up and have it use a `Map` internally, too.
98 lines
3.0 KiB
JavaScript
98 lines
3.0 KiB
JavaScript
set_global('blueslip', global.make_zblueslip());
|
|
|
|
zrequire('user_groups');
|
|
|
|
run_test('user_groups', () => {
|
|
const students = {
|
|
name: 'Students',
|
|
id: 0,
|
|
members: [1, 2],
|
|
};
|
|
|
|
const params = {};
|
|
params.realm_user_groups = [students];
|
|
|
|
user_groups.initialize(params);
|
|
assert.equal(user_groups.get_user_group_from_id(students.id), students);
|
|
|
|
const admins = {
|
|
name: 'Admins',
|
|
description: 'foo',
|
|
id: 1,
|
|
members: [3],
|
|
};
|
|
const all = {
|
|
name: 'Everyone',
|
|
id: 2,
|
|
members: [1, 2, 3],
|
|
};
|
|
|
|
user_groups.add(admins);
|
|
assert.equal(user_groups.get_user_group_from_id(admins.id), admins);
|
|
|
|
const update_name_event = {
|
|
group_id: admins.id,
|
|
data: {
|
|
name: "new admins",
|
|
},
|
|
};
|
|
user_groups.update(update_name_event);
|
|
assert.equal(user_groups.get_user_group_from_id(admins.id).name, "new admins");
|
|
|
|
const update_des_event = {
|
|
group_id: admins.id,
|
|
data: {
|
|
description: "administer",
|
|
},
|
|
};
|
|
user_groups.update(update_des_event);
|
|
assert.equal(user_groups.get_user_group_from_id(admins.id).description, "administer");
|
|
|
|
blueslip.set_test_data('error', 'Unknown group_id in get_user_group_from_id: ' + all.id);
|
|
assert.equal(user_groups.get_user_group_from_id(all.id), undefined);
|
|
assert.equal(blueslip.get_test_logs('error').length, 1);
|
|
blueslip.clear_test_data();
|
|
|
|
user_groups.remove(students);
|
|
|
|
blueslip.set_test_data('error', 'Unknown group_id in get_user_group_from_id: ' + students.id);
|
|
assert.equal(user_groups.get_user_group_from_id(students.id), undefined);
|
|
assert.equal(blueslip.get_test_logs('error').length, 1);
|
|
blueslip.clear_test_data();
|
|
|
|
assert.equal(user_groups.get_user_group_from_name(all.name), undefined);
|
|
assert.equal(user_groups.get_user_group_from_name(admins.name).id, 1);
|
|
|
|
user_groups.add(all);
|
|
const user_groups_array = user_groups.get_realm_user_groups();
|
|
assert.equal(user_groups_array.length, 2);
|
|
assert.equal(user_groups_array[1].name, 'Everyone');
|
|
assert.equal(user_groups_array[0].name, 'new admins');
|
|
|
|
assert(!user_groups.is_member_of(admins.id, 4));
|
|
assert(user_groups.is_member_of(admins.id, 3));
|
|
|
|
user_groups.add_members(all.id, [5, 4]);
|
|
assert.deepEqual(user_groups.get_user_group_from_id(all.id).members,
|
|
new Set([1, 2, 3, 5, 4]));
|
|
|
|
user_groups.remove_members(all.id, [1, 4]);
|
|
assert.deepEqual(user_groups.get_user_group_from_id(all.id).members,
|
|
new Set([2, 3, 5]));
|
|
|
|
assert(user_groups.is_user_group(admins));
|
|
const object = {
|
|
name: 'core',
|
|
id: 3,
|
|
};
|
|
assert(!user_groups.is_user_group(object));
|
|
|
|
user_groups.init();
|
|
assert.equal(user_groups.get_realm_user_groups().length, 0);
|
|
|
|
blueslip.set_test_data('error', 'Could not find user group with ID -1');
|
|
assert.equal(user_groups.is_member_of(-1, 15), false);
|
|
assert.equal(blueslip.get_test_logs('error').length, 1);
|
|
blueslip.clear_test_data();
|
|
});
|