From d610adf8f27fbf4b1586d96312a95cb6d0b0e486 Mon Sep 17 00:00:00 2001 From: Marco Franssen Date: Thu, 6 Aug 2020 16:41:02 +0200 Subject: [PATCH] Add Test for verbose logging on github.Client --- lib/github/client.go | 34 ++++++++++++++++++++++++++++++++++ lib/github/client_test.go | 24 ++++++++++++++++++++++++ lib/github/repositories.go | 26 -------------------------- 3 files changed, 58 insertions(+), 26 deletions(-) create mode 100644 lib/github/client.go create mode 100644 lib/github/client_test.go diff --git a/lib/github/client.go b/lib/github/client.go new file mode 100644 index 0000000..2e653df --- /dev/null +++ b/lib/github/client.go @@ -0,0 +1,34 @@ +package github + +import ( + "context" + "io" + "net/http" + + "github.com/google/go-github/v32/github" + "github.com/shurcooL/githubv4" + "golang.org/x/oauth2" + + "github.com/philips-labs/tabia/lib/transport" +) + +type Client struct { + httpClient *http.Client + restClient *github.Client + *githubv4.Client +} + +func NewClientWithTokenAuth(token string, writer io.Writer) *Client { + src := oauth2.StaticTokenSource(&oauth2.Token{AccessToken: token}) + httpClient := oauth2.NewClient(context.Background(), src) + if writer != nil { + httpClient.Transport = transport.TeeRoundTripper{ + RoundTripper: httpClient.Transport, + Writer: writer, + } + } + client := githubv4.NewClient(httpClient) + restClient := github.NewClient(httpClient) + + return &Client{httpClient, restClient, client} +} diff --git a/lib/github/client_test.go b/lib/github/client_test.go new file mode 100644 index 0000000..ca01271 --- /dev/null +++ b/lib/github/client_test.go @@ -0,0 +1,24 @@ +package github_test + +import ( + "context" + "strings" + "testing" + + "github.com/stretchr/testify/assert" + + "github.com/philips-labs/tabia/lib/github" +) + +func TestClient(t *testing.T) { + assert := assert.New(t) + + var buf strings.Builder + + client := github.NewClientWithTokenAuth("token", &buf) + var q struct{} + client.Client.Query(context.Background(), q, nil) + + assert.NotEmpty(buf) + assert.Equal("POST: https://api.github.com/graphql {\"query\":\"{}\"}\n", buf.String()) +} diff --git a/lib/github/repositories.go b/lib/github/repositories.go index 261c4ff..886fa09 100644 --- a/lib/github/repositories.go +++ b/lib/github/repositories.go @@ -3,41 +3,15 @@ package github import ( "context" "fmt" - "io" - "net/http" "strings" "time" - "golang.org/x/oauth2" - "github.com/google/go-github/v32/github" "github.com/shurcooL/githubv4" "github.com/philips-labs/tabia/lib/github/graphql" - "github.com/philips-labs/tabia/lib/transport" ) -type Client struct { - httpClient *http.Client - restClient *github.Client - *githubv4.Client -} - -func NewClientWithTokenAuth(token string, writer io.Writer) *Client { - src := oauth2.StaticTokenSource(&oauth2.Token{AccessToken: token}) - httpClient := oauth2.NewClient(context.Background(), src) - if writer != nil { - httpClient.Transport = transport.TeeRoundTripper{ - RoundTripper: httpClient.Transport, - Writer: writer, - } - } - client := githubv4.NewClient(httpClient) - restClient := github.NewClient(httpClient) - - return &Client{httpClient, restClient, client} -} - //go:generate stringer -type=Visibility // Visibility indicates repository visibility