mirror of
https://github.com/discourse/discourse.git
synced 2025-02-06 11:28:18 +00:00
DEV: DiscourseEvents for chat messages (#18914)
This commit is contained in:
parent
782f43cc55
commit
3174e8e60f
@ -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
|
||||
|
@ -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
|
||||
|
@ -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(
|
||||
|
@ -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 {
|
||||
|
Loading…
x
Reference in New Issue
Block a user