Files
ai-agent/internal/services/public_asset_url_test.go
T

43 lines
1.4 KiB
Go
Raw Normal View History

package services
import "testing"
func TestResolvePublicAssetURL(t *testing.T) {
SetPublicAssetURLResolver(func(value string) string {
return "https://cdn.example.com/" + value
})
t.Cleanup(func() { SetPublicAssetURLResolver(nil) })
if got := ResolvePublicAssetURL(" mall/materials/avatar.png "); got != "https://cdn.example.com/mall/materials/avatar.png" {
t.Fatalf("ResolvePublicAssetURL() = %q", got)
}
}
func TestResolvePublicAssetURLFallsBackToStoredValue(t *testing.T) {
SetPublicAssetURLResolver(func(string) string { return "" })
t.Cleanup(func() { SetPublicAssetURLResolver(nil) })
if got := ResolvePublicAssetURL(" /storage/avatar.png "); got != "/storage/avatar.png" {
t.Fatalf("ResolvePublicAssetURL() = %q", got)
}
}
func TestSetPublicAssetURLSettingsUsesManagementDomainRule(t *testing.T) {
SetPublicAssetURLSettings(map[string]string{
"oss_default_engine": "qiniu",
"oss_qiniu_domain": "cdn.example.com",
})
t.Cleanup(func() { SetPublicAssetURLResolver(nil) })
tests := map[string]string{
"mall/materials/avatar.png": "https://cdn.example.com/mall/materials/avatar.png",
"/storage/builtin-avatar.png": "/storage/builtin-avatar.png",
"https://system.example.com/icon.png": "https://system.example.com/icon.png",
}
for input, want := range tests {
if got := ResolvePublicAssetURL(input); got != want {
t.Fatalf("ResolvePublicAssetURL(%q) = %q, want %q", input, got, want)
}
}
}