package connector import ( "net/http" "testing" "github.com/coreos/go-oidc/oidc" ) var ( githubExampleUser = `{"login":"octocat","id":1,"name": "monalisa octocat","email": "octocat@github.com"}` githubExampleError = `{"message":"Bad credentials","documentation_url":"https://developer.github.com/v3"}` ) func TestGitHubIdentity(t *testing.T) { tests := []oauth2IdentityTest{ { urlResps: map[string]response{ githubAPIUserURL: {http.StatusOK, githubExampleUser}, }, want: oidc.Identity{ Name: "monalisa octocat", ID: "1", Email: "octocat@github.com", }, }, { urlResps: map[string]response{ githubAPIUserURL: {http.StatusUnauthorized, githubExampleError}, }, wantErr: githubError{ Message: "Bad credentials", }, }, } conn, err := newGitHubConnector("fakeclientid", "fakeclientsecret", "http://examle.com/auth/github/callback") if err != nil { t.Fatal(err) } runOAuth2IdentityTests(t, conn, tests) }