zulip/frontend_tests/node_tests
Abhijeet Prasad Bodas 42aea49784 left sidebar: Add support to unstar all messages in topic.
This adds support for unstarring all (starred)
messages from a particular topic, from the topic
popover.

The earlier implementation of this in #16898
was reverted in bc55aa6a01 (#17429)
because it had two problems-

1. The crash reported in bc55aa6a01
was due to message_store returning undefined. This happens
when the message itself hasn't been fetched from the server
yet, but we know that the message is starred from the ids
in `page_params` in `starred_messages.js`.
This commit handles this case explicitly.
Note that, we simply ignore those messages which
we haven't fetched, and because of this, it may
happen that we don't unstar some messages from that
topic. The correct implementation for this would
be to ask the backend for starred IDs in a topic.

2. The earlier implementation actually unstarred **all**
messages. This was because it grabbed the topic and stream_id
from the topic popover `data` attributes, after the topic
popover had been closed. This passed `undefined`, which
the function then interpreted as an action to unstar all
messages.
With this commit, we use the confirm_dialog widget,
which eliminates the need to store this data in the DOM.
2021-03-23 00:17:15 -07:00
..
lib display_settings: Allow user to set default_view. 2021-03-11 18:09:08 -08:00
activity.js refactor: Extract watchdog module. 2021-03-22 13:17:37 -07:00
alert_words_ui.js js: Use jQuery as a module. 2021-03-12 10:08:25 -08:00
alert_words.js node tests: Avoid intra-test leaks for alert_words. 2021-03-08 10:45:17 -05:00
billing_helpers.js node tests: Explicitly set hash for billing test. 2021-03-13 11:48:50 -05: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 refactor: Extract browser_history module. 2021-03-22 13:29:32 -07:00
buddy_data.js compose fade: Extract compose_fade_users class. 2021-03-21 20:16:08 -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 zjsunit: Do not run $(...) automatically. 2021-03-13 11:48:50 -05:00
components.js node tests: Add env var to components test. 2021-03-14 08:11:25 -04:00
compose_actions.js node tests: Set compose state for compose_actions tests. 2021-03-16 09:04:26 -04:00
compose_fade.js compose fade: Extract compose_fade_users class. 2021-03-21 20:16:08 -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 js: Use jQuery as a module. 2021-03-12 10:08:25 -08:00
compose_video.js js: Use jQuery as a module. 2021-03-12 10:08:25 -08:00
compose.js js: Convert static/js/blueslip.js to ES6 module. 2021-03-17 08:47:15 -04:00
composebox_typeahead.js node tests: Use more overrides in composebox_typeahead. 2021-03-16 14:53:52 -04:00
copy_and_paste.js js: Use jQuery as a module. 2021-03-12 10:08:25 -08:00
dispatch_subs.js js: Convert static/js/blueslip.js to ES6 module. 2021-03-17 08:47:15 -04:00
dispatch.js bots: Lift render_bots calls to dispatcher code. 2021-03-22 19:40:06 -07:00
drafts.js node tests: Clean up drafts tests. 2021-03-14 08:11:25 -04:00
dropdown_list_widget.js js: Convert static/js/blueslip.js to ES6 module. 2021-03-17 08:47:15 -04:00
echo.js zjsunit: Lift restriction against mocking third party modules. 2021-03-12 10:06:30 -08: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 node tests: Split up tutorial into smaller examples. 2021-03-15 10:46:00 -04:00
example3.js node tests: Split up tutorial into smaller examples. 2021-03-15 10:46:00 -04:00
example4.js node tests: Split up tutorial into smaller examples. 2021-03-15 10:46:00 -04:00
example5.js node tests: Split up tutorial into smaller examples. 2021-03-15 10:46:00 -04:00
example6.js node tests: Split up tutorial into smaller examples. 2021-03-15 10:46:00 -04:00
example7.js node tests: Split up tutorial into smaller examples. 2021-03-15 10:46:00 -04: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 node tests: Add test() wrapper for filter tests. 2021-03-16 09:04:26 -04: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 refactor: Extract browser_history module. 2021-03-22 13:29:32 -07:00
i18n.js node_tests: Consistently move set_global mocks before zrequire calls. 2021-02-26 07:55:53 -08:00
input_pill.js js: Convert static/js/blueslip.js to ES6 module. 2021-03-17 08:47:15 -04: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 js: Convert static/js/blueslip.js to ES6 module. 2021-03-17 08:47:15 -04:00
markdown_katex.js js: Convert static/js/blueslip.js to ES6 module. 2021-03-17 08:47:15 -04:00
markdown.js js: Convert static/js/blueslip.js to ES6 module. 2021-03-17 08:47:15 -04: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 js: Use jQuery as a module. 2021-03-12 10:08:25 -08:00
message_fetch.js js: Use jQuery as a module. 2021-03-12 10:08:25 -08:00
message_flags.js zjsunit: Lift restriction against mocking third party modules. 2021-03-12 10:06:30 -08:00
message_list_data.js js: Convert static/js/blueslip.js to ES6 module. 2021-03-17 08:47:15 -04:00
message_list_view.js zjsunit: Lift restriction against mocking third party modules. 2021-03-12 10:06:30 -08:00
message_list.js js: Convert static/js/blueslip.js to ES6 module. 2021-03-17 08:47:15 -04:00
message_store.js js: Convert static/js/blueslip.js to ES6 module. 2021-03-17 08:47:15 -04:00
muting.js js: Convert static/js/blueslip.js to ES6 module. 2021-03-17 08:47:15 -04:00
narrow_activate.js js: Use jQuery as a module. 2021-03-12 10:08:25 -08:00
narrow_local.js zjsunit: Lift restriction against mocking third party modules. 2021-03-12 10:06:30 -08:00
narrow_state.js node tests: Clear data for narrow_state tests. 2021-03-10 07:07:34 -05:00
narrow_unread.js node tests: Introduce message_store.create_mock_message() helper. 2021-03-18 15:55:39 -07:00
narrow.js js: Use jQuery as a module. 2021-03-12 10:08:25 -08:00
notifications.js js: Use jQuery as a module. 2021-03-12 10:08:25 -08:00
password.js node tests: Break up password tests. 2021-03-12 04:42:37 -05:00
peer_data.js js: Convert static/js/blueslip.js to ES6 module. 2021-03-17 08:47:15 -04:00
people_errors.js js: Convert static/js/blueslip.js to ES6 module. 2021-03-17 08:47:15 -04:00
people.js node tests: Add huddle_string test. 2021-03-19 13:24:55 -04:00
pm_conversations.js node tests: Clean pm_conversations more simply. 2021-03-18 16:37:20 -04:00
pm_list.js node tests: Clean pm_conversations more simply. 2021-03-18 16:37:20 -04:00
poll_widget.js js: Convert static/js/blueslip.js to ES6 module. 2021-03-17 08:47:15 -04:00
popovers.js markdown: Fix a bug in query_and_reply. 2021-03-16 16:40:37 -07:00
presence.js js: Convert static/js/blueslip.js to ES6 module. 2021-03-17 08:47:15 -04:00
reactions.js js: Convert static/js/blueslip.js to ES6 module. 2021-03-17 08:47:15 -04:00
recent_senders.js zjsunit: Lift restriction against mocking third party modules. 2021-03-12 10:06:30 -08:00
recent_topics.js node tests: Add explicit stub_templates calls. 2021-03-16 14:53:52 -04:00
reload_state.js node tests: Add test() wrapper for reload_state. 2021-03-22 15:11:28 -04:00
rendered_markdown.js js: Convert static/js/blueslip.js to ES6 module. 2021-03-17 08:47:15 -04: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: Use jQuery as a module. 2021-03-12 10:08:25 -08:00
search_pill.js node tests: Eliminate many __Rewire__ calls. 2021-03-07 11:19:33 -05:00
search_suggestion_legacy.js node tests: Add test() wrapper for suggestions. 2021-03-12 15:29:23 -05:00
search_suggestion.js node tests: Add test() wrapper for suggestions. 2021-03-12 15:29:23 -05:00
search.js js: Use jQuery as a module. 2021-03-12 10:08:25 -08:00
server_events.js js: Convert static/js/blueslip.js to ES6 module. 2021-03-17 08:47:15 -04:00
settings_bots.js js: Use jQuery as a module. 2021-03-12 10:08:25 -08:00
settings_config.js refactor: Move get_notifications_table_row_data. 2021-03-22 13:17:37 -07:00
settings_data.js refactor: Move user_can_change_* to settings_data. 2021-03-21 17:07:41 -07:00
settings_emoji.js js: Use jQuery as a module. 2021-03-12 10:08:25 -08:00
settings_muting.js node tests: Remove needless reset test. 2021-03-14 10:46:45 -04:00
settings_org.js js: Convert static/js/blueslip.js to ES6 module. 2021-03-17 08:47:15 -04:00
settings_profile_fields.js js: Use jQuery as a module. 2021-03-12 10:08:25 -08:00
settings_user_groups.js js: Convert static/js/blueslip.js to ES6 module. 2021-03-17 08:47:15 -04:00
spoilers.js js: Use jQuery as a module. 2021-03-12 10:08:25 -08:00
starred_messages.js left sidebar: Add support to unstar all messages in topic. 2021-03-23 00:17:15 -07:00
stream_data.js js: Convert static/js/blueslip.js to ES6 module. 2021-03-17 08:47:15 -04:00
stream_edit.js refactor: Extract browser_history module. 2021-03-22 13:29:32 -07:00
stream_events.js js: Convert static/js/blueslip.js to ES6 module. 2021-03-17 08:47:15 -04:00
stream_list.js node tests: Avoid __Rewire__ in stream_list. 2021-03-13 14:47:49 -05: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 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 node tests: Add test() wrapper for stream_topic_history. 2021-03-13 11:48:50 -05:00
submessage.js zjsunit: Lift restriction against mocking third party modules. 2021-03-12 10:06:30 -08:00
subs.js js: Use jQuery as a module. 2021-03-12 10:08:25 -08:00
support.js zjsunit: Do not run $(...) automatically. 2021-03-13 11:48:50 -05:00
timerender.js node tests: Ensure clean data for timerender tests. 2021-03-14 11:38:21 -04:00
top_left_corner.js js: Use jQuery as a module. 2021-03-12 10:08:25 -08: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/blueslip.js to ES6 module. 2021-03-17 08:47:15 -04:00
typeahead_helper.js node tests: Clear more data for typeahead_helper. 2021-03-16 09:04:26 -04:00
typeahead.js zjsunit: Remove rewiremock dependency. 2021-03-06 11:10:57 -05: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 node tests: Introduce message_store.create_mock_message() helper. 2021-03-18 15:55:39 -07:00
upgrade.js zjsunit: Do not run $(...) automatically. 2021-03-13 11:48:50 -05:00
upload.js js: Use jQuery as a module. 2021-03-12 10:08:25 -08:00
user_events.js js: Convert static/js/blueslip.js to ES6 module. 2021-03-17 08:47:15 -04:00
user_groups.js js: Convert static/js/blueslip.js to ES6 module. 2021-03-17 08:47:15 -04:00
user_pill.js node_tests: Consistently move set_global mocks before zrequire calls. 2021-02-26 07:55:53 -08: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: Extract watchdog module. 2021-03-22 13:17:37 -07:00
widgetize.js js: Convert static/js/blueslip.js to ES6 module. 2021-03-17 08:47:15 -04: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