discourse/plugins/chat/spec/system
Joffrey JAFFEUX 90efdd7f9d
PERF: cook message in background (#24227)
This commit starts from a simple observation: cooking messages on the hot path can be slow. Especially with a lot of mentions.

To move cooking from the hot path, this commit has made the following changes:

- updating cooked, inserting mentions and notifying user of new mentions has been moved inside the `process_message` job. It happens right after the `Chat::MessageProcessor` run, which is where the cooking happens.
- the similar existing code in `rebake!` has also been moved to rely on the `process_message`job only
- refactored `create_mentions` and `update_mentions` into one single `upsert_mentions` which can be called invariably
- allows services to decide if their job is ran inline or later. It avoids to need to know you have to use `Jobs.run_immediately!` in this case, in tests it will be inline per default
- made various frontend changes to make the chat-channel component lifecycle clearer. we had to handle `did-update @channel` which was super awkward and creating bugs with listeners which the changes of the PR made clear in failing specs
- adds a new `-processed` (and `-not-processed`) class on the chat message, this is made to have a good lifecyle hook in system specs
2023-11-06 15:45:30 +01:00
..
admin DEV: Do one query per month when exporting chat messages (#22746) 2023-07-27 21:56:32 +04:00
chat/composer PERF: cook message in background (#24227) 2023-11-06 15:45:30 +01:00
chat_message PERF: cook message in background (#24227) 2023-11-06 15:45:30 +01:00
list_channels FEATURE: Remove support for legacy navigation menu (#23752) 2023-10-09 07:24:10 +08:00
page_objects PERF: cook message in background (#24227) 2023-11-06 15:45:30 +01:00
reply_to_message PERF: cook message in background (#24227) 2023-11-06 15:45:30 +01:00
select_message FEATURE: thread pagination (#22624) 2023-07-27 09:57:03 +02:00
shortcuts DEV: Refactor chat specs related to message creation 2023-08-31 11:21:23 +02:00
thread_list PERF: cook message in background (#24227) 2023-11-06 15:45:30 +01:00
thread_tracking UX: opens thread on channel with unread threads (#23361) 2023-10-11 12:19:30 +02:00
user_menu_notifications DEV: Refactor chat specs related to message creation 2023-08-31 11:21:23 +02:00
user_status FEATURE: Use rich user status tooltip everywhere (#21125) 2023-07-03 11:09:41 -03:00
anonymous_spec.rb DEV: Remove superfluous js: true metadata (#21960) 2023-06-07 09:26:58 +08:00
archive_channel_spec.rb PERF: cook message in background (#24227) 2023-11-06 15:45:30 +01:00
bookmark_message_spec.rb DEV: Remove superfluous js: true metadata (#21960) 2023-06-07 09:26:58 +08:00
browse_page_spec.rb FEATURE: enable_public_channels site setting (#22565) 2023-07-13 10:00:25 +02:00
channel_members_page_spec.rb DEV: skips two flakey specs (#24044) 2023-10-22 18:50:04 +02:00
channel_message_upload_spec.rb DEV: Refactor a little chat uploads 2023-07-24 11:13:57 +02:00
channel_settings_page_spec.rb UI: redesigned settings/members (#23804) 2023-10-09 14:11:16 +02:00
channel_thread_message_echoing_spec.rb DEV: makes every spec use new messages helper (#23163) 2023-08-21 16:31:58 +02:00
chat_channel_spec.rb PERF: cook message in background (#24227) 2023-11-06 15:45:30 +01:00
chat_composer_draft_spec.rb FIX: Render excerpt HTML for chat replies and edit (#22559) 2023-07-13 09:44:56 +10:00
chat_composer_spec.rb DEV: Fix flaky network-based upload spec (#23286) 2023-08-28 12:59:22 +08:00
chat_message_onebox_spec.rb DEV: Remove superfluous js: true metadata (#21960) 2023-06-07 09:26:58 +08:00
chat_summarization_spec.rb DEV: makes chat modals use the new <DModal /> component (#22495) 2023-07-10 13:43:33 +02:00
closed_channel_spec.rb DEV: Remove superfluous js: true metadata (#21960) 2023-06-07 09:26:58 +08:00
create_channel_spec.rb DEV: Remove experimental site setting for chat threads (#22720) 2023-07-26 12:46:23 +02:00
dates_separators_spec.rb FEATURE: thread pagination (#22624) 2023-07-27 09:57:03 +02:00
deleted_channel_spec.rb PERF: cook message in background (#24227) 2023-11-06 15:45:30 +01:00
deleted_message_spec.rb PERF: cook message in background (#24227) 2023-11-06 15:45:30 +01:00
document_title_spec.rb DEV: Remove superfluous js: true metadata (#21960) 2023-06-07 09:26:58 +08:00
drawer_spec.rb PERF: cook message in background (#24227) 2023-11-06 15:45:30 +01:00
edited_message_spec.rb PERF: cook message in background (#24227) 2023-11-06 15:45:30 +01:00
flag_message_spec.rb UX: enhances chat copy features (#23770) 2023-10-04 16:14:37 +02:00
hashtag_autocomplete_spec.rb DEV: Remove enable_experimental_hashtag_autocomplete logic (#22820) 2023-08-08 11:18:55 +10:00
invite_users_to_channel_spec.rb FIX: ensures users can open channel invites (#24067) 2023-10-24 18:51:33 +02:00
kick_user_from_channel_spec.rb DEV: Remove superfluous js: true metadata (#21960) 2023-06-07 09:26:58 +08:00
mention_warnings_spec.rb FEATURE: Chat global mention warnings (pre-send & post-send) (#22764) 2023-08-22 15:54:35 -05:00
message_errors_spec.rb PERF: cook message in background (#24227) 2023-11-06 15:45:30 +01:00
message_notifications_mobile_spec.rb PERF: cook message in background (#24227) 2023-11-06 15:45:30 +01:00
message_notifications_with_sidebar_spec.rb PERF: cook message in background (#24227) 2023-11-06 15:45:30 +01:00
message_thread_indicator_spec.rb PERF: cook message in background (#24227) 2023-11-06 15:45:30 +01:00
message_user_info.rb DEV: Remove superfluous js: true metadata (#21960) 2023-06-07 09:26:58 +08:00
move_message_to_channel_spec.rb DEV: makes chat modals use the new <DModal /> component (#22495) 2023-07-10 13:43:33 +02:00
navigation_spec.rb DEV: skips two flakey specs (#24044) 2023-10-22 18:50:04 +02:00
new_message_spec.rb DEV: Fix random typos (#23801) 2023-10-05 20:40:53 +02:00
react_to_message_spec.rb DEV: FloatKit (#23650) 2023-09-26 13:39:52 +02:00
read_only_spec.rb DEV: Remove superfluous js: true metadata (#21960) 2023-06-07 09:26:58 +08:00
removing_channel_spec.rb FIX: redirects to browse after removing last followed (#22563) 2023-07-14 08:26:18 +02:00
restore_message_spec.rb UX: enhances chat copy features (#23770) 2023-10-04 16:14:37 +02:00
reviewables_spec.rb DEV: Remove superfluous js: true metadata (#21960) 2023-06-07 09:26:58 +08:00
send_message_spec.rb FIX: correctly makes dm creator to follow channel (#22470) 2023-07-06 21:42:19 +02:00
separate_sidebar_mode_spec.rb FIX: prevents setPanel to also set separated mode (#23227) 2023-08-24 18:21:28 +02:00
sidebar_navigation_menu_spec.rb UX: Remove section heading for community section (#22405) 2023-07-11 09:40:37 +08:00
sidebars_spec.rb FEATURE: Remove support for legacy navigation menu (#23752) 2023-10-09 07:24:10 +08:00
silenced_user_spec.rb DEV: Remove superfluous js: true metadata (#21960) 2023-06-07 09:26:58 +08:00
single_thread_spec.rb DEV: Refactor chat specs related to message creation 2023-08-31 11:21:23 +02:00
thread_preview_spec.rb FIX: ensures an empty last message won't cause errors (#23647) 2023-09-25 12:43:04 +02:00
transcript_spec.rb PERF: cook message in background (#24227) 2023-11-06 15:45:30 +01:00
unfollow_dm_channel_spec.rb DEV: makes every spec use new messages helper (#23163) 2023-08-21 16:31:58 +02:00
update_last_read.rb DEV: Remove superfluous js: true metadata (#21960) 2023-06-07 09:26:58 +08:00
uploads_spec.rb FIX: add dominant color attribute to chat image uploads (#24214) 2023-11-02 19:22:59 +08:00
user_card_spec.rb DEV: makes user-card-chat-button uses glimmer (#22496) 2023-07-10 14:04:26 +02:00
user_chat_preferences_spec.rb FIX: correctly check chat tab is present (#23200) 2023-08-23 13:06:29 +02:00
user_presence.rb FIX: correctly show unread and presence (#22441) 2023-07-05 21:01:23 +02:00
visit_channel_spec.rb DEV: makes every spec use new messages helper (#23163) 2023-08-21 16:31:58 +02:00