2017-08-09 19:31:57 +02:00
|
|
|
set_global('$', global.make_zjquery());
|
|
|
|
|
2017-11-08 20:07:05 +01:00
|
|
|
zrequire('people');
|
|
|
|
zrequire('user_events');
|
2017-01-21 16:49:27 +01:00
|
|
|
|
|
|
|
set_global('activity', {
|
|
|
|
redraw: function () {},
|
|
|
|
});
|
2017-04-08 20:08:35 +02:00
|
|
|
set_global('settings_users', {
|
2017-02-25 08:49:12 +01:00
|
|
|
update_user_data: function () {},
|
2017-04-08 20:08:35 +02:00
|
|
|
});
|
2018-12-06 18:23:57 +01:00
|
|
|
set_global('admin_sections', {
|
|
|
|
maybe_disable_widgets: function () {},
|
|
|
|
});
|
2017-04-08 20:08:35 +02:00
|
|
|
set_global('admin', {
|
2017-01-21 16:49:27 +01:00
|
|
|
show_or_hide_menu_item: function () {},
|
|
|
|
});
|
|
|
|
set_global('page_params', {
|
|
|
|
is_admin: true,
|
|
|
|
});
|
|
|
|
|
2017-01-25 16:23:22 +01:00
|
|
|
set_global('pm_list', {
|
|
|
|
update_private_messages: function () {},
|
|
|
|
});
|
|
|
|
|
2017-06-20 23:41:04 +02:00
|
|
|
set_global('narrow_state', {
|
|
|
|
update_email: function () {},
|
|
|
|
});
|
|
|
|
|
|
|
|
set_global('compose', {
|
|
|
|
update_email: function () {},
|
|
|
|
});
|
|
|
|
|
|
|
|
set_global('settings_account', {
|
|
|
|
update_email: function () {},
|
2018-02-02 01:24:26 +01:00
|
|
|
update_full_name: function () {},
|
2017-06-20 23:41:04 +02:00
|
|
|
});
|
|
|
|
|
2017-01-24 19:12:21 +01:00
|
|
|
set_global('message_live_update', {
|
|
|
|
});
|
|
|
|
|
2018-07-10 17:18:50 +02:00
|
|
|
set_global('blueslip', global.make_zblueslip());
|
2017-06-20 23:41:04 +02:00
|
|
|
|
2017-01-21 16:49:27 +01:00
|
|
|
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();
|
|
|
|
|
2018-05-15 12:40:07 +02:00
|
|
|
run_test('updates', () => {
|
2017-01-21 16:49:27 +01:00
|
|
|
var person;
|
|
|
|
|
|
|
|
var isaac = {
|
|
|
|
email: 'isaac@example.com',
|
|
|
|
user_id: 32,
|
|
|
|
full_name: 'Isaac Newton',
|
|
|
|
};
|
|
|
|
people.add(isaac);
|
|
|
|
|
2018-10-29 20:49:07 +01:00
|
|
|
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);
|
|
|
|
|
2017-01-21 16:49:27 +01:00
|
|
|
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);
|
|
|
|
|
2017-01-24 19:12:21 +01:00
|
|
|
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;
|
|
|
|
};
|
|
|
|
|
2017-01-21 16:49:27 +01:00
|
|
|
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);
|
2017-01-24 19:12:21 +01:00
|
|
|
assert.equal(user_id, isaac.user_id);
|
|
|
|
assert.equal(full_name, 'Sir Isaac');
|
2017-01-21 16:49:27 +01:00
|
|
|
|
|
|
|
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');
|
2017-01-24 19:12:21 +01:00
|
|
|
assert.equal(user_id, me.user_id);
|
|
|
|
assert.equal(full_name, 'Me V2');
|
2017-01-21 16:49:27 +01:00
|
|
|
|
2017-06-20 23:41:04 +02:00
|
|
|
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);
|
|
|
|
|
2018-07-10 17:18:50 +02:00
|
|
|
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');
|
2017-06-20 23:41:04 +02:00
|
|
|
assert(!user_events.update_person({user_id: 29, full_name: 'Sir Isaac Newton'}));
|
2018-07-10 17:18:50 +02:00
|
|
|
assert.equal(blueslip.get_test_logs('error').length, 2);
|
|
|
|
blueslip.clear_test_data();
|
2017-06-20 23:41:04 +02:00
|
|
|
|
2018-03-10 14:41:44 +01:00
|
|
|
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');
|
2018-08-02 08:54:28 +02:00
|
|
|
|
|
|
|
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);
|
2018-05-15 12:40:07 +02:00
|
|
|
});
|