antigravity_token_provider_test.go 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. //go:build unit
  2. package service
  3. import (
  4. "context"
  5. "testing"
  6. "github.com/stretchr/testify/require"
  7. )
  8. func TestAntigravityTokenProvider_GetAccessToken_Upstream(t *testing.T) {
  9. provider := &AntigravityTokenProvider{}
  10. t.Run("upstream account with valid api_key", func(t *testing.T) {
  11. account := &Account{
  12. Platform: PlatformAntigravity,
  13. Type: AccountTypeUpstream,
  14. Credentials: map[string]any{
  15. "api_key": "sk-test-key-12345",
  16. },
  17. }
  18. token, err := provider.GetAccessToken(context.Background(), account)
  19. require.NoError(t, err)
  20. require.Equal(t, "sk-test-key-12345", token)
  21. })
  22. t.Run("upstream account missing api_key", func(t *testing.T) {
  23. account := &Account{
  24. Platform: PlatformAntigravity,
  25. Type: AccountTypeUpstream,
  26. Credentials: map[string]any{},
  27. }
  28. token, err := provider.GetAccessToken(context.Background(), account)
  29. require.Error(t, err)
  30. require.Contains(t, err.Error(), "upstream account missing api_key")
  31. require.Empty(t, token)
  32. })
  33. t.Run("upstream account with empty api_key", func(t *testing.T) {
  34. account := &Account{
  35. Platform: PlatformAntigravity,
  36. Type: AccountTypeUpstream,
  37. Credentials: map[string]any{
  38. "api_key": "",
  39. },
  40. }
  41. token, err := provider.GetAccessToken(context.Background(), account)
  42. require.Error(t, err)
  43. require.Contains(t, err.Error(), "upstream account missing api_key")
  44. require.Empty(t, token)
  45. })
  46. t.Run("upstream account with nil credentials", func(t *testing.T) {
  47. account := &Account{
  48. Platform: PlatformAntigravity,
  49. Type: AccountTypeUpstream,
  50. }
  51. token, err := provider.GetAccessToken(context.Background(), account)
  52. require.Error(t, err)
  53. require.Contains(t, err.Error(), "upstream account missing api_key")
  54. require.Empty(t, token)
  55. })
  56. }
  57. func TestAntigravityTokenProvider_GetAccessToken_Guards(t *testing.T) {
  58. provider := &AntigravityTokenProvider{}
  59. t.Run("nil account", func(t *testing.T) {
  60. token, err := provider.GetAccessToken(context.Background(), nil)
  61. require.Error(t, err)
  62. require.Contains(t, err.Error(), "account is nil")
  63. require.Empty(t, token)
  64. })
  65. t.Run("non-antigravity platform", func(t *testing.T) {
  66. account := &Account{
  67. Platform: PlatformAnthropic,
  68. Type: AccountTypeOAuth,
  69. }
  70. token, err := provider.GetAccessToken(context.Background(), account)
  71. require.Error(t, err)
  72. require.Contains(t, err.Error(), "not an antigravity account")
  73. require.Empty(t, token)
  74. })
  75. t.Run("unsupported account type", func(t *testing.T) {
  76. account := &Account{
  77. Platform: PlatformAntigravity,
  78. Type: AccountTypeAPIKey,
  79. }
  80. token, err := provider.GetAccessToken(context.Background(), account)
  81. require.Error(t, err)
  82. require.Contains(t, err.Error(), "not an antigravity oauth account")
  83. require.Empty(t, token)
  84. })
  85. }