MM-23876: Fix for patching channel moderations with a null team schem… (#14239)
* MM-23876: Fix for patching channel moderations with a null team scheme channel guest role. * MM-23876: Tests the moderations response.
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
27a0ff4d52
Коммит
f92d3fa518
@@ -3282,4 +3282,69 @@ func TestPatchChannelModerations(t *testing.T) {
|
||||
require.NotEqual(t, scheme.DeleteAt, int64(0))
|
||||
})
|
||||
|
||||
t.Run("Does not return an error if the team scheme has a blank DefaultChannelGuestRole field", func(t *testing.T) {
|
||||
team := th.BasicTeam
|
||||
scheme := th.SetupTeamScheme()
|
||||
scheme.DefaultChannelGuestRole = ""
|
||||
|
||||
mockStore := mocks.Store{}
|
||||
mockSchemeStore := mocks.SchemeStore{}
|
||||
mockSchemeStore.On("Get", mock.Anything).Return(scheme, nil)
|
||||
mockSchemeStore.On("Save", mock.Anything).Return(scheme, nil)
|
||||
mockSchemeStore.On("Delete", mock.Anything).Return(scheme, nil)
|
||||
mockStore.On("Scheme").Return(&mockSchemeStore)
|
||||
mockStore.On("Team").Return(th.App.Srv().Store.Team())
|
||||
mockStore.On("Channel").Return(th.App.Srv().Store.Channel())
|
||||
mockStore.On("User").Return(th.App.Srv().Store.User())
|
||||
mockStore.On("Post").Return(th.App.Srv().Store.Post())
|
||||
mockStore.On("FileInfo").Return(th.App.Srv().Store.FileInfo())
|
||||
mockStore.On("Webhook").Return(th.App.Srv().Store.Webhook())
|
||||
mockStore.On("System").Return(th.App.Srv().Store.System())
|
||||
mockStore.On("License").Return(th.App.Srv().Store.License())
|
||||
mockStore.On("Role").Return(th.App.Srv().Store.Role())
|
||||
mockStore.On("Close").Return(nil)
|
||||
th.App.Srv().Store = &mockStore
|
||||
|
||||
team.SchemeId = &scheme.Id
|
||||
_, err := th.App.UpdateTeamScheme(team)
|
||||
require.Nil(t, err)
|
||||
|
||||
moderations, res := th.SystemAdminClient.PatchChannelModerations(channel.Id, emptyPatch)
|
||||
require.Nil(t, res.Error)
|
||||
require.Equal(t, len(moderations), 4)
|
||||
for _, moderation := range moderations {
|
||||
if moderation.Name == "manage_members" {
|
||||
require.Empty(t, moderation.Roles.Guests)
|
||||
} else {
|
||||
require.Equal(t, moderation.Roles.Guests.Value, false)
|
||||
require.Equal(t, moderation.Roles.Guests.Enabled, false)
|
||||
}
|
||||
|
||||
require.Equal(t, moderation.Roles.Members.Value, true)
|
||||
require.Equal(t, moderation.Roles.Members.Enabled, true)
|
||||
}
|
||||
|
||||
patch := []*model.ChannelModerationPatch{
|
||||
{
|
||||
Name: &createPosts,
|
||||
Roles: &model.ChannelModeratedRolesPatch{Members: model.NewBool(true)},
|
||||
},
|
||||
}
|
||||
|
||||
moderations, res = th.SystemAdminClient.PatchChannelModerations(channel.Id, patch)
|
||||
require.Nil(t, res.Error)
|
||||
require.Equal(t, len(moderations), 4)
|
||||
for _, moderation := range moderations {
|
||||
if moderation.Name == "manage_members" {
|
||||
require.Empty(t, moderation.Roles.Guests)
|
||||
} else {
|
||||
require.Equal(t, moderation.Roles.Guests.Value, false)
|
||||
require.Equal(t, moderation.Roles.Guests.Enabled, false)
|
||||
}
|
||||
|
||||
require.Equal(t, moderation.Roles.Members.Value, true)
|
||||
require.Equal(t, moderation.Roles.Members.Enabled, true)
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
Ссылка в новой задаче
Block a user