add unit test for 404 at team members

This commit is contained in:
Jociele Padilha
2022-04-12 15:51:18 +02:00
parent e912cb654e
commit 4744d601bc
4 changed files with 90 additions and 73 deletions
+6 -12
View File
@@ -194,8 +194,8 @@ type mockTeamsAPIClient struct {
members []string
}
func (m *mockTeamsAPIClient) TeamInfo(teamID, token string) (tm *teams.Team, err error) {
return &teams.Team{Members: m.members}, nil
func (m *mockTeamsAPIClient) TeamInfo(teamID, token string) (tm *teams.Team, statusCode int, err error) {
return &teams.Team{Members: m.members}, statusCode, nil
}
func (m *mockTeamsAPIClient) setMembers(members []string) {
@@ -260,15 +260,15 @@ type mockTeamsAPIClientMultipleTeams struct {
teams []mockTeam
}
func (m *mockTeamsAPIClientMultipleTeams) TeamInfo(teamID, token string) (tm *teams.Team, err error) {
func (m *mockTeamsAPIClientMultipleTeams) TeamInfo(teamID, token string) (tm *teams.Team, statusCode int, err error) {
for _, team := range m.teams {
if team.teamID == teamID {
return &teams.Team{Members: team.members}, nil
return &teams.Team{Members: team.members}, statusCode, nil
}
}
// should not be reached if a slice with teams is populated correctly
return nil, nil
return nil, statusCode, nil
}
// Test adding members of maintenance teams that get superuser rights for all PG databases
@@ -302,12 +302,6 @@ func TestInitHumanUsersWithSuperuserTeams(t *testing.T) {
isPostgresSuperuserTeam: true,
}
teamC := mockTeam{
teamID: "",
members: []string{""},
isPostgresSuperuserTeam: true,
}
userB := spec.PgUser{
Name: "postgres_admin",
Origin: spec.RoleOriginTeamsAPI,
@@ -340,7 +334,7 @@ func TestInitHumanUsersWithSuperuserTeams(t *testing.T) {
ownerTeam: "test",
existingRoles: map[string]spec.PgUser{},
superuserTeams: []string{"postgres_superusers", "postgres_admins"},
teams: []mockTeam{teamA, teamB, teamC, teamTest},
teams: []mockTeam{teamA, teamB, teamTest},
result: map[string]spec.PgUser{
"postgres_superuser": userA,
"postgres_admin": userB,
+7 -2
View File
@@ -272,9 +272,14 @@ func (c *Cluster) getTeamMembers(teamID string) ([]string, error) {
return nil, fmt.Errorf("could not get oauth token to authenticate to team service API: %v", err)
}
teamInfo, err := c.teamsAPIClient.TeamInfo(teamID, token)
teamInfo, statusCode, err := c.teamsAPIClient.TeamInfo(teamID, token)
if err != nil {
c.logger.Warningf("could not get team info for team %q: %v", teamID, err)
if statusCode == 404 {
c.logger.Warningf("could not get team info for team %q: %v", teamID, err)
} else {
return nil, fmt.Errorf("could not get team info for team %q: %v", teamID, err)
}
} else {
for _, member := range teamInfo.Members {
if !(util.SliceContains(members, member)) {