DEV: Add 'chat_message_trashed' Discourse event (#20170)

Triggers a DiscourseEvent when a message is deleted, similar to
`:chat_message_created` and `:chat_message_edited`. This is not used
in this plugin, but can be used by other plugins to act when a message
is trashed.
This commit is contained in:
Dan Ungureanu
2023-02-06 22:52:43 +02:00
committed by GitHub
parent 0ca2541b74
commit 25f2fb61b8
3 changed files with 19 additions and 3 deletions

View File

@ -567,10 +567,17 @@ RSpec.describe Chat::ChatController do
it "Allows admin to delete others' messages" do
sign_in(admin)
expect { delete "/chat/#{chat_channel.id}/#{ChatMessage.last.id}.json" }.to change {
ChatMessage.count
}.by(-1)
events = nil
expect do
events =
DiscourseEvent.track_events do
delete "/chat/#{chat_channel.id}/#{ChatMessage.last.id}.json"
end
end.to change { ChatMessage.count }.by(-1)
expect(response.status).to eq(200)
expect(events.size).to eq(1)
expect(events.first[:event_name]).to eq(:chat_message_trashed)
end
it "does not allow message delete when chat channel is read_only" do