zulip/frontend_tests/node_tests
Wesley Aptekar-Cassels 673af19a4d typeahead: Always rank exact string match first.
Previously, exact matches could be pushed off the typeahead list in the
case where there were more prefix matches that happened to rank first,
which is confusing to the user: if an emoji, for instance, falls into
this category, it will never show up in typeahead, which is easy to
confuse with the emoji not existing.

This isn't a perfect fix — there are still cases where it's hard to find
emojis because the prefix-space is very crowded, but it does fix a
category of surprising and frustrating behaviour.

This doesn't come completely without downside - it means that the exact
match emoji will jump to the front of the list, which changes what is
currently conceptually a "filtering" operation to a "filtering and
sorting" operation, but it seems on the whole to be a more ideal
experience. This is particularly notable in the non-typeahead emoji
picker, which uses the same codepath, but this change seems somewhat
desirable even there, since it allows the user to type the name of an
emoji and press enter and have that emoji show up, without having to
visually confirm that they aren't inadvertently selecting a
prefix-matching emoji.

A better solution to this in the long term might be ordering emoji
results by shortest-first as a tiebreaker for alphabetical ordering,
since that should provide the same behaviour while keeping the mental
model as "filtering" (since the sort order won't change as the user
types), but this seems like a reasonable first pass, and changing to
shortest-first ordering after making this change won't break any muscle
memory for existing users.
2021-02-25 17:55:54 -08:00
..
lib tools: Rename tool to check-schemas. 2021-01-20 13:17:32 -08:00
activity.js zjquery: Remove bogus remove(). 2021-02-25 13:42:47 -05:00
alert_words_ui.js zjquery: Remove bogus remove(). 2021-02-25 13:42:47 -05:00
alert_words.js node_tests: Don’t read from most deprecated global variables. 2021-02-10 07:40:22 -08:00
billing_helpers.js node tests: Use array syntax more aggressively. 2021-02-23 09:15:36 -05:00
billing.js node tests: Use override/with_field in billing. 2021-02-23 09:15:36 -05:00
blueslip_stacktrace.js zjsunit: Deglobalize run_test. 2020-12-01 07:14:00 -05:00
bot_data.js node_tests: Don’t read from most deprecated global variables. 2021-02-10 07:40:22 -08:00
buddy_data.js node_tests: Don’t read page_params from deprecated global variable. 2021-02-22 19:46:42 -08:00
buddy_list.js node tests: Remove unnecessary test_ui wrappers. 2021-02-23 07:55:43 -05:00
channel.js node tests: Use array syntax more aggressively. 2021-02-23 09:15:36 -05:00
color_data.js node_tests: Don’t read from most deprecated global variables. 2021-02-10 07:40:22 -08:00
colorspace.js node_tests: Don’t read from most deprecated global variables. 2021-02-10 07:40:22 -08:00
common.js zjquery: Remove bogus remove(). 2021-02-25 13:42:47 -05:00
components.js node tests: Use array syntax more aggressively. 2021-02-23 09:15:36 -05:00
compose_actions.js node tests: Use override in more places. 2021-02-24 11:56:40 -05:00
compose_fade.js node_tests: Don’t read from most deprecated global variables. 2021-02-10 07:40:22 -08:00
compose_pm_pill.js node tests: Exercise compose_pm_pill callbacks. 2021-02-25 13:42:47 -05:00
compose_ui.js node_tests: Revert wrong conversion of some functions to arrows. 2021-02-23 11:35:55 -08:00
compose.js zjquery: Remove bogus remove(). 2021-02-25 13:42:47 -05:00
composebox_typeahead.js node_tests: Revert wrong conversion of some functions to arrows. 2021-02-23 11:35:55 -08:00
copy_and_paste.js dependencies: Upgrade Source Sans Pro font to Source Sans 3. 2021-02-23 14:55:33 -08:00
dispatch_subs.js node tests: Use array syntax more aggressively. 2021-02-23 09:15:36 -05:00
dispatch.js node tests: Use array syntax more aggressively. 2021-02-23 09:15:36 -05:00
drafts.js js: Convert static/js/localstorage.js to ES6 module. 2021-02-23 20:36:01 -08:00
dropdown_list_widget.js zjsunit: Clear $ elements in run_test. 2021-02-23 07:55:43 -05:00
echo.js node tests: Split up echo test. 2021-02-24 11:56:40 -05:00
emoji_picker.js node_tests: Don’t read from most deprecated global variables. 2021-02-10 07:40:22 -08:00
emoji.js zjsunit: Deglobalize run_test. 2020-12-01 07:14:00 -05:00
fenced_code.js zjsunit: Deglobalize run_test. 2020-12-01 07:14:00 -05:00
fetch_status.js js: Convert static/js/fetch_status.js to ES6 module. 2021-02-23 20:36:01 -08:00
filter.js node tests: Use override in more places. 2021-02-24 11:56:40 -05:00
fold_dict.js zjsunit: Deglobalize run_test. 2020-12-01 07:14:00 -05:00
hash_util.js zjquery: Make zjquery a singleton. 2021-02-21 17:34:55 -05:00
hashchange.js recent_topics: Add persistence for filters via localstorage. 2021-02-25 17:31:32 -08:00
hotkey.js hashchange: Extract func which checks current hash is in RT. 2021-02-25 17:31:33 -08:00
i18n.js zjsunit: Deglobalize run_test. 2020-12-01 07:14:00 -05:00
input_pill.js zjquery: Remove bogus remove(). 2021-02-25 13:42:47 -05:00
keydown_util.js zjquery: Make zjquery a singleton. 2021-02-21 17:34:55 -05:00
lazy_set.js eslint: Fix unicorn/no-array-callback-reference. 2021-01-25 14:53:19 -08:00
lightbox.js zjsunit: Clear $ elements in run_test. 2021-02-23 07:55:43 -05:00
list_cursor.js js: Convert static/js/list_cursor.js to ES6 module. 2021-02-23 20:36:01 -08:00
list_widget.js recent_topics: Call revive_current_focus as part of redraw process. 2021-02-25 17:31:32 -08:00
markdown_katex.js node_tests: Remove unnecessary zrequire calls for ES6 modules. 2021-02-10 07:35:11 -08:00
markdown.js node_tests: Don’t read page_params from deprecated global variable. 2021-02-22 19:46:42 -08:00
message_edit.js node_tests: Don’t read page_params from deprecated global variable. 2021-02-22 19:46:42 -08:00
message_events.js node_tests: Don’t read page_params from deprecated global variable. 2021-02-22 19:46:42 -08:00
message_fetch.js js: Convert static/js/message_list_data.js to ES6 module. 2021-02-23 20:36:01 -08:00
message_flags.js node_tests: Don’t read from most deprecated global variables. 2021-02-10 07:40:22 -08:00
message_list_data.js js: Convert static/js/message_list_data.js to ES6 module. 2021-02-23 20:36:01 -08:00
message_list_view.js js: Convert static/js/message_list_data.js to ES6 module. 2021-02-23 20:36:01 -08:00
message_list.js MessageListView: Don't reselect message_id if RT is open. 2021-02-25 17:31:32 -08:00
message_store.js node tests: Use array syntax more aggressively. 2021-02-23 09:15:36 -05:00
muting.js node_tests: Don’t read page_params from deprecated global variable. 2021-02-22 19:46:42 -08:00
narrow_activate.js narrow: Explicitly hide recent topics when changing narrow. 2021-02-25 17:31:32 -08:00
narrow_local.js js: Convert static/js/message_list_data.js to ES6 module. 2021-02-23 20:36:01 -08:00
narrow_state.js node_tests: Don’t read from most deprecated global variables. 2021-02-10 07:40:22 -08:00
narrow_unread.js node tests: Consolidate message_store.get stubs. 2021-02-24 11:56:40 -05:00
narrow.js node tests: Clean up narrow tests. 2021-02-24 11:56:40 -05:00
notifications.js node_tests: Don’t read page_params from deprecated global variable. 2021-02-22 19:46:42 -08:00
password.js node tests: Use array syntax more aggressively. 2021-02-23 09:15:36 -05:00
peer_data.js node_tests: Don’t read from most deprecated global variables. 2021-02-10 07:40:22 -08:00
people_errors.js node tests: Use array syntax more aggressively. 2021-02-23 09:15:36 -05:00
people.js node tests: Use override in more places. 2021-02-24 11:56:40 -05:00
pm_conversations.js zjsunit: Deglobalize run_test. 2020-12-01 07:14:00 -05:00
pm_list.js node tests: Remove unnecessary test_ui wrappers. 2021-02-23 07:55:43 -05:00
poll_widget.js zjsunit: Clear $ elements in run_test. 2021-02-23 07:55:43 -05:00
popovers.js zjsunit: Clear $ elements in run_test. 2021-02-23 07:55:43 -05:00
presence.js node tests: Use override in more places. 2021-02-24 11:56:40 -05:00
reactions.js node tests: Break out view tests for reactions. 2021-02-25 13:42:47 -05:00
recent_senders.js zjsunit: Deglobalize run_test. 2020-12-01 07:14:00 -05:00
recent_topics.js recent_topics: Don't show topics from unsubscribed streams. 2021-02-25 17:31:33 -08:00
rendered_markdown.js zjsunit: Clear $ elements in run_test. 2021-02-23 07:55:43 -05:00
rtl.js zjsunit: Deglobalize run_test. 2020-12-01 07:14:00 -05:00
schema.js node_tests: Don’t read from most deprecated global variables. 2021-02-10 07:40:22 -08:00
scroll_util.js node_tests: Don’t read from most deprecated global variables. 2021-02-10 07:40:22 -08:00
search_legacy.js zjquery: Make zjquery a singleton. 2021-02-21 17:34:55 -05:00
search_pill.js node tests: Use array syntax more aggressively. 2021-02-23 09:15:36 -05:00
search_suggestion_legacy.js node tests: Use array syntax more aggressively. 2021-02-23 09:15:36 -05:00
search_suggestion.js node tests: Use array syntax more aggressively. 2021-02-23 09:15:36 -05:00
search.js node tests: Use array syntax more aggressively. 2021-02-23 09:15:36 -05:00
server_events.js node tests: Use array syntax more aggressively. 2021-02-23 09:15:36 -05:00
settings_bots.js zjsunit: Clear $ elements in run_test. 2021-02-23 07:55:43 -05:00
settings_data.js node_tests: Don’t read page_params from deprecated global variable. 2021-02-22 19:46:42 -08:00
settings_emoji.js node tests: Use array syntax more aggressively. 2021-02-23 09:15:36 -05:00
settings_muting.js zjquery: Remove bogus remove(). 2021-02-25 13:42:47 -05:00
settings_org.js zjquery: Remove bogus remove(). 2021-02-25 13:42:47 -05:00
settings_profile_fields.js zjquery: Remove bogus remove(). 2021-02-25 13:42:47 -05:00
settings_user_groups.js node tests: Use array syntax more aggressively. 2021-02-23 09:15:36 -05:00
spoilers.js zjquery: Remove bogus remove(). 2021-02-25 13:42:47 -05:00
stream_data.js js: Convert static/js/message_list_data.js to ES6 module. 2021-02-23 20:36:01 -08:00
stream_edit.js node tests: Use array syntax more aggressively. 2021-02-23 09:15:36 -05:00
stream_events.js stream_events: Re-render RT after a stream is (un)muted. 2021-02-25 17:31:33 -08:00
stream_list.js js: Convert static/js/list_cursor.js to ES6 module. 2021-02-23 20:36:01 -08:00
stream_pill.js node_tests: Don’t read from most deprecated global variables. 2021-02-10 07:40:22 -08:00
stream_search.js zjquery: Make zjquery a singleton. 2021-02-21 17:34:55 -05:00
stream_sort.js zjsunit: Change override API to work with non-global modules. 2021-02-11 07:35:28 -05:00
stream_topic_history.js node tests: Use array syntax more aggressively. 2021-02-23 09:15:36 -05:00
submessage.js node tests: Use array syntax more aggressively. 2021-02-23 09:15:36 -05:00
subs.js node tests: Use array syntax more aggressively. 2021-02-23 09:15:36 -05:00
support.js zjquery: Make zjquery a singleton. 2021-02-21 17:34:55 -05:00
timerender.js node tests: Use array syntax more aggressively. 2021-02-23 09:15:36 -05:00
top_left_corner.js recent_topics: Recalculate space for stream list when activating. 2021-02-25 17:31:33 -08:00
topic_generator.js node tests: Use array syntax more aggressively. 2021-02-23 09:15:36 -05:00
topic_list_data.js node tests: Use override in topic_list_data. 2021-02-24 11:56:40 -05:00
transmit.js node tests: Use array syntax more aggressively. 2021-02-23 09:15:36 -05:00
tutorial.js recent_topics: Add persistence for filters via localstorage. 2021-02-25 17:31:32 -08:00
typeahead_helper.js node tests: Use array syntax more aggressively. 2021-02-23 09:15:36 -05:00
typeahead.js typeahead: Always rank exact string match first. 2021-02-25 17:55:54 -08:00
typing_data.js node_tests: Don’t read from most deprecated global variables. 2021-02-10 07:40:22 -08:00
typing_status.js node tests: Use array syntax more aggressively. 2021-02-23 09:15:36 -05:00
ui_init.js recent_topics: Add persistence for filters via localstorage. 2021-02-25 17:31:32 -08:00
ui.js node_tests: Skip unnecessary explicit uses of global. 2020-12-01 07:14:00 -05:00
unread.js node tests: Use array syntax more aggressively. 2021-02-23 09:15:36 -05:00
upgrade.js zjquery: Make zjquery a singleton. 2021-02-21 17:34:55 -05:00
upload.js ui: Remove warning for unsupported old Zulip desktop app. 2021-02-23 18:14:12 -08:00
user_events.js node tests: Use array syntax more aggressively. 2021-02-23 09:15:36 -05:00
user_groups.js node_tests: Don’t read from most deprecated global variables. 2021-02-10 07:40:22 -08:00
user_pill.js node_tests: Don’t read page_params from deprecated global variable. 2021-02-22 19:46:42 -08:00
user_status.js node_tests: Don’t read from most deprecated global variables. 2021-02-10 07:40:22 -08:00
util.js zjquery: Make zjquery a singleton. 2021-02-21 17:34:55 -05:00
vdom.js node_tests: Don’t read from most deprecated global variables. 2021-02-10 07:40:22 -08:00
widgetize.js node tests: Use override in widgetize. 2021-02-23 09:15:36 -05:00
zblueslip.js zjsunit: Deglobalize run_test. 2020-12-01 07:14:00 -05:00
zjquery.js zjquery: Prohibit extensions to $.fn. 2021-02-22 10:04:29 -05:00