From 154daf353bfc5ac0256be3c9186218345cc2b597 Mon Sep 17 00:00:00 2001 From: Steve Howell Date: Fri, 12 Mar 2021 18:42:25 +0000 Subject: [PATCH] node tests: Add test() wrapper for suggestions. --- .../node_tests/search_suggestion.js | 56 +++++++++---------- .../node_tests/search_suggestion_legacy.js | 52 ++++++++--------- static/js/huddle_data.js | 4 ++ 3 files changed, 54 insertions(+), 58 deletions(-) diff --git a/frontend_tests/node_tests/search_suggestion.js b/frontend_tests/node_tests/search_suggestion.js index ef48c1b94f..96922b2371 100644 --- a/frontend_tests/node_tests/search_suggestion.js +++ b/frontend_tests/node_tests/search_suggestion.js @@ -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 Ted 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); diff --git a/frontend_tests/node_tests/search_suggestion_legacy.js b/frontend_tests/node_tests/search_suggestion_legacy.js index da429e42bc..bf819c51b5 100644 --- a/frontend_tests/node_tests/search_suggestion_legacy.js +++ b/frontend_tests/node_tests/search_suggestion_legacy.js @@ -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); diff --git a/static/js/huddle_data.js b/static/js/huddle_data.js index ef50456e12..bd75aebbd4 100644 --- a/static/js/huddle_data.js +++ b/static/js/huddle_data.js @@ -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);