antigravity_subscription_test.go 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. package service
  2. import (
  3. "testing"
  4. "github.com/Wei-Shaw/sub2api/internal/pkg/antigravity"
  5. "github.com/stretchr/testify/assert"
  6. )
  7. func TestNormalizeAntigravitySubscription_PaidTierWithIneligible(t *testing.T) {
  8. resp := &antigravity.LoadCodeAssistResponse{
  9. PaidTier: &antigravity.PaidTierInfo{ID: "g1-pro-tier"},
  10. IneligibleTiers: []*antigravity.IneligibleTier{
  11. {ReasonMessage: "location validation required"},
  12. },
  13. }
  14. result := NormalizeAntigravitySubscription(resp)
  15. assert.Equal(t, "Pro", result.PlanType, "paid tier should preserve Pro even with ineligible tiers")
  16. assert.Equal(t, "abnormal", result.SubscriptionStatus)
  17. assert.Equal(t, "location validation required", result.SubscriptionError)
  18. }
  19. func TestNormalizeAntigravitySubscription_FreeTierWithIneligible(t *testing.T) {
  20. resp := &antigravity.LoadCodeAssistResponse{
  21. PaidTier: &antigravity.PaidTierInfo{ID: "free-tier"},
  22. IneligibleTiers: []*antigravity.IneligibleTier{
  23. {ReasonMessage: "some warning"},
  24. },
  25. }
  26. result := NormalizeAntigravitySubscription(resp)
  27. assert.Equal(t, "Abnormal", result.PlanType, "free tier with ineligible should be Abnormal")
  28. assert.Equal(t, "abnormal", result.SubscriptionStatus)
  29. }
  30. func TestNormalizeAntigravitySubscription_NoIneligible(t *testing.T) {
  31. resp := &antigravity.LoadCodeAssistResponse{
  32. PaidTier: &antigravity.PaidTierInfo{ID: "g1-ultra-tier"},
  33. }
  34. result := NormalizeAntigravitySubscription(resp)
  35. assert.Equal(t, "Ultra", result.PlanType)
  36. assert.Empty(t, result.SubscriptionStatus)
  37. }
  38. func TestNormalizeAntigravitySubscription_NilResponse(t *testing.T) {
  39. result := NormalizeAntigravitySubscription(nil)
  40. assert.Equal(t, "Free", result.PlanType)
  41. }
  42. func TestNormalizeAntigravitySubscription_NoTierWithIneligible(t *testing.T) {
  43. resp := &antigravity.LoadCodeAssistResponse{
  44. IneligibleTiers: []*antigravity.IneligibleTier{
  45. {ReasonMessage: "unknown issue"},
  46. },
  47. }
  48. result := NormalizeAntigravitySubscription(resp)
  49. assert.Equal(t, "Abnormal", result.PlanType, "no tier + ineligible should be Abnormal")
  50. assert.Equal(t, "abnormal", result.SubscriptionStatus)
  51. }