[MM-37846] Fix payload for post deleted event (#18131)

* Fix payload for post deleted event

* Add test
This commit is contained in:
Claudio Costa
2021-08-18 10:39:25 +02:00
committed by GitHub
parent a4507327a7
commit 85fd80d3f4
2 changed files with 42 additions and 2 deletions

View File

@@ -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)

View File

@@ -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)