| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- //go:build unit
- package service
- import (
- "context"
- "errors"
- "testing"
- "github.com/Wei-Shaw/sub2api/internal/config"
- "github.com/imroc/req/v3"
- "github.com/stretchr/testify/require"
- )
- func TestAdminService_EnsureOpenAIPrivacy_RetriesNonSuccessModes(t *testing.T) {
- t.Parallel()
- for _, mode := range []string{PrivacyModeFailed, PrivacyModeCFBlocked} {
- t.Run(mode, func(t *testing.T) {
- t.Parallel()
- privacyCalls := 0
- svc := &adminServiceImpl{
- accountRepo: &mockAccountRepoForGemini{},
- privacyClientFactory: func(proxyURL string) (*req.Client, error) {
- privacyCalls++
- return nil, errors.New("factory failed")
- },
- }
- account := &Account{
- ID: 101,
- Platform: PlatformOpenAI,
- Type: AccountTypeOAuth,
- Credentials: map[string]any{
- "access_token": "token-1",
- },
- Extra: map[string]any{
- "privacy_mode": mode,
- },
- }
- got := svc.EnsureOpenAIPrivacy(context.Background(), account)
- require.Equal(t, PrivacyModeFailed, got)
- require.Equal(t, 1, privacyCalls)
- })
- }
- }
- func TestTokenRefreshService_ensureOpenAIPrivacy_RetriesNonSuccessModes(t *testing.T) {
- t.Parallel()
- cfg := &config.Config{
- TokenRefresh: config.TokenRefreshConfig{
- MaxRetries: 1,
- RetryBackoffSeconds: 0,
- },
- }
- for _, mode := range []string{PrivacyModeFailed, PrivacyModeCFBlocked} {
- t.Run(mode, func(t *testing.T) {
- t.Parallel()
- service := NewTokenRefreshService(&tokenRefreshAccountRepo{}, nil, nil, nil, nil, nil, nil, cfg, nil)
- privacyCalls := 0
- service.SetPrivacyDeps(func(proxyURL string) (*req.Client, error) {
- privacyCalls++
- return nil, errors.New("factory failed")
- }, nil)
- account := &Account{
- ID: 202,
- Platform: PlatformOpenAI,
- Type: AccountTypeOAuth,
- Credentials: map[string]any{
- "access_token": "token-2",
- },
- Extra: map[string]any{
- "privacy_mode": mode,
- },
- }
- service.ensureOpenAIPrivacy(context.Background(), account)
- require.Equal(t, 1, privacyCalls)
- })
- }
- }
|