2026-07-03 18:49:44 +08:00

59 lines
1.6 KiB
Go

package databi
import (
"testing"
"time"
"hyapp-admin-server/internal/model"
"hyapp-admin-server/internal/repository"
)
func testAccess() repository.MoneyAccess {
return repository.MoneyAccess{
UserID: 7,
Scopes: []model.UserMoneyScope{
{UserID: 7, AppCode: "lalu", RegionID: 0},
{UserID: 7, AppCode: "aslan", RegionID: 11},
{UserID: 7, AppCode: "aslan", RegionID: 12},
},
}
}
func mustLocation(t *testing.T, name string) *time.Location {
t.Helper()
location, err := time.LoadLocation(name)
if err != nil {
t.Fatalf("load location %s: %v", name, err)
}
return location
}
func TestRegionDisplay(t *testing.T) {
regions := []RegionInfo{{AppCode: "aslan", RegionID: 11, RegionCode: "MENA", RegionName: "中东"}}
if _, name := regionDisplay(regions, 0); name != "全部区域" {
t.Fatalf("expected 全部区域 for region 0, got %s", name)
}
if code, name := regionDisplay(regions, 11); code != "MENA" || name != "中东" {
t.Fatalf("unexpected display for region 11: %s %s", code, name)
}
if _, name := regionDisplay(regions, 99); name != "区域 99" {
t.Fatalf("expected fallback name for unknown region, got %s", name)
}
}
func TestTopLevelMetricsStripsStructuralKeys(t *testing.T) {
out := topLevelMetrics(map[string]any{
"recharge_usd_minor": int64(5),
"daily_series": []any{"x"},
"country_breakdown": []any{"y"},
"daily_country_breakdown": []any{"z"},
"report_metric_sources": []any{},
})
if _, ok := out["daily_series"]; ok {
t.Fatalf("expected daily_series stripped")
}
if out["recharge_usd_minor"] != int64(5) {
t.Fatalf("expected metric kept, got %v", out["recharge_usd_minor"])
}
}