zulip/frontend_tests/node_tests
Abhijeet Prasad Bodas 7f9c3bb4d0 starred messages: Fix "unstar all in topic" is incomplete.
Currently, when there are some old starred messages
in a topic, it is possible that some of them won't be
unstarred on doing "Unstar all messages in topic".
This happens when those messages haven't been fetched
yet from the server, and we have no way to verify if
they actually belong to the topic.

This commit fixes that by changing this mechanism to
first fetch all starred messages in the topic from
the server, and then send their IDs back to the backend
to unstar them.

While doing this, we assume that the user does not
have more than 1000 starred messages in that topic.

Note that, we still depend on the local data to
decide whether or not the "Unstar all messages in
topic" option should be shown in the topic popover.
A method similar to the above cannot be used here, because
making server requests before opening the popover
could visually slow down the popover opening.

Using local data for the topic popover would probably
not be a big problem, because users would want to
unstar all messages in a topic probably after noticing
that there are a lot of them, meaning there was at least
one starred message from that topic which was already
fetched, which is sufficient for us to conclude that
we need to show the option in the topic popover.

Fixes #17790
2021-04-29 16:43:39 -07:00
..
lib users: Add role field to user objects returned by format_user_row. 2021-04-29 15:13:50 -07:00
templates Revert "templates: Add {{#let}} block helper." 2021-04-13 17:41:10 -07:00
activity.js mute user: Hide from right sidebar users list. 2021-04-26 17:44:18 -07:00
alert_words_ui.js i18n: Automatically convert remaining JavaScript messages to FormatJS. 2021-04-13 17:41:10 -07:00
alert_words.js alert_words: Fix highlighting of adjacent alert words. 2021-04-28 07:54:50 -07:00
billing_helpers.js js: Convert static/js/page_params.js to ES6 module. 2021-03-26 10:17:56 -07:00
billing.js zjsunit: Do not run $(...) automatically. 2021-03-13 11:48:50 -05:00
blueslip_stacktrace.js zjsunit: Deglobalize run_test. 2020-12-01 07:14:00 -05:00
bot_data.js bots: Lift render_bots calls to dispatcher code. 2021-03-22 19:40:06 -07:00
browser_history.js settings: Allow switching between user and org settings manually. 2021-04-07 01:02:03 -07:00
buddy_data.js mute user: Hide from right sidebar users list. 2021-04-26 17:44:18 -07:00
buddy_list.js node tests: Use clean BuddyList instance in tests. 2021-03-18 16:37:20 -04:00
channel.js node tests: Add test() wrapper for channel. 2021-03-20 11:00:48 -04:00
color_data.js js: Convert static/js/color_data.js to ES6 module. 2021-02-28 14:23:00 -08:00
colorspace.js node_tests: Don’t read from most deprecated global variables. 2021-02-10 07:40:22 -08:00
common.js passwords: Set title/aria-label attributes dynamically. 2021-04-23 15:01:37 -07:00
components.js i18n: Automatically convert remaining JavaScript messages to FormatJS. 2021-04-13 17:41:10 -07:00
compose_actions.js js: Move current_msg_list, home_msg_list to ES6 module message_lists. 2021-03-29 18:23:47 -07:00
compose_fade.js refactor: Extract can_view_subscribers(). 2021-04-05 09:52:19 -07:00
compose_pm_pill.js js: Use jQuery as a module. 2021-03-12 10:08:25 -08:00
compose_state.js zjsunit: Lift restriction against mocking third party modules. 2021-03-12 10:06:30 -08:00
compose_ui.js i18n: Automatically convert remaining JavaScript messages to FormatJS. 2021-04-13 17:41:10 -07:00
compose_video.js giphy: Fix incorrectly working show/hide behaviour. 2021-04-29 09:02:25 -07:00
compose.js giphy: Fix incorrectly working show/hide behaviour. 2021-04-29 09:02:25 -07:00
composebox_typeahead.js test users: Add an escape char to a test username. 2021-04-13 11:42:06 -07:00
copy_and_paste.js node tests: Explicitly set page_params values. 2021-04-03 15:03:00 -04:00
dispatch_subs.js refactor: Use sub_store for get/validation. 2021-04-15 17:26:17 -07:00
dispatch.js giphy: Set rating according to realm_giphy_rating. 2021-04-28 07:07:36 -07:00
drafts.js js: Convert static/js/page_params.js to ES6 module. 2021-03-26 10:17:56 -07:00
dropdown_list_widget.js i18n: Automatically convert remaining JavaScript messages to FormatJS. 2021-04-13 17:41:10 -07:00
echo.js node tests: Use override for rerender_messages. 2021-04-03 15:03:00 -04:00
emoji_picker.js zjsunit: Remove rewiremock dependency. 2021-03-06 11:10:57 -05:00
emoji.js zjsunit: Remove rewiremock dependency. 2021-03-06 11:10:57 -05:00
example1.js node tests: Split up tutorial into smaller examples. 2021-03-15 10:46:00 -04:00
example2.js refactor: Extract message_helper.process_new_message. 2021-03-29 14:53:57 -07:00
example3.js js: Convert static/js/page_params.js to ES6 module. 2021-03-26 10:17:56 -07:00
example4.js node tests: Split up tutorial into smaller examples. 2021-03-15 10:46:00 -04:00
example5.js message_list: Downgrade message_list.all to MessageListData. 2021-03-30 08:33:47 -07:00
example6.js node tests: Split up tutorial into smaller examples. 2021-03-15 10:46:00 -04:00
example7.js message_list: Downgrade message_list.all to MessageListData. 2021-03-30 08:33:47 -07:00
fenced_code.js node tests: Move test to fenced_code.js. 2021-03-12 11:18:44 -05:00
fetch_status.js zjsunit: Lift restriction against mocking third party modules. 2021-03-12 10:06:30 -08:00
filter.js filter: Return false for invalid filters. 2021-04-01 21:53:22 -07:00
fold_dict.js zjsunit: Deglobalize run_test. 2020-12-01 07:14:00 -05:00
hash_util.js js: Use jQuery as a module. 2021-03-12 10:08:25 -08:00
hashchange.js refactor: Extract browser_history module. 2021-03-22 13:29:32 -07:00
hotkey.js settings_data: Add 'user_can_create_streams' helper. 2021-04-28 15:37:00 -07:00
i18n.js node_tests: Fix (non-fatal) error from i18n test. 2021-04-27 11:56:32 -07:00
input_pill.js refactor: Add type field to pill items. 2021-04-27 12:07:57 -07:00
keydown_util.js zjquery: Make zjquery a singleton. 2021-02-21 17:34:55 -05:00
lazy_set.js js: Convert static/js/blueslip.js to ES6 module. 2021-03-17 08:47:15 -04:00
lightbox.js node tests: Add test() wrapper for lightbox. 2021-03-14 10:46:45 -04:00
list_cursor.js js: Convert static/js/blueslip.js to ES6 module. 2021-03-17 08:47:15 -04:00
list_widget.js stream_create: Use ListWidget to render list of all users. 2021-04-25 08:54:08 -07:00
markdown_katex.js js: Convert static/js/page_params.js to ES6 module. 2021-03-26 10:17:56 -07:00
markdown.js linkifiers: Update API to send data using dictionaries. 2021-04-13 12:16:07 -07:00
message_edit.js js: Convert static/js/page_params.js to ES6 module. 2021-03-26 10:17:56 -07:00
message_events.js js: Move current_msg_list, home_msg_list to ES6 module message_lists. 2021-03-29 18:23:47 -07:00
message_fetch.js docs: Fix spelling errors caught by codespell. 2021-04-26 09:31:08 -07:00
message_flags.js starred messages: Fix "unstar all in topic" is incomplete. 2021-04-29 16:43:39 -07:00
message_list_data.js message list: Stub with Error instead of asserting zero calls in tests. 2021-04-29 16:21:51 -07:00
message_list_view.js js: Move current_msg_list, home_msg_list to ES6 module message_lists. 2021-03-29 18:23:47 -07:00
message_list.js node tests: Remove redundant muting tests for message lists. 2021-04-29 16:13:06 -07:00
message_store.js node tests: Clear message_user_ids. 2021-04-03 15:03:00 -04:00
muting.js node tests: Clear muted users in test() wrapper. 2021-04-14 07:49:22 -04:00
narrow_activate.js message_list: Downgrade message_list.all to MessageListData. 2021-03-30 08:33:47 -07:00
narrow_local.js message_list: Downgrade message_list.all to MessageListData. 2021-03-30 08:33:47 -07:00
narrow_state.js js: Convert static/js/page_params.js to ES6 module. 2021-03-26 10:17:56 -07:00
narrow_unread.js refactor: Extract message_helper.process_new_message. 2021-03-29 14:53:57 -07:00
narrow.js refactor: Extract can_toggle_subscription(sub). 2021-04-05 09:52:19 -07:00
notifications.js notifications: Add support for None option in Notification sound. 2021-04-27 16:42:16 -07:00
password.js js: Extract password_quality module; remove zxcvbn from globals. 2021-04-24 13:08:52 -07:00
peer_data.js refactor: Extract can_view_subscribers(). 2021-04-05 09:52:19 -07:00
people_errors.js js: Convert static/js/blueslip.js to ES6 module. 2021-03-17 08:47:15 -04:00
people.js users: Show user role as 'moderator' in frontend for realm moderators. 2021-04-29 15:18:49 -07:00
pm_conversations.js mute user: Hide from top left corner PM list. 2021-04-29 16:13:06 -07:00
pm_list.js pm_list: Show correct unread unread counts. 2021-04-15 10:08:50 -07:00
poll_widget.js shared: Move PollData into shared. 2021-04-19 06:34:08 -04:00
popovers.js users: Use role value directly to display user role text in frontend. 2021-04-29 15:18:49 -07:00
presence.js refactor: Move suspect_offline logic into watchdog. 2021-03-23 14:08:39 -04:00
reactions.js node tests: Explicitly set page_params values. 2021-04-03 15:03:00 -04:00
recent_senders.js refactor: Simplify recent_senders code. 2021-04-14 16:28:07 -07:00
recent_topics.js minor: Move narrow mock to be in lexical order. 2021-04-17 09:09:15 -07:00
reload_state.js node tests: Add test() wrapper for reload_state. 2021-03-22 15:11:28 -04:00
rendered_markdown.js rendered_markdown: Fix stream-topic parser. 2021-04-29 12:16:49 -07:00
rtl.js node tests: Directly test how we add/remove rtl class. 2021-03-05 12:57:20 -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 zjsunit: Lift restriction against mocking third party modules. 2021-03-12 10:06:30 -08:00
search_legacy.js js: Convert static/js/page_params.js to ES6 module. 2021-03-26 10:17:56 -07:00
search_pill.js node tests: Eliminate many __Rewire__ calls. 2021-03-07 11:19:33 -05:00
search_suggestion_legacy.js node tests: Explicitly set page_params values. 2021-04-03 15:03:00 -04:00
search_suggestion.js node tests: Explicitly set page_params values. 2021-04-03 15:03:00 -04:00
search.js node tests: Explicitly set page_params values. 2021-04-03 15:03:00 -04:00
server_events.js js: Move current_msg_list, home_msg_list to ES6 module message_lists. 2021-03-29 18:23:47 -07:00
settings_bots.js node tests: Explicitly set page_params values. 2021-04-03 15:03:00 -04:00
settings_config.js js: Convert static/js/page_params.js to ES6 module. 2021-03-26 10:17:56 -07:00
settings_data.js settings: Add moderators option in frontend for invite_to_realm_policy. 2021-04-29 15:18:49 -07:00
settings_emoji.js js: Use jQuery as a module. 2021-03-12 10:08:25 -08:00
settings_muted_topics.js topic muting: Clean up live update code. 2021-04-27 17:53:06 -07:00
settings_muted_users.js settings: Add UI page for managing muted users. 2021-04-21 10:17:44 -07:00
settings_org.js setting: Add moderator option in create stream and invite to stream policy. 2021-04-29 15:18:49 -07:00
settings_profile_fields.js template: Move admin_profile_field_list template to settings folder. 2021-04-26 09:37:20 -07:00
settings_user_groups.js template: Move admin_user_group_list template to settings folder. 2021-04-26 09:37:30 -07:00
spoilers.js js: Use jQuery as a module. 2021-03-12 10:08:25 -08:00
starred_messages.js starred messages: Fix "unstar all in topic" is incomplete. 2021-04-29 16:43:39 -07:00
stream_data.js refactor: Use sub_store for get/validation. 2021-04-15 17:26:17 -07:00
stream_edit.js setting(streams): Add pill support to subscribe all members of group. 2021-04-19 17:41:50 -07:00
stream_events.js refactor: Avoid update_calculated_fields() calls. 2021-04-05 09:52:19 -07:00
stream_list.js bug fix: Fix today's regression with topic counts. 2021-04-14 16:29:49 -07:00
stream_pill.js refactor: Add type field to pill items. 2021-04-27 12:07:57 -07:00
stream_search.js js: Use jQuery as a module. 2021-03-12 10:08:25 -08:00
stream_sort.js code cleanup: Remove obsolete stream_sort code. 2021-03-13 11:48:50 -05:00
stream_topic_history.js refactor: Extract stream_topic_history_util. 2021-04-15 17:26:17 -07:00
submessage.js zjsunit: Lift restriction against mocking third party modules. 2021-03-12 10:06:30 -08:00
subs.js subscription: Use tippy for tooltip. 2021-04-07 17:38:40 -07:00
support.js zjsunit: Do not run $(...) automatically. 2021-03-13 11:48:50 -05:00
templates.js Revert "templates: Add {{#let}} block helper." 2021-04-13 17:41:10 -07:00
timerender.js i18n: Automatically convert remaining JavaScript messages to FormatJS. 2021-04-13 17:41:10 -07:00
top_left_corner.js top_left_corner: Directly use span.unread_count to display unreads. 2021-04-14 10:57:16 -07:00
topic_generator.js node tests: Eliminate many __Rewire__ calls. 2021-03-07 11:19:33 -05:00
topic_list_data.js node tests: Add test() wrapper for topic_list_data. 2021-03-12 17:52:04 -05:00
transmit.js js: Convert static/js/page_params.js to ES6 module. 2021-03-26 10:17:56 -07:00
typeahead_helper.js refactor: Remove redundant typeahead_helper.sort_recipientbox_typeahead. 2021-04-19 17:41:50 -07:00
typeahead.js minor: Check if typeahead query exists. 2021-03-25 02:08:51 -07:00
typing_data.js node tests: Add test() wrapper for typing_data. 2021-03-15 13:05:49 -04:00
typing_status.js node tests: Call initialize_state() earlier. 2021-03-15 13:05:49 -04:00
ui.js node_tests: Consistently move set_global mocks before zrequire calls. 2021-02-26 07:55:53 -08:00
unread.js refactor: Use sub_store for get/validation. 2021-04-15 17:26:17 -07:00
upgrade.js node tests: Explicitly set page_params values. 2021-04-03 15:03:00 -04:00
upload.js compose: Use class to find markdown_preview related elements. 2021-04-27 10:06:25 -07:00
user_events.js user_events: Update the role field in person object on change of role. 2021-04-29 15:27:15 -07:00
user_group_pill.js refactor: Add type field to pill items. 2021-04-27 12:07:57 -07:00
user_groups.js js: Convert static/js/blueslip.js to ES6 module. 2021-03-17 08:47:15 -04:00
user_pill.js refactor: Add type field to pill items. 2021-04-27 12:07:57 -07:00
user_status.js js: Convert static/js/blueslip.js to ES6 module. 2021-03-17 08:47:15 -04:00
util.js node tests: Clean up robust_uri_decode. 2021-03-12 04:42:37 -05:00
vdom.js js: Convert static/js/blueslip.js to ES6 module. 2021-03-17 08:47:15 -04:00
watchdog.js refactor: Move suspect_offline logic into watchdog. 2021-03-23 14:08:39 -04:00
widgetize.js js: Move current_msg_list, home_msg_list to ES6 module message_lists. 2021-03-29 18:23:47 -07:00
zblueslip.js js: Convert static/js/blueslip.js to ES6 module. 2021-03-17 08:47:15 -04:00
zjquery.js zjquery: Prohibit extensions to $.fn. 2021-02-22 10:04:29 -05:00