package admin import ( "encoding/json" "strings" "testing" "time" dbent "github.com/Wei-Shaw/sub2api/ent" ) func TestSanitizeAdminPaymentOrderForResponseAddsCurrency(t *testing.T) { now := time.Now() order := &dbent.PaymentOrder{ ID: 1, UserID: 2, Amount: 100, PayAmount: 108, FeeRate: 8, OutTradeNo: "sub2_202606250001", PaymentType: "stripe", OrderType: "subscription", Status: "COMPLETED", ExpiresAt: now, CreatedAt: now, UpdatedAt: now, ProviderSnapshot: map[string]any{ "schema_version": 2, "currency": "USD", }, } got := sanitizeAdminPaymentOrderForResponse(order) if got == nil { t.Fatal("expected sanitized order") } if got.Currency != "USD" { t.Fatalf("expected currency USD, got %q", got.Currency) } body, err := json.Marshal(got) if err != nil { t.Fatalf("marshal sanitized order: %v", err) } if strings.Contains(string(body), "provider_snapshot") { t.Fatalf("expected provider_snapshot to be omitted, got %s", string(body)) } }