mirror of
https://github.com/pomerium/pomerium.git
synced 2025-05-04 21:06:03 +02:00
github: fix missing groups (#3171)
This commit is contained in:
parent
b5ce4c7d5d
commit
a65024f8fe
2 changed files with 63 additions and 26 deletions
|
@ -122,6 +122,26 @@ func newMockAPI(t *testing.T, srv *httptest.Server) http.Handler {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
renderNodeField := func(field *ast.Field, path []string, value string) string {
|
||||||
|
outer:
|
||||||
|
for _, segment := range path {
|
||||||
|
for _, selection := range field.SelectionSet {
|
||||||
|
subField, ok := selection.(*ast.Field)
|
||||||
|
if !ok {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
if subField.Name != segment {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
field = subField
|
||||||
|
continue outer
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
return value
|
||||||
|
}
|
||||||
handleTeams := func(orgSlug string, field *ast.Field) {
|
handleTeams := func(orgSlug string, field *ast.Field) {
|
||||||
teams := &qlTeamConnection{}
|
teams := &qlTeamConnection{}
|
||||||
|
|
||||||
|
@ -142,33 +162,45 @@ func newMockAPI(t *testing.T, srv *httptest.Server) http.Handler {
|
||||||
case "org1":
|
case "org1":
|
||||||
teams.PageInfo = qlPageInfo{HasNextPage: true, EndCursor: "TOKEN1"}
|
teams.PageInfo = qlPageInfo{HasNextPage: true, EndCursor: "TOKEN1"}
|
||||||
teams.Edges = []qlTeamEdge{
|
teams.Edges = []qlTeamEdge{
|
||||||
{Node: qlTeam{ID: "MDQ6VGVhbTE=", Slug: "team1", Name: "Team 1", Members: &qlTeamMemberConnection{
|
{Node: qlTeam{
|
||||||
PageInfo: qlPageInfo{HasNextPage: false},
|
ID: renderNodeField(field, []string{"edges", "node", "id"}, "MDQ6VGVhbTE="),
|
||||||
Edges: []qlTeamMemberEdge{
|
Slug: renderNodeField(field, []string{"edges", "node", "slug"}, "team1"),
|
||||||
{Node: qlUser{ID: "user1"}},
|
Name: renderNodeField(field, []string{"edges", "node", "name"}, "Team 1"),
|
||||||
{Node: qlUser{ID: "user2"}},
|
Members: &qlTeamMemberConnection{
|
||||||
},
|
PageInfo: qlPageInfo{HasNextPage: false},
|
||||||
}}},
|
Edges: []qlTeamMemberEdge{
|
||||||
|
{Node: qlUser{ID: "user1"}},
|
||||||
|
{Node: qlUser{ID: "user2"}},
|
||||||
|
},
|
||||||
|
}}},
|
||||||
}
|
}
|
||||||
case "org2":
|
case "org2":
|
||||||
teams.PageInfo = qlPageInfo{HasNextPage: false}
|
teams.PageInfo = qlPageInfo{HasNextPage: false}
|
||||||
teams.Edges = []qlTeamEdge{
|
teams.Edges = []qlTeamEdge{
|
||||||
{Node: qlTeam{ID: "MDQ6VGVhbTM=", Slug: "team3", Name: "Team 3", Members: &qlTeamMemberConnection{
|
{Node: qlTeam{
|
||||||
PageInfo: qlPageInfo{HasNextPage: true, EndCursor: "TOKEN1"},
|
ID: renderNodeField(field, []string{"edges", "node", "id"}, "MDQ6VGVhbTM="),
|
||||||
Edges: []qlTeamMemberEdge{
|
Slug: renderNodeField(field, []string{"edges", "node", "slug"}, "team3"),
|
||||||
{Node: qlUser{ID: "user1"}},
|
Name: renderNodeField(field, []string{"edges", "node", "name"}, "Team 3"),
|
||||||
{Node: qlUser{ID: "user2"}},
|
Members: &qlTeamMemberConnection{
|
||||||
},
|
PageInfo: qlPageInfo{HasNextPage: true, EndCursor: "TOKEN1"},
|
||||||
}}},
|
Edges: []qlTeamMemberEdge{
|
||||||
|
{Node: qlUser{ID: "user1"}},
|
||||||
|
{Node: qlUser{ID: "user2"}},
|
||||||
|
},
|
||||||
|
}}},
|
||||||
}
|
}
|
||||||
if userLogin == "" || userLogin == "user4" {
|
if userLogin == "" || userLogin == "user4" {
|
||||||
teams.Edges = append(teams.Edges, qlTeamEdge{
|
teams.Edges = append(teams.Edges, qlTeamEdge{
|
||||||
Node: qlTeam{ID: "MDQ6VGVhbTQ=", Slug: "team4", Name: "Team 4", Members: &qlTeamMemberConnection{
|
Node: qlTeam{
|
||||||
PageInfo: qlPageInfo{HasNextPage: false},
|
ID: renderNodeField(field, []string{"edges", "node", "id"}, "MDQ6VGVhbTQ="),
|
||||||
Edges: []qlTeamMemberEdge{
|
Slug: renderNodeField(field, []string{"edges", "node", "slug"}, "team4"),
|
||||||
{Node: qlUser{ID: "user4"}},
|
Name: renderNodeField(field, []string{"edges", "node", "name"}, "Team 4"),
|
||||||
},
|
Members: &qlTeamMemberConnection{
|
||||||
}},
|
PageInfo: qlPageInfo{HasNextPage: false},
|
||||||
|
Edges: []qlTeamMemberEdge{
|
||||||
|
{Node: qlUser{ID: "user4"}},
|
||||||
|
},
|
||||||
|
}},
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
|
@ -177,12 +209,16 @@ func newMockAPI(t *testing.T, srv *httptest.Server) http.Handler {
|
||||||
case "TOKEN1":
|
case "TOKEN1":
|
||||||
teams.PageInfo = qlPageInfo{HasNextPage: false}
|
teams.PageInfo = qlPageInfo{HasNextPage: false}
|
||||||
teams.Edges = []qlTeamEdge{
|
teams.Edges = []qlTeamEdge{
|
||||||
{Node: qlTeam{ID: "MDQ6VGVhbTI=", Slug: "team2", Name: "Team 2", Members: &qlTeamMemberConnection{
|
{Node: qlTeam{
|
||||||
PageInfo: qlPageInfo{HasNextPage: false},
|
ID: renderNodeField(field, []string{"edges", "node", "id"}, "MDQ6VGVhbTI="),
|
||||||
Edges: []qlTeamMemberEdge{
|
Slug: renderNodeField(field, []string{"edges", "node", "slug"}, "team2"),
|
||||||
{Node: qlUser{ID: "user1"}},
|
Name: renderNodeField(field, []string{"edges", "node", "name"}, "Team 2"),
|
||||||
},
|
Members: &qlTeamMemberConnection{
|
||||||
}}},
|
PageInfo: qlPageInfo{HasNextPage: false},
|
||||||
|
Edges: []qlTeamMemberEdge{
|
||||||
|
{Node: qlUser{ID: "user1"}},
|
||||||
|
},
|
||||||
|
}}},
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
t.Errorf("unexpected cursor: %s", cursor)
|
t.Errorf("unexpected cursor: %s", cursor)
|
||||||
|
|
|
@ -216,6 +216,7 @@ func (p *Provider) listUserOrganizationTeams(ctx context.Context, userSlug strin
|
||||||
edges {
|
edges {
|
||||||
node {
|
node {
|
||||||
id
|
id
|
||||||
|
slug
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue