diff --git a/pkg/teams/postgres_team.go b/pkg/teams/postgres_team.go index 29e3e26f7..7fb725765 100644 --- a/pkg/teams/postgres_team.go +++ b/pkg/teams/postgres_team.go @@ -110,9 +110,9 @@ func (ptm *PostgresTeamMap) Load(pgTeams *acidv1.PostgresTeamList) { for teamID := range teamIDs { (*ptm)[teamID] = postgresTeamMembership{ - AdditionalSuperuserTeams: superuserTeamSet.toMap()[teamID], - AdditionalTeams: teamSet.toMap()[teamID], - AdditionalMembers: teamMemberSet.toMap()[teamID], + AdditionalSuperuserTeams: util.CoalesceStrArr(superuserTeamSet.toMap()[teamID], []string{}), + AdditionalTeams: util.CoalesceStrArr(teamSet.toMap()[teamID], []string{}), + AdditionalMembers: util.CoalesceStrArr(teamMemberSet.toMap()[teamID], []string{}), } } } diff --git a/pkg/teams/postgres_team_test.go b/pkg/teams/postgres_team_test.go index 510091c95..f8c3a21d8 100644 --- a/pkg/teams/postgres_team_test.go +++ b/pkg/teams/postgres_team_test.go @@ -26,9 +26,9 @@ var ( Name: "teamAB", }, Spec: acidv1.PostgresTeamSpec{ - AdditionalSuperuserTeams: map[string][]string{"teamA": []string{"teamB", "team24/7"}, "teamB": []string{"teamA", "teamC", "team24/7"}}, + AdditionalSuperuserTeams: map[string][]string{"teamA": []string{"teamB", "team24x7"}, "teamB": []string{"teamA", "teamC", "team24x7"}}, AdditionalTeams: map[string][]string{"teamA": []string{"teamC"}, "teamB": []string{}}, - AdditionalMembers: map[string][]string{"team24/7": []string{"optimusprime"}, "teamB": []string{"drno"}}, + AdditionalMembers: map[string][]string{"team24x7": []string{"optimusprime"}, "teamB": []string{"drno"}}, }, }, { TypeMeta: metav1.TypeMeta{ @@ -39,7 +39,7 @@ var ( Name: "teamC", }, Spec: acidv1.PostgresTeamSpec{ - AdditionalSuperuserTeams: map[string][]string{"teamC": []string{"team24/7"}}, + AdditionalSuperuserTeams: map[string][]string{"teamC": []string{"team24x7"}}, AdditionalTeams: map[string][]string{"teamA": []string{"teamC"}, "teamC": []string{"teamA", "teamB", "acid"}}, AdditionalMembers: map[string][]string{"acid": []string{"batman"}}, }, @@ -61,28 +61,28 @@ func TestLoadingPostgresTeamCRD(t *testing.T) { pgTeamList, PostgresTeamMap{ "teamA": { - AdditionalSuperuserTeams: []string{"teamB", "team24/7"}, + AdditionalSuperuserTeams: []string{"teamB", "team24x7"}, AdditionalTeams: []string{"teamC"}, - AdditionalMembers: nil, + AdditionalMembers: []string{}, }, "teamB": { - AdditionalSuperuserTeams: []string{"teamA", "teamC", "team24/7"}, + AdditionalSuperuserTeams: []string{"teamA", "teamC", "team24x7"}, AdditionalTeams: []string{}, AdditionalMembers: []string{"drno"}, }, "teamC": { - AdditionalSuperuserTeams: []string{"team24/7"}, + AdditionalSuperuserTeams: []string{"team24x7"}, AdditionalTeams: []string{"teamA", "teamB", "acid"}, - AdditionalMembers: nil, + AdditionalMembers: []string{}, }, - "team24/7": { - AdditionalSuperuserTeams: nil, - AdditionalTeams: nil, + "team24x7": { + AdditionalSuperuserTeams: []string{}, + AdditionalTeams: []string{}, AdditionalMembers: []string{"optimusprime"}, }, "acid": { - AdditionalSuperuserTeams: nil, - AdditionalTeams: nil, + AdditionalSuperuserTeams: []string{}, + AdditionalTeams: []string{}, AdditionalMembers: []string{"batman"}, }, }, @@ -130,6 +130,13 @@ func TestGetAdditionalTeams(t *testing.T) { []string{"teamC", "teamB", "acid"}, "GetAdditionalTeams returns wrong list", }, + { + "Check that empty list is returned", + "teamB", + false, + []string{}, + "GetAdditionalTeams returns wrong list", + }, } postgresTeamMap := PostgresTeamMap{} @@ -156,15 +163,22 @@ func TestGetAdditionalSuperuserTeams(t *testing.T) { "Check that additional superuser teams are returned", "teamA", false, - []string{"teamB", "team24/7"}, - "GetAdditionalTeams returns wrong list", + []string{"teamB", "team24x7"}, + "GetAdditionalSuperuserTeams returns wrong list", }, { "Check that additional superuser teams are returned incl. transitive superuser teams", "teamA", true, - []string{"teamB", "teamC", "team24/7"}, - "GetAdditionalTeams returns wrong list", + []string{"teamB", "teamC", "team24x7"}, + "GetAdditionalSuperuserTeams returns wrong list", + }, + { + "Check that empty list is returned", + "team24x7", + false, + []string{}, + "GetAdditionalSuperuserTeams returns wrong list", }, } diff --git a/pkg/util/util_test.go b/pkg/util/util_test.go index b64f457de..2173917b7 100644 --- a/pkg/util/util_test.go +++ b/pkg/util/util_test.go @@ -51,7 +51,7 @@ var isEqualIgnoreOrderTest = []struct { {[]string{"a", "b", "c"}, []string{"a", "b", "c"}, true}, {[]string{"a", "b", "c"}, []string{"a", "c", "b"}, true}, {[]string{"a", "b"}, []string{"a", "c", "b"}, false}, - {[]string{"a", "b", "c"}, []string{"a", "d", "c"}, true}, + {[]string{"a", "b", "c"}, []string{"a", "d", "c"}, false}, } var substractTest = []struct {