node tests: Add test() wrapper for suggestions.

This commit is contained in:
Steve Howell
2021-03-12 18:42:25 +00:00
committed by Steve Howell
parent 9c1e21689b
commit 154daf353b
3 changed files with 54 additions and 58 deletions

View File

@@ -68,18 +68,25 @@ function init() {
people.add_active_user(jeff);
people.initialize_current_user(me.user_id);
stream_topic_history.reset();
huddle_data.clear_for_testing();
}
init();
page_params.is_admin = true;
stream_topic_history.reset();
function get_suggestions(base_query, query) {
return search.get_suggestions(base_query, query);
}
run_test("basic_get_suggestions", (override) => {
function test(label, f) {
run_test(label, (override) => {
init();
f(override);
});
}
test("basic_get_suggestions", (override) => {
const query = "fred";
override(stream_data, "subscribed_streams", () => []);
@@ -92,7 +99,7 @@ run_test("basic_get_suggestions", (override) => {
assert.deepEqual(suggestions.strings, expected);
});
run_test("subset_suggestions", () => {
test("subset_suggestions", () => {
const query = "shakespeare";
const base_query = "stream:Denmark topic:Hamlet";
@@ -103,7 +110,7 @@ run_test("subset_suggestions", () => {
assert.deepEqual(suggestions.strings, expected);
});
run_test("private_suggestions", () => {
test("private_suggestions", () => {
let query = "is:private";
let suggestions = get_suggestions("", query);
let expected = [
@@ -216,7 +223,7 @@ run_test("private_suggestions", () => {
assert.deepEqual(suggestions.strings, expected);
});
run_test("group_suggestions", () => {
test("group_suggestions", () => {
// Entering a comma in a pm-with query should immediately generate
// suggestions for the next person.
let query = "pm-with:bob@zulip.com,";
@@ -349,9 +356,7 @@ run_test("group_suggestions", () => {
assert.deepEqual(suggestions.strings, expected);
});
init();
run_test("empty_query_suggestions", (override) => {
test("empty_query_suggestions", (override) => {
const query = "";
override(stream_data, "subscribed_streams", () => ["devel", "office"]);
@@ -390,7 +395,7 @@ run_test("empty_query_suggestions", (override) => {
assert.equal(describe("has:attachment"), "Messages with one or more attachment");
});
run_test("has_suggestions", (override) => {
test("has_suggestions", (override) => {
// Checks that category wise suggestions are displayed instead of a single
// default suggestion when suggesting `has` operator.
let query = "h";
@@ -446,7 +451,7 @@ run_test("has_suggestions", (override) => {
assert.deepEqual(suggestions.strings, expected);
});
run_test("check_is_suggestions", (override) => {
test("check_is_suggestions", (override) => {
let query = "i";
override(stream_data, "subscribed_streams", () => ["devel", "office"]);
override(narrow_state, "stream", () => {});
@@ -550,7 +555,7 @@ run_test("check_is_suggestions", (override) => {
assert.deepEqual(suggestions.strings, expected);
});
run_test("sent_by_me_suggestions", (override) => {
test("sent_by_me_suggestions", (override) => {
override(stream_data, "subscribed_streams", () => []);
override(narrow_state, "stream", () => {});
@@ -626,7 +631,7 @@ run_test("sent_by_me_suggestions", (override) => {
assert.deepEqual(suggestions.strings, expected);
});
run_test("topic_suggestions", (override) => {
test("topic_suggestions", (override) => {
let suggestions;
let expected;
@@ -648,7 +653,6 @@ run_test("topic_suggestions", (override) => {
}
});
stream_topic_history.reset();
suggestions = get_suggestions("", "te");
expected = [
"te",
@@ -716,13 +720,11 @@ run_test("topic_suggestions", (override) => {
assert.deepEqual(suggestions.strings, expected);
});
run_test("whitespace_glitch", (override) => {
test("whitespace_glitch", (override) => {
const query = "stream:office "; // note trailing space
override(stream_data, "subscribed_streams", () => ["office"]);
stream_topic_history.reset();
const suggestions = get_suggestions("", query);
const expected = ["stream:office"];
@@ -730,13 +732,11 @@ run_test("whitespace_glitch", (override) => {
assert.deepEqual(suggestions.strings, expected);
});
run_test("stream_completion", (override) => {
test("stream_completion", (override) => {
override(stream_data, "subscribed_streams", () => ["office", "dev help"]);
override(narrow_state, "stream", () => {});
stream_topic_history.reset();
let query = "stream:of";
let suggestions = get_suggestions("", query);
let expected = ["stream:of", "stream:office"];
@@ -774,11 +774,9 @@ function people_suggestion_setup() {
full_name: "Alice Ignore",
};
people.add_active_user(alice);
stream_topic_history.reset();
}
run_test("people_suggestions", (override) => {
test("people_suggestions", (override) => {
override(narrow_state, "stream", noop);
people_suggestion_setup();
@@ -842,7 +840,7 @@ run_test("people_suggestions", (override) => {
assert.deepEqual(suggestions.strings, expected);
});
run_test("people_suggestion (Admin only email visibility)", (override) => {
test("people_suggestion (Admin only email visibility)", (override) => {
/* Suggestions when realm_email_address_visibility is set to admin
only */
override(narrow_state, "stream", noop);
@@ -874,7 +872,7 @@ run_test("people_suggestion (Admin only email visibility)", (override) => {
assert.equal(describe("sender:ted@zulip.com"), "Sent by <strong>Te</strong>d Smith");
});
run_test("operator_suggestions", () => {
test("operator_suggestions", () => {
// Completed operator should return nothing
let query = "stream:";
let suggestions = get_suggestions("", query);
@@ -903,11 +901,9 @@ run_test("operator_suggestions", () => {
assert.deepEqual(suggestions.strings, expected);
});
run_test("queries_with_spaces", (override) => {
test("queries_with_spaces", (override) => {
override(stream_data, "subscribed_streams", () => ["office", "dev help"]);
stream_topic_history.reset();
// test allowing spaces with quotes surrounding operand
let query = 'stream:"dev he"';
let suggestions = get_suggestions("", query);
@@ -929,7 +925,7 @@ run_test("queries_with_spaces", (override) => {
// When input search query contains multiple operators
// and a pill hasn't been formed from those operators.
run_test("multiple_operators_without_pills", () => {
test("multiple_operators_without_pills", () => {
let query = "is:private al";
let base_query = "";
let suggestions = get_suggestions(base_query, query);

View File

@@ -65,18 +65,25 @@ function init() {
people.add_active_user(jeff);
people.initialize_current_user(me.user_id);
stream_topic_history.reset();
huddle_data.clear_for_testing();
}
init();
page_params.is_admin = true;
stream_topic_history.reset();
function get_suggestions(base_query, query) {
return search.get_suggestions(base_query, query);
}
run_test("basic_get_suggestions", (override) => {
function test(label, f) {
run_test(label, (override) => {
init();
f(override);
});
}
test("basic_get_suggestions", (override) => {
const query = "fred";
override(stream_data, "subscribed_streams", () => []);
@@ -89,7 +96,7 @@ run_test("basic_get_suggestions", (override) => {
assert.deepEqual(suggestions.strings, expected);
});
run_test("subset_suggestions", () => {
test("subset_suggestions", () => {
const query = "stream:Denmark topic:Hamlet shakespeare";
const suggestions = get_suggestions("", query);
@@ -103,7 +110,7 @@ run_test("subset_suggestions", () => {
assert.deepEqual(suggestions.strings, expected);
});
run_test("private_suggestions", () => {
test("private_suggestions", () => {
let query = "is:private";
let suggestions = get_suggestions("", query);
let expected = [
@@ -212,7 +219,7 @@ run_test("private_suggestions", () => {
assert.deepEqual(suggestions.strings, expected);
});
run_test("group_suggestions", () => {
test("group_suggestions", () => {
// Entering a comma in a pm-with query should immediately generate
// suggestions for the next person.
let query = "pm-with:bob@zulip.com,";
@@ -352,9 +359,7 @@ run_test("group_suggestions", () => {
assert.deepEqual(suggestions.strings, expected);
});
init();
run_test("empty_query_suggestions", (override) => {
test("empty_query_suggestions", (override) => {
const query = "";
override(stream_data, "subscribed_streams", () => ["devel", "office"]);
@@ -393,7 +398,7 @@ run_test("empty_query_suggestions", (override) => {
assert.equal(describe("has:attachment"), "Messages with one or more attachment");
});
run_test("has_suggestions", (override) => {
test("has_suggestions", (override) => {
// Checks that category wise suggestions are displayed instead of a single
// default suggestion when suggesting `has` operator.
let query = "h";
@@ -452,7 +457,7 @@ run_test("has_suggestions", (override) => {
assert.deepEqual(suggestions.strings, expected);
});
run_test("check_is_suggestions", (override) => {
test("check_is_suggestions", (override) => {
override(stream_data, "subscribed_streams", () => ["devel", "office"]);
override(narrow_state, "stream", () => {});
@@ -521,7 +526,7 @@ run_test("check_is_suggestions", (override) => {
assert.deepEqual(suggestions.strings, expected);
});
run_test("sent_by_me_suggestions", (override) => {
test("sent_by_me_suggestions", (override) => {
override(stream_data, "subscribed_streams", () => []);
override(narrow_state, "stream", () => {});
@@ -592,7 +597,7 @@ run_test("sent_by_me_suggestions", (override) => {
assert.deepEqual(suggestions.strings, expected);
});
run_test("topic_suggestions", (override) => {
test("topic_suggestions", (override) => {
let suggestions;
let expected;
@@ -614,7 +619,6 @@ run_test("topic_suggestions", (override) => {
}
});
stream_topic_history.reset();
suggestions = get_suggestions("", "te");
expected = [
"te",
@@ -688,13 +692,11 @@ run_test("topic_suggestions", (override) => {
assert.deepEqual(suggestions.strings, expected);
});
run_test("whitespace_glitch", (override) => {
test("whitespace_glitch", (override) => {
const query = "stream:office "; // note trailing space
override(stream_data, "subscribed_streams", () => ["office"]);
stream_topic_history.reset();
const suggestions = get_suggestions("", query);
const expected = ["stream:office"];
@@ -702,13 +704,11 @@ run_test("whitespace_glitch", (override) => {
assert.deepEqual(suggestions.strings, expected);
});
run_test("stream_completion", (override) => {
test("stream_completion", (override) => {
override(stream_data, "subscribed_streams", () => ["office", "dev help"]);
override(narrow_state, "stream", () => {});
stream_topic_history.reset();
let query = "stream:of";
let suggestions = get_suggestions("", query);
let expected = ["stream:of", "stream:office"];
@@ -725,7 +725,7 @@ run_test("stream_completion", (override) => {
assert.deepEqual(suggestions.strings, expected);
});
run_test("people_suggestions", (override) => {
test("people_suggestions", (override) => {
let query = "te";
override(stream_data, "subscribed_streams", () => []);
@@ -753,8 +753,6 @@ run_test("people_suggestions", (override) => {
people.add_active_user(bob);
people.add_active_user(alice);
stream_topic_history.reset();
let suggestions = get_suggestions("", query);
let expected = [
@@ -807,7 +805,7 @@ run_test("people_suggestions", (override) => {
assert.deepEqual(suggestions.strings, expected);
});
run_test("operator_suggestions", () => {
test("operator_suggestions", () => {
// Completed operator should return nothing
let query = "stream:";
let suggestions = get_suggestions("", query);
@@ -841,11 +839,9 @@ run_test("operator_suggestions", () => {
assert.deepEqual(suggestions.strings, expected);
});
run_test("queries_with_spaces", (override) => {
test("queries_with_spaces", (override) => {
override(stream_data, "subscribed_streams", () => ["office", "dev help"]);
stream_topic_history.reset();
// test allowing spaces with quotes surrounding operand
let query = 'stream:"dev he"';
let suggestions = get_suggestions("", query);

View File

@@ -4,6 +4,10 @@ import * as people from "./people";
const huddle_timestamps = new Map();
export function clear_for_testing() {
huddle_timestamps.clear();
}
export function process_loaded_messages(messages) {
for (const message of messages) {
const huddle_string = people.huddle_string(message);