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;
};