[MM-10858] Channel Member Update Websocket Event (#13305)
* Channel Member update event * Address PR comments and extend tests * golang ci addressed * Update api4/channel_test.go Co-Authored-By: Ben Schumacher <ben.schumacher@mattermost.com>
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
be3e008dca
Коммит
155ada09fb
@@ -1976,6 +1976,10 @@ func TestUpdateChannelMemberSchemeRoles(t *testing.T) {
|
|||||||
th := Setup().InitBasic()
|
th := Setup().InitBasic()
|
||||||
defer th.TearDown()
|
defer th.TearDown()
|
||||||
SystemAdminClient := th.SystemAdminClient
|
SystemAdminClient := th.SystemAdminClient
|
||||||
|
WebSocketClient, err := th.CreateWebSocketClient()
|
||||||
|
WebSocketClient.Listen()
|
||||||
|
require.Nil(t, err)
|
||||||
|
|
||||||
th.LoginBasic()
|
th.LoginBasic()
|
||||||
|
|
||||||
s1 := &model.SchemeRoles{
|
s1 := &model.SchemeRoles{
|
||||||
@@ -1986,6 +1990,21 @@ func TestUpdateChannelMemberSchemeRoles(t *testing.T) {
|
|||||||
_, r1 := SystemAdminClient.UpdateChannelMemberSchemeRoles(th.BasicChannel.Id, th.BasicUser.Id, s1)
|
_, r1 := SystemAdminClient.UpdateChannelMemberSchemeRoles(th.BasicChannel.Id, th.BasicUser.Id, s1)
|
||||||
CheckNoError(t, r1)
|
CheckNoError(t, r1)
|
||||||
|
|
||||||
|
timeout := time.After(600 * time.Millisecond)
|
||||||
|
waiting := true
|
||||||
|
for waiting {
|
||||||
|
select {
|
||||||
|
case event := <-WebSocketClient.EventChannel:
|
||||||
|
if event.Event == model.WEBSOCKET_EVENT_CHANNEL_MEMBER_UPDATED {
|
||||||
|
require.Equal(t, model.WEBSOCKET_EVENT_CHANNEL_MEMBER_UPDATED, event.Event)
|
||||||
|
waiting = false
|
||||||
|
}
|
||||||
|
case <-timeout:
|
||||||
|
require.Fail(t, "Should have received event channel member websocket event and not timedout")
|
||||||
|
waiting = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
tm1, rtm1 := SystemAdminClient.GetChannelMember(th.BasicChannel.Id, th.BasicUser.Id, "")
|
tm1, rtm1 := SystemAdminClient.GetChannelMember(th.BasicChannel.Id, th.BasicUser.Id, "")
|
||||||
CheckNoError(t, rtm1)
|
CheckNoError(t, rtm1)
|
||||||
assert.Equal(t, false, tm1.SchemeGuest)
|
assert.Equal(t, false, tm1.SchemeGuest)
|
||||||
|
|||||||
@@ -755,6 +755,11 @@ func (a *App) UpdateChannelMemberSchemeRoles(channelId string, userId string, is
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Notify the clients that the member notify props changed
|
||||||
|
message := model.NewWebSocketEvent(model.WEBSOCKET_EVENT_CHANNEL_MEMBER_UPDATED, "", "", userId, nil)
|
||||||
|
message.Add("channelMember", member.ToJson())
|
||||||
|
a.Publish(message)
|
||||||
|
|
||||||
a.InvalidateCacheForUser(userId)
|
a.InvalidateCacheForUser(userId)
|
||||||
return member, nil
|
return member, nil
|
||||||
}
|
}
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user