mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-03 21:43:21 +00:00 
			
		
		
		
	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.)
		
			
				
	
	
		
			122 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			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: 'me@example.com',
 | 
						|
    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=foo@example.com');
 | 
						|
    people.report_late_add(55, 'foo@example.com');
 | 
						|
    assert.equal(blueslip.get_test_logs('error').length, 1);
 | 
						|
    blueslip.clear_test_data();
 | 
						|
 | 
						|
    reload.is_in_progress = true;
 | 
						|
    people.report_late_add(55, 'foo@example.com');
 | 
						|
    assert.equal(blueslip.get_test_logs('log').length, 1);
 | 
						|
    assert.equal(blueslip.get_test_logs('log')[0], 'Added user late: user_id=55 email=foo@example.com');
 | 
						|
    assert.equal(blueslip.get_test_logs('error').length, 0);
 | 
						|
    blueslip.clear_test_data();
 | 
						|
});
 | 
						|
 | 
						|
run_test('blueslip', () => {
 | 
						|
    var unknown_email = "alicebobfred@example.com";
 | 
						|
 | 
						|
    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 person@example.com');
 | 
						|
    var person = {
 | 
						|
        email: 'person@example.com',
 | 
						|
        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 person@example.com');
 | 
						|
    var user_id = people.get_user_id('person@example.com');
 | 
						|
    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: 'charles@example.com',
 | 
						|
        user_id: 451,
 | 
						|
        full_name: 'Charles Dickens',
 | 
						|
        avatar_url: 'charles.com/foo.png',
 | 
						|
    };
 | 
						|
    var maria = {
 | 
						|
        email: 'athens@example.com',
 | 
						|
        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();
 | 
						|
});
 |