Skip to content
This repository was archived by the owner on Dec 10, 2024. It is now read-only.

Commit 931c662

Browse files
committed
Add email field to GroupMember
1 parent 195295c commit 931c662

File tree

3 files changed

+104
-0
lines changed

3 files changed

+104
-0
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,3 +28,6 @@ _testmain.go
2828
*.iml
2929
*.swp
3030
*.swo
31+
32+
# vendor
33+
vendor

group_members.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ type GroupMember struct {
5454
CreatedAt *time.Time `json:"created_at"`
5555
ExpiresAt *ISOTime `json:"expires_at"`
5656
AccessLevel AccessLevelValue `json:"access_level"`
57+
Email string `json:"email,omitempty"`
5758
GroupSAMLIdentity *GroupMemberSAMLIdentity `json:"group_saml_identity"`
5859
}
5960

group_members_test.go

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,106 @@ func TestListBillableGroupMembers(t *testing.T) {
8080
assert.Equal(t, want, billableMembers, "Expected returned Groups.ListBillableGroupMembers to equal")
8181
}
8282

83+
func TestListGroupMembersWithoutEmail(t *testing.T) {
84+
mux, client := setup(t)
85+
86+
mux.HandleFunc("/api/v4/groups/1/members",
87+
func(w http.ResponseWriter, r *http.Request) {
88+
testMethod(t, r, http.MethodGet)
89+
fmt.Fprint(w,
90+
`[
91+
{
92+
"id": 1,
93+
"username": "raymond_smith",
94+
"name": "Raymond Smith",
95+
"state": "active",
96+
"avatar_url": "https://www.gravatar.com/avatar/c2525a7f58ae3776070e44c106c48e15?s=80&d=identicon",
97+
"web_url": "http://192.168.1.8:3000/root",
98+
"created_at": "2012-10-21T14:13:35Z",
99+
"expires_at": "2012-10-22",
100+
"access_level": 30,
101+
"group_saml_identity": null
102+
}
103+
]`)
104+
})
105+
106+
members, _, err := client.Groups.ListGroupMembers(1, &ListGroupMembersOptions{})
107+
if err != nil {
108+
t.Errorf("Groups.ListGroupMembers returned error: %v", err)
109+
}
110+
111+
createdAt, _ := time.Parse(time.RFC3339, "2012-10-21T14:13:35Z")
112+
expiresAt, _ := time.Parse(time.RFC3339, "2012-10-22T00:00:00Z")
113+
expiresAtISOTime := ISOTime(expiresAt)
114+
want := []*GroupMember{
115+
{
116+
ID: 1,
117+
Username: "raymond_smith",
118+
Name: "Raymond Smith",
119+
State: "active",
120+
AvatarURL: "https://www.gravatar.com/avatar/c2525a7f58ae3776070e44c106c48e15?s=80&d=identicon",
121+
WebURL: "http://192.168.1.8:3000/root",
122+
CreatedAt: &createdAt,
123+
ExpiresAt: &expiresAtISOTime,
124+
AccessLevel: 30,
125+
},
126+
}
127+
if !reflect.DeepEqual(want, members) {
128+
t.Errorf("Groups.ListBillableGroupMembers returned %+v, want %+v", members[0], want[0])
129+
}
130+
}
131+
132+
func TestListGroupMembersWithEmail(t *testing.T) {
133+
mux, client := setup(t)
134+
135+
mux.HandleFunc("/api/v4/groups/1/members",
136+
func(w http.ResponseWriter, r *http.Request) {
137+
testMethod(t, r, http.MethodGet)
138+
fmt.Fprint(w,
139+
`[
140+
{
141+
"id": 1,
142+
"username": "raymond_smith",
143+
"name": "Raymond Smith",
144+
"state": "active",
145+
"avatar_url": "https://www.gravatar.com/avatar/c2525a7f58ae3776070e44c106c48e15?s=80&d=identicon",
146+
"web_url": "http://192.168.1.8:3000/root",
147+
"created_at": "2012-10-21T14:13:35Z",
148+
"expires_at": "2012-10-22",
149+
"access_level": 30,
150+
"email": "john@example.com",
151+
"group_saml_identity": null
152+
}
153+
]`)
154+
})
155+
156+
members, _, err := client.Groups.ListGroupMembers(1, &ListGroupMembersOptions{})
157+
if err != nil {
158+
t.Errorf("Groups.ListGroupMembers returned error: %v", err)
159+
}
160+
161+
createdAt, _ := time.Parse(time.RFC3339, "2012-10-21T14:13:35Z")
162+
expiresAt, _ := time.Parse(time.RFC3339, "2012-10-22T00:00:00Z")
163+
expiresAtISOTime := ISOTime(expiresAt)
164+
want := []*GroupMember{
165+
{
166+
ID: 1,
167+
Username: "raymond_smith",
168+
Name: "Raymond Smith",
169+
State: "active",
170+
AvatarURL: "https://www.gravatar.com/avatar/c2525a7f58ae3776070e44c106c48e15?s=80&d=identicon",
171+
WebURL: "http://192.168.1.8:3000/root",
172+
CreatedAt: &createdAt,
173+
ExpiresAt: &expiresAtISOTime,
174+
AccessLevel: 30,
175+
Email: "john@example.com",
176+
},
177+
}
178+
if !reflect.DeepEqual(want, members) {
179+
t.Errorf("Groups.ListBillableGroupMembers returned %+v, want %+v", members[0], want[0])
180+
}
181+
}
182+
83183
func TestListGroupMembersWithoutSAML(t *testing.T) {
84184
mux, client := setup(t)
85185

0 commit comments

Comments
 (0)