diff --git a/frontend_tests/node_tests/composebox_typeahead.js b/frontend_tests/node_tests/composebox_typeahead.js index 3a748d09ba878..9d4813c932a50 100644 --- a/frontend_tests/node_tests/composebox_typeahead.js +++ b/frontend_tests/node_tests/composebox_typeahead.js @@ -14,6 +14,7 @@ zrequire('user_pill'); zrequire('compose_pm_pill'); zrequire('composebox_typeahead'); zrequire('recent_senders'); +zrequire('settings_org'); set_global('md5', function (s) { return 'md5-' + s; }); @@ -613,17 +614,17 @@ run_test('initialize', () => { // corresponding parts in bold. options.query = 'oth'; actual_value = options.highlighter(othello); - expected_value = ' \nOthello, the Moor of Venice  \nothello@zulip.com\n'; + expected_value = ' \nOthello, the Moor of Venice'; assert.equal(actual_value, expected_value); options.query = 'Lear'; actual_value = options.highlighter(cordelia); - expected_value = ' \nCordelia Lear  \ncordelia@zulip.com\n'; + expected_value = ' \nCordelia Lear'; assert.equal(actual_value, expected_value); options.query = 'othello@zulip.com, co'; actual_value = options.highlighter(cordelia); - expected_value = ' \nCordelia Lear  \ncordelia@zulip.com\n'; + expected_value = ' \nCordelia Lear'; assert.equal(actual_value, expected_value); // options.matcher() @@ -776,7 +777,7 @@ run_test('initialize', () => { // content_highlighter. fake_this = { completing: 'mention', token: 'othello' }; actual_value = options.highlighter.call(fake_this, othello); - expected_value = ' \nOthello, the Moor of Venice  \nothello@zulip.com\n'; + expected_value = ' \nOthello, the Moor of Venice'; assert.equal(actual_value, expected_value); fake_this = { completing: 'mention', token: 'hamletcharacters' }; diff --git a/frontend_tests/node_tests/typeahead_helper.js b/frontend_tests/node_tests/typeahead_helper.js index a658669d182cb..8a1015c47d0c3 100644 --- a/frontend_tests/node_tests/typeahead_helper.js +++ b/frontend_tests/node_tests/typeahead_helper.js @@ -1,3 +1,4 @@ +set_global('i18n', global.stub_i18n); set_global('page_params', {realm_is_zephyr_mirror_realm: false}); set_global('templates', {}); set_global('md5', function (s) { @@ -14,6 +15,7 @@ zrequire('stream_data'); zrequire('narrow'); zrequire('hash_util'); zrequire('marked', 'third/marked/lib/marked'); +zrequire('settings_org'); var th = zrequire('typeahead_helper'); stream_data.create_streams([ @@ -399,7 +401,23 @@ run_test('highlight_with_escaping', () => { assert.equal(result, expected); }); +run_test('render_person when emails hidden', () => { + // Test render_person with regular person, under hidden email visiblity case + settings_org.show_email = () => false; + var rendered = false; + global.templates.render = function (template_name, args) { + assert.equal(template_name, 'typeahead_list_item'); + assert.equal(args.primary, matches[2].full_name); + assert.equal(args.secondary, undefined); + rendered = true; + return 'typeahead-item-stub'; + }; + assert.equal(th.render_person(matches[2]), 'typeahead-item-stub'); + assert(rendered); +}); + run_test('render_person', () => { + settings_org.show_email = () => true; // Test render_person with regular person var rendered = false; global.templates.render = function (template_name, args) { diff --git a/static/js/typeahead_helper.js b/static/js/typeahead_helper.js index 7e87d115bb2da..39a5e4e070b77 100644 --- a/static/js/typeahead_helper.js +++ b/static/js/typeahead_helper.js @@ -91,15 +91,17 @@ exports.render_person = function (person) { if (html === undefined) { var avatar_url = people.small_avatar_url_for_person(person); - html = exports.render_typeahead_item({ + var typeahead_arguments = { primary: person.full_name, - secondary: person.email, img_src: avatar_url, is_person: true, - }); + }; + if (settings_org.show_email()) { + typeahead_arguments.secondary = person.email; + } + html = exports.render_typeahead_item(typeahead_arguments); rendered.persons.set(person.user_id, html); } - return html; };