zulip/frontend_tests/node_tests/user_events.js

85 lines
1.9 KiB
JavaScript

global.stub_out_jquery();
add_dependencies({
people: 'js/people.js',
});
var people = global.people;
var user_events = require("js/user_events.js");
set_global('activity', {
redraw: function () {},
});
set_global('admin', {
update_user_full_name: function () {},
show_or_hide_menu_item: function () {},
});
set_global('page_params', {
is_admin: true,
});
set_global('pm_list', {
update_private_messages: function () {},
});
set_global('message_live_update', {
});
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();
(function 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_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');
}());