| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- package service
- import (
- "encoding/json"
- "testing"
- )
- func TestResolveDefaultTierID(t *testing.T) {
- t.Parallel()
- tests := []struct {
- name string
- loadRaw map[string]any
- want string
- }{
- {
- name: "nil loadRaw",
- loadRaw: nil,
- want: "",
- },
- {
- name: "missing allowedTiers",
- loadRaw: map[string]any{
- "paidTier": map[string]any{"id": "g1-pro-tier"},
- },
- want: "",
- },
- {
- name: "empty allowedTiers",
- loadRaw: map[string]any{"allowedTiers": []any{}},
- want: "",
- },
- {
- name: "tier missing id field",
- loadRaw: map[string]any{
- "allowedTiers": []any{
- map[string]any{"isDefault": true},
- },
- },
- want: "",
- },
- {
- name: "allowedTiers but no default",
- loadRaw: map[string]any{
- "allowedTiers": []any{
- map[string]any{"id": "free-tier", "isDefault": false},
- map[string]any{"id": "standard-tier", "isDefault": false},
- },
- },
- want: "",
- },
- {
- name: "default tier found",
- loadRaw: map[string]any{
- "allowedTiers": []any{
- map[string]any{"id": "free-tier", "isDefault": true},
- map[string]any{"id": "standard-tier", "isDefault": false},
- },
- },
- want: "free-tier",
- },
- {
- name: "default tier id with spaces",
- loadRaw: map[string]any{
- "allowedTiers": []any{
- map[string]any{"id": " standard-tier ", "isDefault": true},
- },
- },
- want: "standard-tier",
- },
- }
- for _, tc := range tests {
- t.Run(tc.name, func(t *testing.T) {
- t.Parallel()
- got := resolveDefaultTierID(tc.loadRaw)
- if got != tc.want {
- t.Fatalf("resolveDefaultTierID() = %q, want %q", got, tc.want)
- }
- })
- }
- }
- // The OAuth handler serializes this DTO before the browser creates or reauthorizes an account.
- func TestAntigravityTokenInfoPreservesPlanTypeJSON(t *testing.T) {
- for _, plan := range []string{"pro", "ultra", "free", ""} {
- t.Run(plan, func(t *testing.T) {
- data, err := json.Marshal(AntigravityTokenInfo{PlanType: plan})
- if err != nil {
- t.Fatal(err)
- }
- var response map[string]any
- if err := json.Unmarshal(data, &response); err != nil {
- t.Fatal(err)
- }
- if plan == "" {
- if _, exists := response["plan_type"]; exists {
- t.Fatal("unknown plan must remain omitted")
- }
- } else if response["plan_type"] != plan {
- t.Fatalf("OAuth response plan_type = %v, want %q", response["plan_type"], plan)
- }
- })
- }
- }
|