diff --git a/internal/tiger/cmd/auth_test.go b/internal/tiger/cmd/auth_test.go index 65cbabec..aa1cbc7f 100644 --- a/internal/tiger/cmd/auth_test.go +++ b/internal/tiger/cmd/auth_test.go @@ -15,7 +15,6 @@ import ( "regexp" "strings" "testing" - "time" "github.com/timescale/tiger-cli/internal/tiger/config" ) @@ -410,10 +409,6 @@ func mockOpenBrowser(t *testing.T) func(string) error { // Give the OAuth server a moment to start go func() { - // Sleep to ensure the OAuth callback server is listening - // This prevents "EOF" errors in CI when the server hasn't started yet - time.Sleep(100 * time.Millisecond) - // Make the OAuth callback request directly callbackURL := fmt.Sprintf("%s?code=test-auth-code&state=%s", redirectURI, state) t.Logf("Mock browser making callback request to: %s", callbackURL) diff --git a/internal/tiger/cmd/oauth.go b/internal/tiger/cmd/oauth.go index 20297608..0c5ecd05 100644 --- a/internal/tiger/cmd/oauth.go +++ b/internal/tiger/cmd/oauth.go @@ -77,7 +77,7 @@ func (l *oauthLogin) getAccessToken(ctx context.Context) (string, error) { return "", fmt.Errorf("failed to create local server: %w", err) } defer func() { - if err := server.Close(); err != nil { + if err := server.server.Shutdown(ctx); err != nil { fmt.Fprintf(l.out, "Failed to close local server: %s\n", err) } }() @@ -110,7 +110,6 @@ func (l *oauthLogin) generateRandomState(length int) (string, error) { } type oauthServer struct { - listener net.Listener server *http.Server oauthCfg oauth2.Config resultChan <-chan oauthResult @@ -162,26 +161,11 @@ func (l *oauthLogin) startOAuthServer(expectedState, codeVerifier string) (*oaut return &oauthServer{ server: server, - listener: listener, oauthCfg: oauthCfg, resultChan: resultChan, }, nil } -func (s *oauthServer) Close() error { - cls := func(closer io.Closer) error { - if err := closer.Close(); err != nil && !errors.Is(err, net.ErrClosed) { - return err - } - return nil - } - - return errors.Join( - cls(s.server), - cls(s.listener), - ) -} - type oauthCallback struct { oauthCfg oauth2.Config expectedState string