Use people.get_all_persons() for search_suggestion.js.

This is better than using page_params.people_list, which may
go out of sync when live updates happen.
This commit is contained in:
Steve Howell
2016-11-01 11:37:19 -07:00
committed by Tim Abbott
parent 2d945d7296
commit 06d7012113
2 changed files with 49 additions and 29 deletions

View File

@@ -5,18 +5,24 @@
// clean up after themselves, and they should explicitly stub all
// dependencies.
global.stub_out_jquery();
add_dependencies({
util: 'js/util.js',
Handlebars: 'handlebars',
Filter: 'js/filter.js',
typeahead_helper: 'js/typeahead_helper.js',
people: 'js/people.js',
stream_data: 'js/stream_data.js',
narrow: 'js/narrow.js'
});
var people = global.people;
var search = require('js/search_suggestion.js');
set_global('page_params', {
people_list: [], // TODO: should not need eventually
email: 'bob@zulip.com'
});
@@ -74,16 +80,21 @@ global.stream_data.populate_stream_topics_for_tests({});
return undefined;
};
global.page_params.people_list = [
{
email: 'ted@zulip.com',
full_name: 'Ted Smith'
},
{
email: 'alice@zulip.com',
full_name: 'Alice Ignore'
}
];
var ted =
{
email: 'ted@zulip.com',
user_id: 101,
full_name: 'Ted Smith'
};
var alice =
{
email: 'alice@zulip.com',
full_name: 'Alice Ignore'
};
people.add(ted);
people.add(alice);
var query = 'is:private';
var suggestions = search.get_suggestions(query);
@@ -182,7 +193,8 @@ global.stream_data.populate_stream_topics_for_tests({});
];
assert.deepEqual(suggestions.strings, expected);
global.page_params.people_list = [];
people.remove(ted);
people.remove(alice);
}());
(function test_empty_query_suggestions() {
@@ -349,20 +361,24 @@ global.stream_data.populate_stream_topics_for_tests({});
return;
};
global.page_params.people_list = [
{
email: 'ted@zulip.com',
full_name: 'Ted Smith'
},
{
email: 'bob@zulip.com',
full_name: 'Bob Terry'
},
{
email: 'alice@zulip.com',
full_name: 'Alice Ignore'
}
];
var ted = {
email: 'ted@zulip.com',
full_name: 'Ted Smith'
};
var bob = {
email: 'bob@zulip.com',
full_name: 'Bob Terry'
};
var alice = {
email: 'alice@zulip.com',
full_name: 'Alice Ignore'
};
people.add(ted);
people.add(bob);
people.add(alice);
global.stream_data.populate_stream_topics_for_tests({
office: [
@@ -400,4 +416,8 @@ global.stream_data.populate_stream_topics_for_tests({});
];
assert.deepEqual(suggestions.strings, expected);
people.remove(ted);
people.remove(bob);
people.remove(alice);
}());

View File

@@ -389,15 +389,15 @@ exports.get_suggestions = function (query) {
suggestions = get_stream_suggestions(operators);
result = result.concat(suggestions);
var people = page_params.people_list;
var persons = people.get_all_persons();
suggestions = get_person_suggestions(people, query, 'pm-with');
suggestions = get_person_suggestions(persons, query, 'pm-with');
result = result.concat(suggestions);
suggestions = get_person_suggestions(people, query, 'sender');
suggestions = get_person_suggestions(persons, query, 'sender');
result = result.concat(suggestions);
suggestions = get_private_suggestions(people, operators, ['pm-with', 'sender']);
suggestions = get_private_suggestions(persons, operators, ['pm-with', 'sender']);
result = result.concat(suggestions);
suggestions = get_topic_suggestions(operators);