mirror of
https://github.com/zulip/zulip.git
synced 2025-11-03 13:33:24 +00:00
We now run the code to disable widgets every time we reload a section, which was the original intention of the code, but the call to it only happened when you first launched the page. We also continue to run this logic for live updates of is_admin, although it's worth noting that the code still only handles the "demotion" case of going from admin to non-admin. (If somebody makes you an admin, you continue to need to reload to get widgets enabled.)
162 lines
5.0 KiB
JavaScript
162 lines
5.0 KiB
JavaScript
set_global('$', global.make_zjquery());
|
|
|
|
zrequire('people');
|
|
zrequire('user_events');
|
|
|
|
set_global('activity', {
|
|
redraw: function () {},
|
|
});
|
|
set_global('settings_users', {
|
|
update_user_data: function () {},
|
|
});
|
|
set_global('admin_sections', {
|
|
maybe_disable_widgets: function () {},
|
|
});
|
|
set_global('admin', {
|
|
show_or_hide_menu_item: function () {},
|
|
});
|
|
set_global('page_params', {
|
|
is_admin: true,
|
|
});
|
|
|
|
set_global('pm_list', {
|
|
update_private_messages: function () {},
|
|
});
|
|
|
|
set_global('narrow_state', {
|
|
update_email: function () {},
|
|
});
|
|
|
|
set_global('compose', {
|
|
update_email: function () {},
|
|
});
|
|
|
|
set_global('settings_account', {
|
|
update_email: function () {},
|
|
update_full_name: function () {},
|
|
});
|
|
|
|
set_global('message_live_update', {
|
|
});
|
|
|
|
set_global('blueslip', global.make_zblueslip());
|
|
|
|
var me = {
|
|
email: 'me@example.com',
|
|
user_id: 30,
|
|
full_name: 'Me Myself',
|
|
is_admin: true,
|
|
};
|
|
|
|
function initialize() {
|
|
people.init();
|
|
people.add(me);
|
|
people.initialize_current_user(me.user_id);
|
|
}
|
|
|
|
initialize();
|
|
|
|
run_test('updates', () => {
|
|
var person;
|
|
|
|
var isaac = {
|
|
email: 'isaac@example.com',
|
|
user_id: 32,
|
|
full_name: 'Isaac Newton',
|
|
};
|
|
people.add(isaac);
|
|
|
|
user_events.update_person({user_id: isaac.user_id, is_guest: true});
|
|
person = people.get_by_email(isaac.email);
|
|
assert(person.is_guest);
|
|
user_events.update_person({user_id: isaac.user_id, is_guest: false});
|
|
person = people.get_by_email(isaac.email);
|
|
assert(!person.is_guest);
|
|
|
|
user_events.update_person({user_id: isaac.user_id, is_admin: true});
|
|
person = people.get_by_email(isaac.email);
|
|
assert.equal(person.full_name, 'Isaac Newton');
|
|
assert.equal(person.is_admin, true);
|
|
|
|
var user_id;
|
|
var full_name;
|
|
global.message_live_update.update_user_full_name = function (user_id_arg, full_name_arg) {
|
|
user_id = user_id_arg;
|
|
full_name = full_name_arg;
|
|
};
|
|
|
|
user_events.update_person({user_id: isaac.user_id, full_name: 'Sir Isaac'});
|
|
person = people.get_by_email(isaac.email);
|
|
assert.equal(person.full_name, 'Sir Isaac');
|
|
assert.equal(person.is_admin, true);
|
|
assert.equal(user_id, isaac.user_id);
|
|
assert.equal(full_name, 'Sir Isaac');
|
|
|
|
user_events.update_person({user_id: me.user_id, is_admin: false});
|
|
assert(!global.page_params.is_admin);
|
|
|
|
user_events.update_person({user_id: me.user_id, full_name: 'Me V2'});
|
|
assert.equal(people.my_full_name(), 'Me V2');
|
|
assert.equal(user_id, me.user_id);
|
|
assert.equal(full_name, 'Me V2');
|
|
|
|
user_events.update_person({user_id: isaac.user_id, new_email: 'newton@example.com'});
|
|
person = people.get_person_from_user_id(isaac.user_id);
|
|
assert.equal(person.email, 'newton@example.com');
|
|
assert.equal(person.full_name, 'Sir Isaac');
|
|
|
|
user_events.update_person({user_id: me.user_id, new_email: 'meforu@example.com'});
|
|
person = people.get_person_from_user_id(me.user_id);
|
|
assert.equal(person.email, 'meforu@example.com');
|
|
assert.equal(person.full_name, 'Me V2');
|
|
|
|
var avatar_url;
|
|
global.message_live_update.update_avatar = function (user_id_arg, avatar_url_arg) {
|
|
user_id = user_id_arg;
|
|
avatar_url = avatar_url_arg;
|
|
};
|
|
|
|
user_events.update_person({user_id: isaac.user_id, full_name: 'Sir Isaac'});
|
|
person = people.get_by_email(isaac.email);
|
|
assert.equal(person.full_name, 'Sir Isaac');
|
|
assert.equal(person.is_admin, true);
|
|
assert.equal(user_id, isaac.user_id);
|
|
assert.equal(full_name, 'Sir Isaac');
|
|
|
|
user_events.update_person({user_id: isaac.user_id, avatar_url: 'http://gravatar.com/123456'});
|
|
person = people.get_by_email(isaac.email);
|
|
assert.equal(person.full_name, 'Sir Isaac');
|
|
assert.equal(user_id, isaac.user_id);
|
|
assert.equal(person.avatar_url, avatar_url);
|
|
|
|
user_events.update_person({user_id: me.user_id, avatar_url: 'http://gravatar.com/789456'});
|
|
person = people.get_by_email(me.email);
|
|
assert.equal(person.full_name, 'Me V2');
|
|
assert.equal(user_id, me.user_id);
|
|
assert.equal(person.avatar_url, avatar_url);
|
|
|
|
user_events.update_person({user_id: me.user_id, timezone: 'UTC'});
|
|
person = people.get_by_email(me.email);
|
|
assert(person.timezone);
|
|
|
|
blueslip.set_test_data('error', 'Got update_person event for unexpected user 29');
|
|
blueslip.set_test_data('error', 'Unknown user_id in get_person_from_user_id: 29');
|
|
assert(!user_events.update_person({user_id: 29, full_name: 'Sir Isaac Newton'}));
|
|
assert.equal(blueslip.get_test_logs('error').length, 2);
|
|
blueslip.clear_test_data();
|
|
|
|
me.profile_data = {};
|
|
user_events.update_person({user_id: me.user_id, custom_profile_field: {id: 3, value: 'Value'}});
|
|
person = people.get_by_email(me.email);
|
|
assert.equal(person.profile_data[3], 'Value');
|
|
|
|
var updated = false;
|
|
settings_account.update_email = (email) => {
|
|
assert.equal(email, 'you@example.org');
|
|
updated = true;
|
|
};
|
|
|
|
user_events.update_person({user_id: me.user_id, delivery_email: 'you@example.org'});
|
|
assert(updated);
|
|
});
|