| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- package service
- import (
- "context"
- "errors"
- "net/url"
- "testing"
- "github.com/Wei-Shaw/sub2api/internal/pkg/openai"
- "github.com/stretchr/testify/require"
- )
- type openaiOAuthClientAuthURLStub struct{}
- func (s *openaiOAuthClientAuthURLStub) ExchangeCode(ctx context.Context, code, codeVerifier, redirectURI, proxyURL, clientID string) (*openai.TokenResponse, error) {
- return nil, errors.New("not implemented")
- }
- func (s *openaiOAuthClientAuthURLStub) RefreshToken(ctx context.Context, refreshToken, proxyURL string) (*openai.TokenResponse, error) {
- return nil, errors.New("not implemented")
- }
- func (s *openaiOAuthClientAuthURLStub) RefreshTokenWithClientID(ctx context.Context, refreshToken, proxyURL string, clientID string) (*openai.TokenResponse, error) {
- return nil, errors.New("not implemented")
- }
- func TestOpenAIOAuthService_GenerateAuthURL_OpenAIKeepsCodexFlow(t *testing.T) {
- svc := NewOpenAIOAuthService(nil, &openaiOAuthClientAuthURLStub{})
- defer svc.Stop()
- result, err := svc.GenerateAuthURL(context.Background(), nil, "", PlatformOpenAI)
- require.NoError(t, err)
- require.NotEmpty(t, result.AuthURL)
- require.NotEmpty(t, result.SessionID)
- parsed, err := url.Parse(result.AuthURL)
- require.NoError(t, err)
- q := parsed.Query()
- require.Equal(t, openai.ClientID, q.Get("client_id"))
- require.Equal(t, "true", q.Get("codex_cli_simplified_flow"))
- session, ok := svc.sessionStore.Get(result.SessionID)
- require.True(t, ok)
- require.Equal(t, openai.ClientID, session.ClientID)
- }
|