Skip to content

Commit

Permalink
Fix panic with nil onTokenChanged handler
Browse files Browse the repository at this point in the history
  • Loading branch information
printesoi committed Apr 9, 2024
1 parent 1781233 commit 493e3e4
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 7 deletions.
10 changes: 5 additions & 5 deletions client_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,7 @@ func setupTestOAuth2Config(clientID, clientSecret string) (oauth2Cfg oauth2.Conf
// setupTestClient sets up a test HTTP server along with a Client that is
// configured to talk to that test server. Tests should register handlers on
// mux which provide mock responses for the API method being tested.
func setupTestClient(token *xoauth2.Token) (client *Client, mux *http.ServeMux, serverURL string, teardown func(), err error) {
func setupTestClient(oauth2Cfg oauth2.Config, token *xoauth2.Token) (client *Client, mux *http.ServeMux, serverURL string, teardown func(), err error) {
// mux is the HTTP request multiplexer used with the test server.
mux = http.NewServeMux()

Expand All @@ -170,9 +170,9 @@ func setupTestClient(token *xoauth2.Token) (client *Client, mux *http.ServeMux,
}

serverURL = server.URL
client, err = NewClient(
context.Background(),
ClientOAuth2TokenSource(xoauth2.StaticTokenSource(token)),
ctx := context.Background()
client, err = NewClient(ctx,
ClientOAuth2TokenSource(oauth2Cfg.TokenSource(ctx, token)),
ClientSandboxEnvironment(true),
ClientBaseURL(serverURL+apiBasePathSandbox),
ClientBasePublicURL(serverURL+apiPublicBasePathProd),
Expand Down Expand Up @@ -275,7 +275,7 @@ func TestClientAuth(t *testing.T) {
return
}

client, clientMux, serverURL, clientTeardown, err := setupTestClient(token)
client, clientMux, serverURL, clientTeardown, err := setupTestClient(oauth2Cfg, token)
if clientTeardown != nil {
defer clientTeardown()
}
Expand Down
6 changes: 4 additions & 2 deletions oauth2/token_source.go
Original file line number Diff line number Diff line change
Expand Up @@ -87,8 +87,10 @@ func (tf *tokenRefresher) Token() (*xoauth2.Token, error) {
}
if tf.refreshToken != tk.RefreshToken {
tf.refreshToken = tk.RefreshToken
if err := tf.onTokenChanged(tf.ctx, tk); err != nil {
return tk, err
if tf.onTokenChanged != nil {
if err := tf.onTokenChanged(tf.ctx, tk); err != nil {
return tk, err
}
}
}
return tk, err
Expand Down

0 comments on commit 493e3e4

Please sign in to comment.