DEV: DiscourseEvents for chat messages (#18914)

This commit is contained in:
Rafael dos Santos Silva 2022-11-07 15:06:10 -03:00 committed by GitHub
parent 782f43cc55
commit 3174e8e60f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 25 additions and 0 deletions

View File

@ -52,6 +52,7 @@ class Chat::ChatMessageCreator
chat_message: @chat_message,
timestamp: @chat_message.created_at,
)
DiscourseEvent.trigger(:chat_message_created, @chat_message, @chat_channel, @user)
rescue => error
@error = error
end

View File

@ -36,6 +36,7 @@ class Chat::ChatMessageUpdater
ChatPublisher.publish_edit!(@chat_channel, @chat_message)
Jobs.enqueue(:process_chat_message, { chat_message_id: @chat_message.id })
Chat::ChatNotifier.notify_edit(chat_message: @chat_message, timestamp: revision.created_at)
DiscourseEvent.trigger(:chat_message_edited, @chat_message, @chat_channel, @user)
rescue => error
@error = error
end

View File

@ -105,6 +105,17 @@ describe Chat::ChatMessageCreator do
expect(message.last_editor_id).to eq(user1.id)
end
it "publishes a DiscourseEvent for new messages" do
events = DiscourseEvent.track_events {
Chat::ChatMessageCreator.create(
chat_channel: public_chat_channel,
user: user1,
content: "this is a message",
)
}
expect(events.map { _1[:event_name] }).to include(:chat_message_created)
end
it "creates mention notifications for public chat" do
expect {
Chat::ChatMessageCreator.create(

View File

@ -83,6 +83,18 @@ describe Chat::ChatMessageUpdater do
expect(chat_message.reload.message).to eq(new_message)
end
it "publishes a DiscourseEvent for updated messages" do
chat_message = create_chat_message(user1, "This will be changed", public_chat_channel)
events = DiscourseEvent.track_events {
Chat::ChatMessageUpdater.update(
guardian: guardian,
chat_message: chat_message,
new_content: "Change to this!",
)
}
expect(events.map { _1[:event_name] }).to include(:chat_message_edited)
end
it "creates mention notifications for unmentioned users" do
chat_message = create_chat_message(user1, "This will be changed", public_chat_channel)
expect {