mirror of
https://github.com/mattermost/mattermost.git
synced 2025-02-25 18:55:24 -06:00
[MM-37846] Fix payload for post deleted event (#18131)
* Fix payload for post deleted event * Add test
This commit is contained in:
@@ -2035,6 +2035,41 @@ func TestDeletePost(t *testing.T) {
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestDeletePostEvent(t *testing.T) {
|
||||
th := Setup(t).InitBasic()
|
||||
defer th.TearDown()
|
||||
|
||||
WebSocketClient, err := th.CreateWebSocketClient()
|
||||
require.Nil(t, err)
|
||||
WebSocketClient.Listen()
|
||||
defer WebSocketClient.Close()
|
||||
|
||||
_, resp := th.SystemAdminClient.DeletePost(th.BasicPost.Id)
|
||||
CheckNoError(t, resp)
|
||||
|
||||
var received bool
|
||||
|
||||
for {
|
||||
var exit bool
|
||||
select {
|
||||
case event := <-WebSocketClient.EventChannel:
|
||||
if event.EventType() == model.WebsocketEventPostDeleted {
|
||||
var post model.Post
|
||||
err := json.Unmarshal([]byte(event.GetData()["post"].(string)), &post)
|
||||
require.NoError(t, err)
|
||||
received = true
|
||||
}
|
||||
case <-time.After(500 * time.Millisecond):
|
||||
exit = true
|
||||
}
|
||||
if exit {
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
require.True(t, received)
|
||||
}
|
||||
|
||||
func TestDeletePostMessage(t *testing.T) {
|
||||
th := Setup(t).InitBasic()
|
||||
th.LinkUserToTeam(th.SystemAdminUser, th.BasicTeam)
|
||||
|
||||
@@ -1134,13 +1134,18 @@ func (a *App) DeletePost(postID, deleteByID string) (*model.Post, *model.AppErro
|
||||
}
|
||||
}
|
||||
|
||||
postJSON, jsonErr := json.Marshal(post)
|
||||
if jsonErr != nil {
|
||||
mlog.Warn("Failed to encode post to JSON")
|
||||
}
|
||||
|
||||
userMessage := model.NewWebSocketEvent(model.WebsocketEventPostDeleted, "", post.ChannelId, "", nil)
|
||||
userMessage.Add("post", post)
|
||||
userMessage.Add("post", string(postJSON))
|
||||
userMessage.GetBroadcast().ContainsSanitizedData = true
|
||||
a.Publish(userMessage)
|
||||
|
||||
adminMessage := model.NewWebSocketEvent(model.WebsocketEventPostDeleted, "", post.ChannelId, "", nil)
|
||||
adminMessage.Add("post", post)
|
||||
adminMessage.Add("post", string(postJSON))
|
||||
adminMessage.Add("delete_by", deleteByID)
|
||||
adminMessage.GetBroadcast().ContainsSensitiveData = true
|
||||
a.Publish(adminMessage)
|
||||
|
||||
Reference in New Issue
Block a user