tests: Test "all" mentions more realistically.

We don't have people named "all".  Instead, we
create pseudo person objects with email/full_name
of "all" (along with some other fields).  The tests
now reflect this.
This commit is contained in:
Steve Howell 2020-01-03 11:06:53 +00:00 committed by Tim Abbott
parent d227988519
commit 773161cbb7
1 changed files with 39 additions and 47 deletions

View File

@ -19,6 +19,13 @@ zrequire('settings_org');
const th = zrequire('typeahead_helper');
const LazySet = zrequire('lazy_set.js').LazySet;
function assertSameEmails(lst1, lst2) {
assert.deepEqual(
_.map(lst1, (r) => r.email),
_.map(lst2, (r) => r.email)
);
}
stream_data.create_streams([
{name: 'Dev', subscribed: true, color: 'blue', stream_id: 1},
{name: 'Linux', subscribed: true, color: 'red', stream_id: 2},
@ -301,29 +308,32 @@ run_test('sort_recipients', () => {
]);
});
const all_obj = {
email: 'all',
full_name: 'all',
};
run_test('sort_recipients all mention', () => {
// Test person email is "all" or "everyone"
const person = {
email: "all",
full_name: "All",
is_admin: false,
is_bot: false,
user_id: 42,
};
people.add_in_realm(person);
const test_objs = matches.concat([all_obj]);
assert.deepEqual(get_typeahead_result("a", "Linux", "Linux Topic"), [
'all',
'a_user@zulip.org',
'a_bot@zulip.com',
'zman@test.net',
'b_user_3@zulip.net',
'b_bot@example.com',
'b_user_1@zulip.net',
'b_user_2@zulip.net',
const results = th.sort_recipients(
test_objs,
'a',
'Linux',
'Linux Topic'
);
assertSameEmails(results, [
all_obj,
a_user,
a_bot,
zman,
b_user_3,
b_bot,
b_user_1,
b_user_2,
]);
people.deactivate(person);
});
run_test('sort_recipients pm counts', () => {
@ -368,39 +378,21 @@ run_test('sort_recipients dup bots', () => {
run_test('sort_recipients dup alls', () => {
// full_name starts with same character but emails are 'all'
const small_matches = [
{
email: "all",
full_name: "All 1",
is_admin: false,
is_bot: false,
user_id: 43,
}, {
email: "a_user@zulip.net",
full_name: "A user",
is_admin: false,
is_bot: false,
user_id: 44,
}, {
email: "all",
full_name: "All 2",
is_admin: false,
is_bot: false,
user_id: 45,
},
const test_objs = [
all_obj,
a_user,
all_obj,
];
const recipients = th.sort_recipients(small_matches, "a", "Linux", "Linux Topic");
const recipients = th.sort_recipients(
test_objs, "a", "Linux", "Linux Topic");
const recipients_email = _.map(recipients, function (person) {
return person.email;
});
const expected = [
'all',
'all',
'a_user@zulip.net',
all_obj,
all_obj,
a_user,
];
assert.deepEqual(recipients_email, expected);
assertSameEmails(recipients, expected);
});
run_test('sort_recipients subscribers', () => {