mirror of
https://github.com/zalando/postgres-operator.git
synced 2026-09-30 10:52:01 +02:00
add test team member (#1842)
* return err if teams API fails with StatusCode other than 404 * add unit test for 404 at team members Co-authored-by: Jociele Padilha <jociele.padilha@zalando.de> Co-authored-by: Felix Kunde <felix-kunde@gmx.de>
This commit is contained in:
co-authored by
Jociele Padilha
Felix Kunde
parent
9bcb25ac7e
commit
483bf624ee
@@ -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
|
||||
|
||||
+8
-2
@@ -6,6 +6,7 @@ import (
|
||||
"encoding/gob"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"reflect"
|
||||
"sort"
|
||||
"strings"
|
||||
@@ -272,9 +273,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 == http.StatusNotFound {
|
||||
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)) {
|
||||
|
||||
Reference in New Issue
Block a user