git.iko.soy/typeable/oauth2-proxy
on master help sign in
Add more UserInfo test cases
commit7407fbd3a77c2beb98845773d95452137c5a9fc7 authorNick Meves <nick.meves@greenhouse.io> dateWed 25 Nov 2020, 18:55 (6 years ago) parent2549b72
1 file changed+58−15
oauthproxy_test.go+58−15
oauthproxy_test.go+58−15
@@ -1124,24 +1124,67 @@ func NewUserInfoEndpointTest() (*ProcessCookieTest, error) {
11241124}
11251125
11261126func TestUserInfoEndpointAccepted(t *testing.T) {
1127− test, err := NewUserInfoEndpointTest()
1128− if err != nil {
1129− t.Fatal(err)
1127+ testCases := []struct {
1128+ name string
1129+ session *sessions.SessionState
1130+ expectedResponse string
1131+ }{
1132+ {
1133+ name: "Full session",
1134+ session: &sessions.SessionState{
1135+ User: "john.doe",
1136+ Email: "john.doe@example.com",
1137+ Groups: []string{"example", "groups"},
1138+ AccessToken: "my_access_token",
1139+ },
1140+ expectedResponse: "{\"user\":\"john.doe\",\"email\":\"john.doe@example.com\",\"groups\":[\"example\",\"groups\"]}\n",
1141+ },
1142+ {
1143+ name: "Minimal session",
1144+ session: &sessions.SessionState{
1145+ User: "john.doe",
1146+ Email: "john.doe@example.com",
1147+ Groups: []string{"example", "groups"},
1148+ },
1149+ expectedResponse: "{\"user\":\"john.doe\",\"email\":\"john.doe@example.com\",\"groups\":[\"example\",\"groups\"]}\n",
1150+ },
1151+ {
1152+ name: "No groups",
1153+ session: &sessions.SessionState{
1154+ User: "john.doe",
1155+ Email: "john.doe@example.com",
1156+ AccessToken: "my_access_token",
1157+ },
1158+ expectedResponse: "{\"user\":\"john.doe\",\"email\":\"john.doe@example.com\"}\n",
1159+ },
1160+ {
1161+ name: "With Preferred Username",
1162+ session: &sessions.SessionState{
1163+ User: "john.doe",
1164+ PreferredUsername: "john",
1165+ Email: "john.doe@example.com",
1166+ Groups: []string{"example", "groups"},
1167+ AccessToken: "my_access_token",
1168+ },
1169+ expectedResponse: "{\"user\":\"john.doe\",\"email\":\"john.doe@example.com\",\"groups\":[\"example\",\"groups\"],\"preferredUsername\":\"john\"}\n",
1170+ },
11301171 }
11311172
1132− startSession := &sessions.SessionState{
1133− User: "john.doe",
1134− Email: "john.doe@example.com",
1135− Groups: []string{"example", "groups"},
1136− AccessToken: "my_access_token",
1137− }
1138− err = test.SaveSession(startSession)
1139− assert.NoError(t, err)
1173+ for _, tc := range testCases {
1174+ t.Run(tc.name, func(t *testing.T) {
1175+ test, err := NewUserInfoEndpointTest()
1176+ if err != nil {
1177+ t.Fatal(err)
1178+ }
1179+ err = test.SaveSession(tc.session)
1180+ assert.NoError(t, err)
11401181
1141− test.proxy.ServeHTTP(test.rw, test.req)
1142− assert.Equal(t, http.StatusOK, test.rw.Code)
1143− bodyBytes, _ := ioutil.ReadAll(test.rw.Body)
1144− assert.Equal(t, "{\"user\":\"john.doe\",\"email\":\"john.doe@example.com\",\"groups\":[\"example\",\"groups\"]}\n", string(bodyBytes))
1182+ test.proxy.ServeHTTP(test.rw, test.req)
1183+ assert.Equal(t, http.StatusOK, test.rw.Code)
1184+ bodyBytes, _ := ioutil.ReadAll(test.rw.Body)
1185+ assert.Equal(t, tc.expectedResponse, string(bodyBytes))
1186+ })
1187+ }
11451188}
11461189
11471190func TestUserInfoEndpointUnauthorizedOnNoCookieSetError(t *testing.T) {