diff --git a/organization_membership_integration_test.go b/organization_membership_integration_test.go index 1e47ab851..fe956f413 100644 --- a/organization_membership_integration_test.go +++ b/organization_membership_integration_test.go @@ -78,13 +78,20 @@ func TestOrganizationMembershipsList(t *testing.T) { memTest2, memTest2Cleanup := createOrganizationMembership(t, client, orgTest) defer memTest2Cleanup() + memTest3, memTest3Cleanup := createOrganizationMembership(t, client, orgTest) + defer memTest3Cleanup() + + memTest2.User = &User{ID: memTest2.User.ID} + memTest3.User = &User{ID: memTest3.User.ID} + ml, err := client.OrganizationMemberships.List(ctx, orgTest.Name, &OrganizationMembershipListOptions{ - Emails: []string{memTest2.Email}, + Emails: []string{memTest2.Email, memTest3.Email}, }) require.NoError(t, err) - assert.Len(t, ml.Items, 1) - assert.Equal(t, ml.Items[0].ID, memTest2.ID) + assert.Len(t, ml.Items, 2) + assert.Contains(t, ml.Items, memTest2) + assert.Contains(t, ml.Items, memTest3) t.Run("with invalid email", func(t *testing.T) { ml, err = client.OrganizationMemberships.List(ctx, orgTest.Name, &OrganizationMembershipListOptions{ diff --git a/team_integration_test.go b/team_integration_test.go index 44b52c4ed..2aad7518b 100644 --- a/team_integration_test.go +++ b/team_integration_test.go @@ -27,6 +27,8 @@ func TestTeamsList(t *testing.T) { defer tmTest1Cleanup() tmTest2, tmTest2Cleanup := createTeam(t, client, orgTest) defer tmTest2Cleanup() + tmTest3, tmTest3Cleanup := createTeam(t, client, orgTest) + defer tmTest3Cleanup() t.Run("without list options", func(t *testing.T) { tl, err := client.Teams.List(ctx, orgTest.Name, nil) @@ -56,11 +58,12 @@ func TestTeamsList(t *testing.T) { assert.Equal(t, 2, tl.TotalCount) tl, err = client.Teams.List(ctx, orgTest.Name, &TeamListOptions{ - Names: []string{tmTest2.Name}, + Names: []string{tmTest2.Name, tmTest3.Name}, }) - assert.Equal(t, tl.Items, 1) + assert.Equal(t, tl.Items, 2) assert.Contains(t, tl.Items, tmTest2) + assert.Contains(t, tl.Items, tmTest3) t.Run("with invalid names query param", func(t *testing.T) { // should return an error because we've included an empty string diff --git a/tfe.go b/tfe.go index 0f7569cb8..22512c0cf 100644 --- a/tfe.go +++ b/tfe.go @@ -551,7 +551,7 @@ func encodeQueryParams(v url.Values) string { sort.Strings(keys) for _, k := range keys { vs := v[k] - if len(vs) > 1 && k == _includeQueryParam { + if len(vs) > 1 && validSliceKey(k) { val := strings.Join(vs, ",") vs = vs[:0] vs = append(vs, val) @@ -909,3 +909,7 @@ func packContents(path string) (*bytes.Buffer, error) { return body, nil } + +func validSliceKey(key string) bool { + return key == _includeQueryParam || strings.Contains(key, "filter[") +}