mirror of
https://github.com/zulip/zulip.git
synced 2025-11-18 21:48:30 +00:00
* In most cases, eslint --fix with the right comma-dangle settings was able to update the code correctly. * The exceptions were cases where the parser incorrectly treated the arguments to functions like `assert_equal` as arguments; we fixed these manually. Since this is test code, we can be reasonably confident that just fixing the failures suffices to correct any bugs introduced by making changes automatically.
253 lines
7.4 KiB
JavaScript
253 lines
7.4 KiB
JavaScript
add_dependencies({
|
|
util: 'js/util.js',
|
|
});
|
|
|
|
global.stub_out_jquery();
|
|
|
|
var people = require("js/people.js");
|
|
|
|
set_global('page_params', {
|
|
people_list: [],
|
|
email: 'hamlet@example.com',
|
|
});
|
|
set_global('activity', {
|
|
set_user_statuses: function () {},
|
|
});
|
|
set_global('admin', {
|
|
show_or_hide_menu_item: function () {},
|
|
});
|
|
|
|
var _ = global._;
|
|
|
|
(function test_basics() {
|
|
var orig_person = {
|
|
email: 'orig@example.com',
|
|
user_id: 31,
|
|
full_name: 'Original',
|
|
};
|
|
people.add(orig_person);
|
|
|
|
var persons = people.get_all_persons();
|
|
assert.equal(_.size(persons), 1);
|
|
assert.equal(persons[0].full_name, 'Original');
|
|
|
|
var realm_persons = people.get_realm_persons();
|
|
assert.equal(_.size(realm_persons), 0);
|
|
|
|
|
|
var full_name = 'Isaac Newton';
|
|
var email = 'isaac@example.com';
|
|
var isaac = {
|
|
email: email,
|
|
user_id: 32,
|
|
full_name: full_name,
|
|
};
|
|
people.add(isaac);
|
|
|
|
var person = people.get_by_name(full_name);
|
|
assert.equal(people.get_user_id(email), 32);
|
|
assert.equal(person.email, email);
|
|
person = people.get_by_email(email);
|
|
assert.equal(person.full_name, full_name);
|
|
person = people.realm_get(email);
|
|
assert(!person);
|
|
people.add_in_realm(isaac);
|
|
person = people.realm_get(email);
|
|
assert.equal(person.email, email);
|
|
|
|
realm_persons = people.get_realm_persons();
|
|
assert.equal(_.size(realm_persons), 1);
|
|
assert.equal(realm_persons[0].full_name, 'Isaac Newton');
|
|
|
|
people.update({email: email, is_admin: true});
|
|
person = people.get_by_email(email);
|
|
assert.equal(person.full_name, full_name);
|
|
assert.equal(person.is_admin, true);
|
|
|
|
people.update({email: email, full_name: 'Sir Isaac'});
|
|
person = people.get_by_email(email);
|
|
assert.equal(person.full_name, 'Sir Isaac');
|
|
assert.equal(person.is_admin, true);
|
|
|
|
global.page_params.email = email;
|
|
|
|
people.update({email: email, is_admin: false});
|
|
assert(!global.page_params.is_admin);
|
|
|
|
people.update({email: email, full_name: 'The Godfather of Calculus'});
|
|
assert.equal(global.page_params.fullname, 'The Godfather of Calculus');
|
|
|
|
// Now remove isaac
|
|
people.remove(isaac);
|
|
person = people.get_by_email(email);
|
|
assert(!person);
|
|
|
|
// The original person should still be there
|
|
person = people.get_by_email('orig@example.com');
|
|
assert.equal(person.full_name, 'Original');
|
|
}());
|
|
|
|
(function test_get_person_from_user_id() {
|
|
var person = {
|
|
email: 'mary@example.com',
|
|
user_id: 42,
|
|
full_name: 'Mary',
|
|
};
|
|
people.add(person);
|
|
person = people.get_by_email('mary@example.com');
|
|
assert.equal(person.full_name, 'Mary');
|
|
person = people.get_person_from_user_id(42);
|
|
assert.equal(person.email, 'mary@example.com');
|
|
|
|
// The semantics for update() are going to eventually
|
|
// change to use user_id as a key, but now we use email
|
|
// as a key and change attributes. With the current
|
|
// behavior, we don't have to make update() do anything
|
|
// new.
|
|
person = {
|
|
email: 'mary@example.com',
|
|
user_id: 42,
|
|
full_name: 'Mary New',
|
|
};
|
|
people.update(person);
|
|
person = people.get_person_from_user_id(42);
|
|
assert.equal(person.full_name, 'Mary New');
|
|
|
|
// remove() should eventually just take a user_id, but
|
|
// now it takes a full person object
|
|
people.remove(person);
|
|
person = people.get_by_email('mary@example.com');
|
|
assert.equal(person, undefined);
|
|
person = people.get_person_from_user_id(42);
|
|
assert.equal(person, undefined);
|
|
}());
|
|
|
|
(function test_get_rest_of_realm() {
|
|
var myself = {
|
|
email: 'myself@example.com',
|
|
user_id: 201,
|
|
full_name: 'Yours Truly',
|
|
};
|
|
global.page_params.email = myself.email;
|
|
var alice1 = {
|
|
email: 'alice1@example.com',
|
|
user_id: 202,
|
|
full_name: 'Alice',
|
|
};
|
|
var alice2 = {
|
|
email: 'alice2@example.com',
|
|
user_id: 203,
|
|
full_name: 'Alice',
|
|
};
|
|
var bob = {
|
|
email: 'bob@example.com',
|
|
user_id: 204,
|
|
full_name: 'Bob van Roberts',
|
|
};
|
|
people.add_in_realm(myself);
|
|
people.add_in_realm(alice1);
|
|
people.add_in_realm(bob);
|
|
people.add_in_realm(alice2);
|
|
var others = people.get_rest_of_realm();
|
|
var expected = [
|
|
{ email: 'alice1@example.com', full_name: 'Alice' },
|
|
{ email: 'alice2@example.com', full_name: 'Alice' },
|
|
{ email: 'bob@example.com', full_name: 'Bob van Roberts' },
|
|
];
|
|
assert.deepEqual(others, expected);
|
|
|
|
people.remove(alice1);
|
|
people.remove(alice2);
|
|
people.remove(bob);
|
|
}());
|
|
|
|
(function test_recipient_counts() {
|
|
var email = 'anybody@example.com';
|
|
assert.equal(people.get_recipient_count({email: email}), 0);
|
|
people.incr_recipient_count(email);
|
|
people.incr_recipient_count(email);
|
|
assert.equal(people.get_recipient_count({email: email}), 2);
|
|
|
|
assert.equal(people.get_recipient_count({pm_recipient_count: 5}), 5);
|
|
}());
|
|
|
|
(function test_filtered_users() {
|
|
var charles = {
|
|
email: 'charles@example.com',
|
|
user_id: 301,
|
|
full_name: 'Charles Dickens',
|
|
};
|
|
var maria = {
|
|
email: 'athens@example.com',
|
|
user_id: 302,
|
|
full_name: 'Maria Athens',
|
|
};
|
|
var ashton = {
|
|
email: 'ashton@example.com',
|
|
user_id: 303,
|
|
full_name: 'Ashton Smith',
|
|
};
|
|
var linus = {
|
|
email: 'ltorvalds@example.com',
|
|
user_id: 304,
|
|
full_name: 'Linus Torvalds',
|
|
};
|
|
|
|
people.add_in_realm(charles);
|
|
people.add_in_realm(maria);
|
|
people.add_in_realm(ashton);
|
|
people.add_in_realm(linus);
|
|
|
|
var search_term = 'a';
|
|
var users = people.get_rest_of_realm();
|
|
var filtered_people = people.filter_people_by_search_terms(users, [search_term]);
|
|
var expected = [
|
|
{ email: 'athens@example.com', full_name: 'Maria Athens' },
|
|
{ email: 'ashton@example.com', full_name: 'Ashton Smith' },
|
|
];
|
|
assert.equal(filtered_people["ashton@example.com"], true);
|
|
assert.equal(filtered_people["athens@example.com"], true);
|
|
assert.equal(_.keys(filtered_people).length, 2);
|
|
assert(!_.has(filtered_people, 'charles@example.com'));
|
|
|
|
filtered_people = people.filter_people_by_search_terms(users, []);
|
|
assert(_.isEmpty(filtered_people));
|
|
|
|
filtered_people = people.filter_people_by_search_terms(users, ['ltorv']);
|
|
assert.equal(_.keys(filtered_people).length, 1);
|
|
assert(_.has(filtered_people, 'ltorvalds@example.com'));
|
|
|
|
filtered_people = people.filter_people_by_search_terms(users, ['ch di', 'maria']);
|
|
assert.equal(_.keys(filtered_people).length, 2);
|
|
assert(_.has(filtered_people, 'charles@example.com'));
|
|
assert(_.has(filtered_people, 'athens@example.com'));
|
|
|
|
people.remove(charles);
|
|
people.remove(maria);
|
|
people.remove(ashton);
|
|
people.remove(linus);
|
|
}());
|
|
|
|
(function test_multi_user_methods() {
|
|
var emp401 = {
|
|
email: 'emp401@example.com',
|
|
user_id: 401,
|
|
full_name: 'whatever 401',
|
|
};
|
|
var emp402 = {
|
|
email: 'EMP402@example.com',
|
|
user_id: 402,
|
|
full_name: 'whatever 402',
|
|
};
|
|
|
|
people.add_in_realm(emp401);
|
|
people.add_in_realm(emp402);
|
|
|
|
var emails_string = people.user_ids_string_to_emails_string('402,401');
|
|
assert.equal(emails_string, 'emp401@example.com,emp402@example.com');
|
|
|
|
emails_string = 'emp402@example.com,EMP401@EXAMPLE.COM';
|
|
var user_ids_string = people.emails_strings_to_user_ids_string(emails_string);
|
|
assert.equal(user_ids_string, '401,402');
|
|
}());
|