mirror of
https://github.com/mattermost/mattermost.git
synced 2025-02-25 18:55:24 -06:00
[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>
This commit is contained in:
committed by
GitHub
parent
be3e008dca
commit
155ada09fb
@@ -1976,6 +1976,10 @@ func TestUpdateChannelMemberSchemeRoles(t *testing.T) {
|
||||
th := Setup().InitBasic()
|
||||
defer th.TearDown()
|
||||
SystemAdminClient := th.SystemAdminClient
|
||||
WebSocketClient, err := th.CreateWebSocketClient()
|
||||
WebSocketClient.Listen()
|
||||
require.Nil(t, err)
|
||||
|
||||
th.LoginBasic()
|
||||
|
||||
s1 := &model.SchemeRoles{
|
||||
@@ -1986,6 +1990,21 @@ func TestUpdateChannelMemberSchemeRoles(t *testing.T) {
|
||||
_, r1 := SystemAdminClient.UpdateChannelMemberSchemeRoles(th.BasicChannel.Id, th.BasicUser.Id, s1)
|
||||
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, "")
|
||||
CheckNoError(t, rtm1)
|
||||
assert.Equal(t, false, tm1.SchemeGuest)
|
||||
|
||||
@@ -755,6 +755,11 @@ func (a *App) UpdateChannelMemberSchemeRoles(channelId string, userId string, is
|
||||
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)
|
||||
return member, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user