[MM-27377] api4/team_local: add updateChannelPrivacy and restoreTeam to local mode (#15201)
* api4/team_local: add update ch privacy to local mode * api4/team_local: add restoreTeam to local mode * api4/team: add a test case
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
aa88fb445c
Коммит
5ab06162dc
@@ -21,6 +21,8 @@ func (api *API) InitTeamLocal() {
|
||||
api.BaseRoutes.Team.Handle("", api.ApiLocal(localDeleteTeam)).Methods("DELETE")
|
||||
api.BaseRoutes.Team.Handle("/invite/email", api.ApiLocal(localInviteUsersToTeam)).Methods("POST")
|
||||
api.BaseRoutes.Team.Handle("/patch", api.ApiLocal(patchTeam)).Methods("PUT")
|
||||
api.BaseRoutes.Team.Handle("/privacy", api.ApiLocal(updateTeamPrivacy)).Methods("PUT")
|
||||
api.BaseRoutes.Team.Handle("/restore", api.ApiLocal(restoreTeam)).Methods("POST")
|
||||
|
||||
api.BaseRoutes.TeamByName.Handle("", api.ApiLocal(getTeamByName)).Methods("GET")
|
||||
api.BaseRoutes.TeamMembers.Handle("", api.ApiLocal(addTeamMember)).Methods("POST")
|
||||
|
||||
@@ -507,29 +507,29 @@ func TestRestoreTeam(t *testing.T) {
|
||||
CheckForbiddenStatus(t, resp)
|
||||
})
|
||||
|
||||
t.Run("restore archived public team", func(t *testing.T) {
|
||||
th.TestForAllClients(t, func(t *testing.T, client *model.Client4) {
|
||||
team := createTeam(t, true, model.TEAM_OPEN)
|
||||
team, resp := Client.RestoreTeam(team.Id)
|
||||
team, resp := client.RestoreTeam(team.Id)
|
||||
CheckOKStatus(t, resp)
|
||||
require.Zero(t, team.DeleteAt)
|
||||
require.Equal(t, model.TEAM_OPEN, team.Type)
|
||||
})
|
||||
}, "restore archived public team")
|
||||
|
||||
t.Run("restore archived private team", func(t *testing.T) {
|
||||
th.TestForAllClients(t, func(t *testing.T, client *model.Client4) {
|
||||
team := createTeam(t, true, model.TEAM_INVITE)
|
||||
team, resp := Client.RestoreTeam(team.Id)
|
||||
team, resp := client.RestoreTeam(team.Id)
|
||||
CheckOKStatus(t, resp)
|
||||
require.Zero(t, team.DeleteAt)
|
||||
require.Equal(t, model.TEAM_INVITE, team.Type)
|
||||
})
|
||||
}, "restore archived private team")
|
||||
|
||||
t.Run("restore active public team", func(t *testing.T) {
|
||||
th.TestForAllClients(t, func(t *testing.T, client *model.Client4) {
|
||||
team := createTeam(t, false, model.TEAM_OPEN)
|
||||
team, resp := Client.RestoreTeam(team.Id)
|
||||
team, resp := client.RestoreTeam(team.Id)
|
||||
CheckOKStatus(t, resp)
|
||||
require.Zero(t, team.DeleteAt)
|
||||
require.Equal(t, model.TEAM_OPEN, team.Type)
|
||||
})
|
||||
}, "restore active public team")
|
||||
|
||||
t.Run("not logged in", func(t *testing.T) {
|
||||
Client.Logout()
|
||||
@@ -542,6 +542,11 @@ func TestRestoreTeam(t *testing.T) {
|
||||
_, resp := Client.RestoreTeam(teamPublic.Id)
|
||||
CheckForbiddenStatus(t, resp)
|
||||
})
|
||||
|
||||
th.TestForSystemAdminAndLocal(t, func(t *testing.T, client *model.Client4) {
|
||||
_, resp := client.RestoreTeam(teamPublic.Id)
|
||||
CheckOKStatus(t, resp)
|
||||
})
|
||||
}
|
||||
|
||||
func TestPatchTeamSanitization(t *testing.T) {
|
||||
@@ -613,7 +618,6 @@ func TestUpdateTeamPrivacy(t *testing.T) {
|
||||
originalInviteId string
|
||||
}{
|
||||
{name: "bad privacy", team: teamPublic, privacy: "blap", errChecker: CheckBadRequestStatus, wantType: model.TEAM_OPEN, wantOpenInvite: true},
|
||||
{name: "bad team", team: &model.Team{Id: model.NewId()}, privacy: model.TEAM_OPEN, errChecker: CheckForbiddenStatus, wantType: model.TEAM_OPEN, wantOpenInvite: true},
|
||||
{name: "public to private", team: teamPublic, privacy: model.TEAM_INVITE, errChecker: nil, wantType: model.TEAM_INVITE, wantOpenInvite: false, originalInviteId: teamPublic.InviteId, wantInviteIdChanged: true},
|
||||
{name: "private to public", team: teamPrivate, privacy: model.TEAM_OPEN, errChecker: nil, wantType: model.TEAM_OPEN, wantOpenInvite: true, originalInviteId: teamPrivate.InviteId, wantInviteIdChanged: false},
|
||||
{name: "public to public", team: teamPublic2, privacy: model.TEAM_OPEN, errChecker: nil, wantType: model.TEAM_OPEN, wantOpenInvite: true, originalInviteId: teamPublic2.InviteId, wantInviteIdChanged: false},
|
||||
@@ -622,24 +626,36 @@ func TestUpdateTeamPrivacy(t *testing.T) {
|
||||
|
||||
for _, test := range tests {
|
||||
t.Run(test.name, func(t *testing.T) {
|
||||
team, resp := Client.UpdateTeamPrivacy(test.team.Id, test.privacy)
|
||||
if test.errChecker != nil {
|
||||
test.errChecker(t, resp)
|
||||
return
|
||||
} else {
|
||||
CheckNoError(t, resp)
|
||||
CheckOKStatus(t, resp)
|
||||
}
|
||||
require.Equal(t, test.wantType, team.Type)
|
||||
require.Equal(t, test.wantOpenInvite, team.AllowOpenInvite)
|
||||
if test.wantInviteIdChanged {
|
||||
require.NotEqual(t, test.originalInviteId, team.InviteId)
|
||||
} else {
|
||||
require.Equal(t, test.originalInviteId, team.InviteId)
|
||||
}
|
||||
th.TestForAllClients(t, func(t *testing.T, client *model.Client4) {
|
||||
team, resp := client.UpdateTeamPrivacy(test.team.Id, test.privacy)
|
||||
if test.errChecker != nil {
|
||||
test.errChecker(t, resp)
|
||||
return
|
||||
} else {
|
||||
CheckNoError(t, resp)
|
||||
CheckOKStatus(t, resp)
|
||||
}
|
||||
require.Equal(t, test.wantType, team.Type)
|
||||
require.Equal(t, test.wantOpenInvite, team.AllowOpenInvite)
|
||||
if test.wantInviteIdChanged {
|
||||
require.NotEqual(t, test.originalInviteId, team.InviteId)
|
||||
} else {
|
||||
require.Equal(t, test.originalInviteId, team.InviteId)
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
t.Run("non-existent team", func(t *testing.T) {
|
||||
_, resp := Client.UpdateTeamPrivacy(model.NewId(), model.TEAM_INVITE)
|
||||
CheckForbiddenStatus(t, resp)
|
||||
})
|
||||
|
||||
th.TestForSystemAdminAndLocal(t, func(t *testing.T, client *model.Client4) {
|
||||
_, resp := client.UpdateTeamPrivacy(model.NewId(), model.TEAM_INVITE)
|
||||
CheckNotFoundStatus(t, resp)
|
||||
}, "non-existent team for admins")
|
||||
|
||||
t.Run("not logged in", func(t *testing.T) {
|
||||
Client.Logout()
|
||||
_, resp := Client.UpdateTeamPrivacy(teamPublic.Id, model.TEAM_INVITE)
|
||||
|
||||
Ссылка в новой задаче
Block a user