package utils import "testing" func TestResolveClientIP_PrefersPublicForwardedIP(t *testing.T) { got := ResolveClientIP("100.100.100.1, 203.0.113.25, 10.0.0.2", "", "172.18.0.5") if got != "203.0.113.25" { t.Fatalf("expected public forwarded IP, got %q", got) } } func TestResolveClientIP_FallsBackToFirstForwardedWhenAllPrivate(t *testing.T) { got := ResolveClientIP("100.100.100.1, 10.0.0.2", "192.168.0.10", "172.18.0.5") if got != "100.100.100.1" { t.Fatalf("expected first forwarded private IP, got %q", got) } } func TestResolveClientIP_PrefersPublicRealIPOverPrivateForwarded(t *testing.T) { got := ResolveClientIP("100.100.100.1, 10.0.0.2", "198.51.100.7", "172.18.0.5") if got != "198.51.100.7" { t.Fatalf("expected public real IP, got %q", got) } }