//go:build unit package repository import ( "testing" "github.com/Wei-Shaw/sub2api/internal/pkg/usagestats" "github.com/stretchr/testify/require" ) func TestResolveEndpointColumn(t *testing.T) { tests := []struct { endpointType string want string }{ {"inbound", "ul.inbound_endpoint"}, {"upstream", "ul.upstream_endpoint"}, {"path", "ul.inbound_endpoint || ' -> ' || ul.upstream_endpoint"}, {"", "ul.inbound_endpoint"}, // default {"unknown", "ul.inbound_endpoint"}, // fallback } for _, tc := range tests { t.Run(tc.endpointType, func(t *testing.T) { got := resolveEndpointColumn(tc.endpointType) require.Equal(t, tc.want, got) }) } } func TestResolveModelDimensionExpression(t *testing.T) { tests := []struct { modelType string want string }{ {usagestats.ModelSourceRequested, "COALESCE(NULLIF(TRIM(requested_model), ''), model)"}, {usagestats.ModelSourceUpstream, "COALESCE(NULLIF(TRIM(upstream_model), ''), COALESCE(NULLIF(TRIM(requested_model), ''), model))"}, {usagestats.ModelSourceMapping, "(COALESCE(NULLIF(TRIM(requested_model), ''), model) || ' -> ' || COALESCE(NULLIF(TRIM(upstream_model), ''), COALESCE(NULLIF(TRIM(requested_model), ''), model)))"}, {"", "COALESCE(NULLIF(TRIM(requested_model), ''), model)"}, {"invalid", "COALESCE(NULLIF(TRIM(requested_model), ''), model)"}, } for _, tc := range tests { t.Run(tc.modelType, func(t *testing.T) { got := resolveModelDimensionExpression(tc.modelType) require.Equal(t, tc.want, got) }) } }