func TestGetRepos(t *testing.T) { mux := http.NewServeMux() server := httptest.NewServer(mux) defer server.Close() mux.HandleFunc("/user/repos", func(w http.ResponseWriter, r *http.Request) { fmt.Fprint(w, repos) }) cfg := libs.NewConfig() cfg.Github.Username = "******" cfg.Github.Token = "xxx" gh := libs.NewGithub(cfg) require.NotNil(t, gh) gh.Client = github.NewClient(nil) require.NotNil(t, gh.Client) url, _ := url.Parse(server.URL) gh.Client.BaseURL = url gr, err := gh.GetRepos() require.Nil(t, err) require.NotNil(t, gr) b, err := json.Marshal(gr) require.Nil(t, err) require.NotEmpty(t, b) var dst bytes.Buffer json.Indent(&dst, b, "", " ") assert.Equal(t, githubRepos, dst.String()) }
func TestGetContribs(t *testing.T) { server := httptest.NewServer( http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { fmt.Fprint(w, contribs) }), ) defer server.Close() cfg := libs.NewConfig() gh := libs.NewGithub(cfg) require.NotNil(t, gh) gh.DocGetter = func(c *libs.Config) (*goquery.Document, error) { return goquery.NewDocument(server.URL) } gc, err := gh.GetContribs() require.Nil(t, err) require.NotNil(t, gc) b, err := json.Marshal(gc) require.Nil(t, err) require.NotEmpty(t, b) var dst bytes.Buffer json.Indent(&dst, b, "", " ") assert.Equal(t, githubContribs, dst.String()) }
func (sr *Api) AttachHandlers() { sr.github = libs.NewGithub(sr.Config) sr.Router.Handle("/", libs.HandlerFunc(sr.notFoundHandler)).Methods("GET") sr.Router.Handle("/projects", libs.HandlerFunc(sr.projectsHandler)).Methods("GET") sr.Router.Handle("/contributions", libs.HandlerFunc(sr.contributionsHandler)).Methods("GET") }