zulip/frontend_tests/node_tests/people_errors.js
Steve Howell 42435db492 Add run_test helper for individual tests.
This run_test helper sets up a convention that allows
us to give really short tracebacks for errors, and
eventually we can have more control over running
individual tests.  (The latter goal has some
complications, since we often intentionally leak
setup in tests.)
2018-05-15 08:24:44 -07:00

122 lines
4.0 KiB
JavaScript

zrequire('people');
set_global('reload', {
is_in_progress: false,
});
set_global('blueslip', global.make_zblueslip({
debug: true, // testing for debug is disabled by default.
}));
var me = {
email: '[email protected]',
user_id: 30,
full_name: 'Me Myself',
timezone: 'US/Pacific',
};
people.init();
people.add(me);
people.initialize_current_user(me.user_id);
run_test('report_late_add', () => {
blueslip.set_test_data('error', 'Added user late: user_id=55 [email protected]');
people.report_late_add(55, '[email protected]');
assert.equal(blueslip.get_test_logs('error').length, 1);
blueslip.clear_test_data();
reload.is_in_progress = true;
people.report_late_add(55, '[email protected]');
assert.equal(blueslip.get_test_logs('log').length, 1);
assert.equal(blueslip.get_test_logs('log')[0], 'Added user late: user_id=55 [email protected]');
assert.equal(blueslip.get_test_logs('error').length, 0);
blueslip.clear_test_data();
});
run_test('blueslip', () => {
var unknown_email = "[email protected]";
blueslip.set_test_data('debug', 'User email operand unknown: ' + unknown_email);
people.id_matches_email_operand(42, unknown_email);
assert.equal(blueslip.get_test_logs('debug').length, 1);
blueslip.clear_test_data();
blueslip.set_test_data('error', 'Unknown email for get_user_id: ' + unknown_email);
people.get_user_id(unknown_email);
assert.equal(blueslip.get_test_logs('error').length, 1);
blueslip.clear_test_data();
blueslip.set_test_data('warn', 'No user_id provided for [email protected]');
var person = {
email: '[email protected]',
user_id: undefined,
full_name: 'Person Person',
};
people.add(person);
assert.equal(blueslip.get_test_logs('warn').length, 1);
blueslip.clear_test_data();
blueslip.set_test_data('error', 'No user_id found for [email protected]');
var user_id = people.get_user_id('[email protected]');
assert.equal(user_id, undefined);
assert.equal(blueslip.get_test_logs('error').length, 1);
blueslip.clear_test_data();
blueslip.set_test_data('error', 'Unknown user ids: 1,2');
people.user_ids_string_to_emails_string('1,2');
assert.equal(blueslip.get_test_logs('error').length, 1);
blueslip.clear_test_data();
blueslip.set_test_data('warn', 'Unknown emails: ' + unknown_email);
people.email_list_to_user_ids_string(unknown_email);
assert.equal(blueslip.get_test_logs('warn').length, 1);
blueslip.clear_test_data();
var message = {
type: 'private',
display_recipient: [],
sender_id: me.user_id,
};
blueslip.set_test_data('error', 'Empty recipient list in message');
people.pm_with_user_ids(message);
people.group_pm_with_user_ids(message);
assert.equal(blueslip.get_test_logs('error').length, 2);
blueslip.clear_test_data();
var charles = {
email: '[email protected]',
user_id: 451,
full_name: 'Charles Dickens',
avatar_url: 'charles.com/foo.png',
};
var maria = {
email: '[email protected]',
user_id: 452,
full_name: 'Maria Athens',
};
people.add(charles);
people.add(maria);
message = {
type: 'private',
display_recipient: [
{id: maria.user_id},
{id: 42},
{user_id: charles.user_id},
],
sender_id: charles.user_id,
};
blueslip.set_test_data('error', 'Unknown user id in message: 42');
var reply_to = people.pm_reply_to(message);
assert(reply_to.indexOf('?') > -1);
assert.equal(blueslip.get_test_logs('error').length, 1);
blueslip.clear_test_data();
people.pm_with_user_ids = function () { return [42]; };
people.get_person_from_user_id = function () { return; };
blueslip.set_test_data('error', 'Unknown people in message');
var uri = people.pm_with_url({});
assert.equal(uri.indexOf('unk'), uri.length - 3);
assert.equal(blueslip.get_test_logs('error').length, 1);
blueslip.clear_test_data();
});