zulip/frontend_tests/node_tests
Aman Agrawal a13058223d compose: Don't allow same message to be sent twice.
It is possible to send the message twice by clicking send button
very quickly twice or by pressing enter and send button simultaneously.

This can be easily reproduced for large messages sent in a stream
narrow. Hard to reproduce for small messages or in PM narrows.

I was not able to reproduce locally, but was able to reproduce on
chat.zulip.org. So, this is an untested bug fix.

Fixes #22562
2023-01-18 16:04:58 -08:00
..
lib compose banner: Add specific functions to clear warnings and errors. 2022-12-14 20:36:07 -08:00
templates Revert "templates: Add {{#let}} block helper." 2021-04-13 17:41:10 -07:00
activity.js eslint: Enable object-shorthand avoidExplicitReturnArrows option. 2022-11-17 16:48:44 -08:00
alert_words_ui.js settings: Improve success feedback for deleting alert words 2022-11-22 16:23:56 -08:00
alert_words.js alert_words: Fix alert words with HTML special characters. 2022-03-04 12:26:49 -08:00
billing_helpers.js eslint: Enable object-shorthand avoidExplicitReturnArrows option. 2022-11-17 16:48:44 -08:00
billing.js eslint: Enable object-shorthand avoidExplicitReturnArrows option. 2022-11-17 16:48:44 -08:00
blueslip_stacktrace.js dependencies: Upgrade JavaScript dependencies. 2021-05-10 18:07:13 -07:00
bot_data.js confirm_deactivate_user: Provide additional information about user. 2022-07-26 17:03:02 -07:00
browser_history.js docs: Consistently hyphenate “web-public”. 2022-01-28 17:45:45 -08:00
buddy_data.js people: Use names in PM urls instead of emails. 2022-10-25 10:42:00 -07:00
buddy_list.js js: Prefix jQuery object variable names with $. 2022-03-16 12:52:07 -07:00
channel.js eslint: Enable object-shorthand avoidExplicitReturnArrows option. 2022-11-17 16:48:44 -08:00
color_data.js node_tests: Remove low-hanging uses of __Rewire__. 2022-07-13 16:27:30 -07:00
colorspace.js colorspace: Remove unused methods. 2021-05-21 16:53:30 -07:00
common.js eslint: Enable object-shorthand avoidExplicitReturnArrows option. 2022-11-17 16:48:44 -08:00
components.js Rename "operators" to "filters" in "Search operators" reference. 2022-12-09 13:52:13 -08:00
compose_actions.js compose_state: Use stream_name() and topic() universally. 2022-12-15 17:26:04 -08:00
compose_closed_ui.js message_lists: Remove cases for table_name being undefined. 2022-08-18 12:30:30 -07:00
compose_fade.js node_tests: Enforce 100% coverage for test files. 2022-04-10 19:31:56 -04:00
compose_pm_pill.js node_tests: Remove low-hanging uses of __Rewire__. 2022-07-13 16:27:30 -07:00
compose_state.js compose_state: Break out stream_name() into separate getter and setter. 2022-12-15 17:25:36 -08:00
compose_ui.js compose: Always preserve cursor position post replacement in a textarea. 2022-12-14 12:40:51 -08:00
compose_validate.js compose_state: Break out stream_name() into separate getter and setter. 2022-12-15 17:25:36 -08:00
compose_video.js eslint: Enable object-shorthand avoidExplicitReturnArrows option. 2022-11-17 16:48:44 -08:00
compose.js compose: Don't allow same message to be sent twice. 2023-01-18 16:04:58 -08:00
composebox_typeahead.js typeahead: Add message view context to PM recipient suggestions. 2023-01-18 15:50:04 -08:00
copy_and_paste.js docs: Update global links to new contributing guide URL. 2022-08-25 11:25:02 -07:00
deprecated_feature_notice.js deprecated_feature_notice: Migrate modal to dialog_widget. 2021-10-29 16:09:39 -07:00
dispatch_subs.js left-sidebar: Make Subscribe to more streams more informative. 2022-08-15 12:32:43 -07:00
dispatch.js account-settings: Disable deactivate account button when only owner. 2023-01-11 13:30:31 -08:00
drafts.js compose_state: Break out stream_name() into separate getter and setter. 2022-12-15 17:25:36 -08:00
dropdown_list_widget.js eslint: Enable object-shorthand avoidExplicitReturnArrows option. 2022-11-17 16:48:44 -08:00
echo.js eslint: Enable object-shorthand avoidExplicitReturnArrows option. 2022-11-17 16:48:44 -08:00
emoji_picker.js emoji: Remove variation selector when generating emoji. 2022-12-06 12:33:59 -08:00
emoji.js emojis: Un-share the emoji.js module. 2022-04-04 13:28:49 -07:00
event_status.js eslint: Enable object-shorthand avoidExplicitReturnArrows option. 2022-11-17 16:48:44 -08:00
example1.js custom_check: Avoid use of assert to avoid confusion with assert.equal. 2021-06-10 09:15:57 -07:00
example2.js narrow: Fix messages being cached without flags set. 2022-03-24 08:10:14 -07:00
example3.js node_tests: Replace set_global with mock_esm in example4.js. 2021-07-22 09:47:47 -04:00
example4.js node_tests: Replace set_global with mock_esm in example4.js. 2021-07-22 09:47:47 -04:00
example5.js eslint: Enable object-shorthand avoidExplicitReturnArrows option. 2022-11-17 16:48:44 -08:00
example6.js node_tests: Enforce 100% coverage for test files. 2022-04-10 19:31:56 -04:00
example7.js recent_topics: Add mention indicator in row for unread topics. 2022-10-19 16:26:42 -07:00
example8.js node_tests: Remove low-hanging uses of __Rewire__. 2022-07-13 16:27:30 -07:00
fenced_code.js node tests: Move test to fenced_code.js. 2021-03-12 11:18:44 -05:00
fetch_status.js eslint: Enable object-shorthand avoidExplicitReturnArrows option. 2022-11-17 16:48:44 -08:00
filter.js filter: Show pm_with title with near narrow links. 2022-10-28 17:41:47 -07:00
fold_dict.js node_tests: Fix incorrect usage of assert.throws. 2021-08-10 13:18:53 -07:00
gear_menu.js gear menu: Add organization info. 2022-10-13 23:45:25 -07:00
hash_util.js people: Use names in PM urls instead of emails. 2022-10-25 10:42:00 -07:00
hashchange.js gear_menu: Delete unused Bootstrap tabs code. 2022-11-22 13:55:21 -08:00
hotkey.js actions_popover: Use tippyjs instead of bootstrap to display popover. 2022-12-06 09:58:40 -08:00
i18n.js left_side_userlist: Remove feature from frontend. 2022-11-14 12:23:55 -08:00
input_pill.js eslint: Enable object-shorthand avoidExplicitReturnArrows option. 2022-11-17 16:48:44 -08:00
internal_url.js hash_util: Rename _uri functions to _url. 2022-03-01 18:14:31 -08:00
keydown_util.js eslint: Enable object-shorthand avoidExplicitReturnArrows option. 2022-11-17 16:48:44 -08:00
lazy_set.js custom_check: Avoid use of assert to avoid confusion with assert.equal. 2021-06-10 09:15:57 -07:00
lightbox.js eslint: Enable object-shorthand avoidExplicitReturnArrows option. 2022-11-17 16:48:44 -08:00
linkifiers.js markdown: Nest get_linkifiers_regexes(). 2022-04-05 12:42:15 +00:00
list_cursor.js eslint: Enable object-shorthand avoidExplicitReturnArrows option. 2022-11-17 16:48:44 -08:00
list_widget.js eslint: Enable object-shorthand avoidExplicitReturnArrows option. 2022-11-17 16:48:44 -08:00
markdown_parse.js markdown: Calculate linkifier precedence in topics. 2022-12-13 15:16:20 -08:00
markdown.js eslint: Enable object-shorthand avoidExplicitReturnArrows option. 2022-11-17 16:48:44 -08:00
message_edit.js message_edit: Remove get_editability function. 2022-12-13 23:11:50 -08:00
message_events.js message_lists: Add a function to return rendered message_lists. 2022-08-18 12:30:30 -07:00
message_fetch.js eslint: Enable object-shorthand avoidExplicitReturnArrows option. 2022-11-17 16:48:44 -08:00
message_flags.js eslint: Enable object-shorthand avoidExplicitReturnArrows option. 2022-11-17 16:48:44 -08:00
message_list_data.js user_topics: Rename muted_topics.js to user_topics.js. 2022-08-16 14:39:24 -07:00
message_list_view.js message_list_view: Remove dead next_is_same_sender code. 2023-01-14 14:49:28 -08:00
message_list.js message_lists: Remove cases for table_name being undefined. 2022-08-18 12:30:30 -07:00
message_store.js recent: Sort PM recipients by their last sent message id. 2022-11-29 11:29:12 -08:00
muted_users.js muted_users: Pop muted_users from page_params. 2022-12-30 11:21:23 -08:00
narrow_activate.js message_list: Remove message_list.narrowed from code. 2022-12-12 18:04:11 -08:00
narrow_local.js eslint: Enable object-shorthand avoidExplicitReturnArrows option. 2022-11-17 16:48:44 -08:00
narrow_state.js node_tests: Minor cleanup for "subject" references. 2022-10-04 11:59:22 -07:00
narrow_unread.js user_topics: Rename muted_topics.js to user_topics.js. 2022-08-16 14:39:24 -07:00
narrow.js compose_state: Break out stream_name() into separate getter and setter. 2022-12-15 17:25:36 -08:00
navbar_alerts.js node_tests: Enforce 100% coverage for test files. 2022-04-10 19:31:56 -04:00
notifications.js user_topics: Rename muted_topics.js to user_topics.js. 2022-08-16 14:39:24 -07:00
password.js node_tests: Enforce 100% coverage for test files. 2022-04-10 19:31:56 -04:00
peer_data.js stream_data: Rename is_subscribed to is_subscribed_by_name. 2021-11-22 15:44:30 -08:00
people_errors.js node_tests: Remove low-hanging uses of __Rewire__. 2022-07-13 16:27:30 -07:00
people.js account-settings: Disable deactivate account button when only owner. 2023-01-11 13:30:31 -08:00
pill_typeahead.js input_pill: Remove random IDs. 2022-07-11 11:44:47 -07:00
pm_conversations.js user_topics: Rename set_muted_topics to set_user_topics. 2022-08-29 17:24:08 -07:00
pm_list_data.js Fix typos caught by typos. 2023-01-03 11:09:50 -08:00
pm_list.js pm_section: Create collapsible private messages section. 2022-10-26 13:47:08 -07:00
poll_widget.js js: Prefix jQuery object variable names with $. 2022-03-16 12:52:07 -07:00
popovers.js actions_popover: Use tippyjs instead of bootstrap to display popover. 2022-12-06 09:58:40 -08:00
presence.js node_tests: Remove low-hanging uses of __Rewire__. 2022-07-13 16:27:30 -07:00
reactions.js reactions: Implement display_emoji_reaction_users setting. 2022-10-27 12:41:51 -07:00
recent_senders.js recent: Sort PM recipients by their last sent message id. 2022-11-29 11:29:12 -08:00
recent_topics.js narrow: Update narrow title for undefined filter views. 2022-12-15 13:05:22 -08:00
reload_state.js node tests: Use {override} in run_test. 2021-06-16 12:55:53 -04:00
reload.js reload: Preserve unused reload tokens for a week. 2022-09-23 10:59:59 -07:00
rendered_markdown.js eslint: Enable object-shorthand avoidExplicitReturnArrows option. 2022-11-17 16:48:44 -08:00
resolved_topic.js resolved_topic: Implement resolve, unresolve, and display. 2022-03-07 21:35:00 -08:00
rtl.js js: Prefix jQuery object variable names with $. 2022-03-16 12:52:07 -07:00
schema.js node_tests: Don’t read from most deprecated global variables. 2021-02-10 07:40:22 -08:00
scroll_util.js js: Prefix jQuery object variable names with $. 2022-03-16 12:52:07 -07:00
search_future.js gear_menu: Delete unused Bootstrap tabs code. 2022-11-22 13:55:21 -08:00
search_now.js gear_menu: Delete unused Bootstrap tabs code. 2022-11-22 13:55:21 -08:00
search_pill.js refactor: Change description to description_html in search suggestions. 2022-08-16 13:56:33 -07:00
search_suggestion_future.js search_suggestion: Show profile pictures in autocomplete suggestions. 2022-08-16 14:17:42 -07:00
search_suggestion_now.js search_suggestion: Show profile pictures in autocomplete suggestions. 2022-08-16 14:17:42 -07:00
server_events.js node_tests: Enforce 100% coverage for test files. 2022-04-10 19:31:56 -04:00
settings_bots.js settings_bots: Move "Add a new bot" tab inside a modal. 2022-09-23 12:06:51 -07:00
settings_config.js settings_config: Pass settings object as parameter to all_notifications. 2021-09-16 15:46:41 -07:00
settings_data.js settings-account: Move disable change email logic out of template. 2022-12-30 17:54:00 -08:00
settings_emoji.js zjsunit: Wire $ to zjquery by default. 2021-06-16 12:55:53 -04:00
settings_muted_topics.js user_topics: Rename muted_topics.js to user_topics.js. 2022-08-16 14:39:24 -07:00
settings_muted_users.js node_tests: Remove low-hanging uses of __Rewire__. 2022-07-13 16:27:30 -07:00
settings_org.js settings-profile: Move tooltip for name change disabled to field. 2023-01-18 13:39:16 -08:00
settings_profile_fields.js eslint: Enable object-shorthand avoidExplicitReturnArrows option. 2022-11-17 16:48:44 -08:00
settings_realm_domains.js realm_domains_modal: Migrate modal to dialog_widget. 2022-07-07 14:56:45 -07:00
settings_user_groups_legacy.js user groups: Rename settings_user_groups to settings_user_groups_legacy. 2022-08-23 17:30:39 -07:00
spoilers.js js: Prefix jQuery object variable names with $. 2022-03-16 12:52:07 -07:00
starred_messages.js node_tests: Remove low-hanging uses of __Rewire__. 2022-07-13 16:27:30 -07:00
stream_create_subscribers_data.js node_tests: Remove low-hanging uses of __Rewire__. 2022-07-13 16:27:30 -07:00
stream_data.js streams: Return early from can_post_messages_in_stream for spectators. 2022-12-15 17:26:04 -08:00
stream_edit.js stream settings: Allow modifying of email address. 2022-11-04 14:22:27 -07:00
stream_events.js eslint: Enable object-shorthand avoidExplicitReturnArrows option. 2022-11-17 16:48:44 -08:00
stream_list.js eslint: Enable object-shorthand avoidExplicitReturnArrows option. 2022-11-17 16:48:44 -08:00
stream_pill.js node tests: Directly test simple stream_pill helpers. 2022-02-22 16:29:36 -08:00
stream_search.js eslint: Enable object-shorthand avoidExplicitReturnArrows option. 2022-11-17 16:48:44 -08:00
stream_settings_ui.js eslint: Enable object-shorthand avoidExplicitReturnArrows option. 2022-11-17 16:48:44 -08:00
stream_sort.js stream_list: Sort muted to end of sections and add labels. 2022-08-06 21:59:23 -07:00
stream_topic_history.js recent_topics: Add mention indicator in row for unread topics. 2022-10-19 16:26:42 -07:00
submessage.js node tests: Use {override} in run_test. 2021-06-16 12:55:53 -04:00
support.js eslint: Enable object-shorthand avoidExplicitReturnArrows option. 2022-11-17 16:48:44 -08:00
templates.js zjsunit: Optionally exercise template code. 2021-06-15 12:33:26 -04:00
timerender.js js: Fix no-jquery/no-parse-html-literal. 2022-03-17 13:16:34 -07:00
top_left_corner.js eslint: Enable object-shorthand avoidExplicitReturnArrows option. 2022-11-17 16:48:44 -08:00
topic_generator.js unread: Rename function name for clarity. 2022-10-24 10:23:20 -07:00
topic_list_data.js recent_topics: Add mention indicator in row for unread topics. 2022-10-19 16:26:42 -07:00
transmit.js node_tests: Remove low-hanging uses of __Rewire__. 2022-07-13 16:27:30 -07:00
typeahead_helper.js Fix typos caught by typos. 2023-01-03 11:09:50 -08:00
typeahead.js emoji_picker: Allow filtering emojis by unicode characters in emoji picker. 2022-05-31 10:02:57 -07:00
typing_data.js js: Split out muted_users module from muting. 2021-06-30 16:32:55 -07:00
typing_events.js node_tests: Remove low-hanging uses of __Rewire__. 2022-07-13 16:27:30 -07:00
typing_status.js node_tests: Remove low-hanging uses of __Rewire__. 2022-07-13 16:27:30 -07:00
unread.js unread: Pop unread_msgs from page_params for initialization. 2022-10-27 13:03:54 -07:00
upgrade.js node_tests: Enforce 100% coverage for test files. 2022-04-10 19:31:56 -04:00
upload.js eslint: Enable object-shorthand avoidExplicitReturnArrows option. 2022-11-17 16:48:44 -08:00
user_events.js user-events: Update account settings display if is_admin is changed. 2023-01-04 16:26:21 -08:00
user_group_pill.js node tests: Directly test user_group_pill helpers. 2022-02-22 16:29:36 -08:00
user_groups.js user_groups: Pass user group object instead of id to get_recursive_subgroups. 2022-05-17 14:51:55 -07:00
user_pill.js status_emoji: Show status emoji in compose_pm pills. 2022-02-11 13:30:08 -08:00
user_search.js eslint: Enable object-shorthand avoidExplicitReturnArrows option. 2022-11-17 16:48:44 -08:00
user_status.js eslint: Enable object-shorthand avoidExplicitReturnArrows option. 2022-11-17 16:48:44 -08:00
user_topics.js user_topics: Rename muting.js to user_topics.js. 2022-09-22 08:40:28 -07:00
util.js util: Add function get_string_diff. 2023-01-06 16:53:57 -08:00
vdom.js eslint: Enable object-shorthand avoidExplicitReturnArrows option. 2022-11-17 16:48:44 -08:00
watchdog.js zjsunit: Defer run_test execution to the end of the test module. 2022-08-18 08:55:31 -07:00
widgetize.js eslint: Enable object-shorthand avoidExplicitReturnArrows option. 2022-11-17 16:48:44 -08:00
zblueslip.js docs: Fix many spelling mistakes. 2022-02-07 18:51:06 -08:00
zjquery.js js: Fix no-jquery/no-parse-html-literal. 2022-03-17 13:16:34 -07:00