| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- package admin
- import (
- "testing"
- "github.com/Wei-Shaw/sub2api/internal/handler/dto"
- "github.com/Wei-Shaw/sub2api/internal/service"
- "github.com/stretchr/testify/require"
- )
- func TestEnrichShadowParentInfo(t *testing.T) {
- pid := int64(100)
- parent := &service.Account{
- ID: 100,
- Credentials: map[string]any{
- "email": "owner@example.com",
- "plan_type": "pro",
- "subscription_expires_at": "2026-12-31T00:00:00Z",
- "chatgpt_account_id": "acct_123",
- },
- Extra: map[string]any{"privacy_mode": "training_off"},
- }
- parents := map[int64]*service.Account{100: parent}
- shadow := AccountWithConcurrency{Account: &dto.Account{ID: 200, ParentAccountID: &pid}}
- normal := AccountWithConcurrency{Account: &dto.Account{ID: 1}}
- orphan := AccountWithConcurrency{Account: &dto.Account{ID: 201, ParentAccountID: ptrInt64(999)}}
- items := []AccountWithConcurrency{shadow, normal, orphan}
- enrichShadowParentInfo(items, parents)
- require.Equal(t, "owner@example.com", items[0].ParentEmail, "影子回填母账号邮箱")
- require.Equal(t, "pro", items[0].ParentPlanType)
- require.Equal(t, "training_off", items[0].ParentPrivacyMode)
- require.Equal(t, "2026-12-31T00:00:00Z", items[0].ParentSubscriptionExpiresAt)
- require.Equal(t, "acct_123", items[0].ParentChatGPTAccountID)
- require.Empty(t, items[1].ParentEmail, "非影子不回填")
- require.Empty(t, items[2].ParentEmail, "母账号缺失时优雅留空")
- }
- func ptrInt64(v int64) *int64 { return &v }
|