Skip to content

Commit 1f33aab

Browse files
committed
Format filter param slice as comma separated string
1 parent bb26a1e commit 1f33aab

3 files changed

+20
-6
lines changed

organization_membership_integration_test.go

+10-3
Original file line numberDiff line numberDiff line change
@@ -78,13 +78,20 @@ func TestOrganizationMembershipsList(t *testing.T) {
7878
memTest2, memTest2Cleanup := createOrganizationMembership(t, client, orgTest)
7979
defer memTest2Cleanup()
8080

81+
memTest3, memTest3Cleanup := createOrganizationMembership(t, client, orgTest)
82+
defer memTest3Cleanup()
83+
84+
memTest2.User = &User{ID: memTest2.User.ID}
85+
memTest3.User = &User{ID: memTest3.User.ID}
86+
8187
ml, err := client.OrganizationMemberships.List(ctx, orgTest.Name, &OrganizationMembershipListOptions{
82-
Emails: []string{memTest2.Email},
88+
Emails: []string{memTest2.Email, memTest3.Email},
8389
})
8490
require.NoError(t, err)
8591

86-
assert.Len(t, ml.Items, 1)
87-
assert.Equal(t, ml.Items[0].ID, memTest2.ID)
92+
assert.Len(t, ml.Items, 2)
93+
assert.Contains(t, ml.Items, memTest2)
94+
assert.Contains(t, ml.Items, memTest3)
8895

8996
t.Run("with invalid email", func(t *testing.T) {
9097
ml, err = client.OrganizationMemberships.List(ctx, orgTest.Name, &OrganizationMembershipListOptions{

team_integration_test.go

+5-2
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ func TestTeamsList(t *testing.T) {
2727
defer tmTest1Cleanup()
2828
tmTest2, tmTest2Cleanup := createTeam(t, client, orgTest)
2929
defer tmTest2Cleanup()
30+
tmTest3, tmTest3Cleanup := createTeam(t, client, orgTest)
31+
defer tmTest3Cleanup()
3032

3133
t.Run("without list options", func(t *testing.T) {
3234
tl, err := client.Teams.List(ctx, orgTest.Name, nil)
@@ -56,11 +58,12 @@ func TestTeamsList(t *testing.T) {
5658
assert.Equal(t, 2, tl.TotalCount)
5759

5860
tl, err = client.Teams.List(ctx, orgTest.Name, &TeamListOptions{
59-
Names: []string{tmTest2.Name},
61+
Names: []string{tmTest2.Name, tmTest3.Name},
6062
})
6163

62-
assert.Equal(t, tl.Items, 1)
64+
assert.Equal(t, tl.Items, 2)
6365
assert.Contains(t, tl.Items, tmTest2)
66+
assert.Contains(t, tl.Items, tmTest3)
6467

6568
t.Run("with invalid names query param", func(t *testing.T) {
6669
// should return an error because we've included an empty string

tfe.go

+5-1
Original file line numberDiff line numberDiff line change
@@ -551,7 +551,7 @@ func encodeQueryParams(v url.Values) string {
551551
sort.Strings(keys)
552552
for _, k := range keys {
553553
vs := v[k]
554-
if len(vs) > 1 && k == _includeQueryParam {
554+
if len(vs) > 1 && validSliceKey(k) {
555555
val := strings.Join(vs, ",")
556556
vs = vs[:0]
557557
vs = append(vs, val)
@@ -909,3 +909,7 @@ func packContents(path string) (*bytes.Buffer, error) {
909909

910910
return body, nil
911911
}
912+
913+
func validSliceKey(key string) bool {
914+
return key == _includeQueryParam || strings.Contains(key, "filter[")
915+
}

0 commit comments

Comments
 (0)