[MM-37846] Fix payload for post deleted event (#18131)
* Fix payload for post deleted event * Add test
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
a4507327a7
Коммит
85fd80d3f4
@@ -2035,6 +2035,41 @@ func TestDeletePost(t *testing.T) {
|
|||||||
require.NoError(t, err)
|
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) {
|
func TestDeletePostMessage(t *testing.T) {
|
||||||
th := Setup(t).InitBasic()
|
th := Setup(t).InitBasic()
|
||||||
th.LinkUserToTeam(th.SystemAdminUser, th.BasicTeam)
|
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 := model.NewWebSocketEvent(model.WebsocketEventPostDeleted, "", post.ChannelId, "", nil)
|
||||||
userMessage.Add("post", post)
|
userMessage.Add("post", string(postJSON))
|
||||||
userMessage.GetBroadcast().ContainsSanitizedData = true
|
userMessage.GetBroadcast().ContainsSanitizedData = true
|
||||||
a.Publish(userMessage)
|
a.Publish(userMessage)
|
||||||
|
|
||||||
adminMessage := model.NewWebSocketEvent(model.WebsocketEventPostDeleted, "", post.ChannelId, "", nil)
|
adminMessage := model.NewWebSocketEvent(model.WebsocketEventPostDeleted, "", post.ChannelId, "", nil)
|
||||||
adminMessage.Add("post", post)
|
adminMessage.Add("post", string(postJSON))
|
||||||
adminMessage.Add("delete_by", deleteByID)
|
adminMessage.Add("delete_by", deleteByID)
|
||||||
adminMessage.GetBroadcast().ContainsSensitiveData = true
|
adminMessage.GetBroadcast().ContainsSensitiveData = true
|
||||||
a.Publish(adminMessage)
|
a.Publish(adminMessage)
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user