package geoip import "testing" func TestLookup(t *testing.T) { reader, err := New() if err != nil { t.Fatalf("New: %v", err) } defer reader.Close() tests := []struct { ip string want string }{ {"8.8.8.8", "US"}, {"1.1.1.1", "AU"}, {"invalid", ""}, {"", ""}, } for _, tt := range tests { t.Run(tt.ip, func(t *testing.T) { got := reader.Lookup(tt.ip) if got != tt.want { t.Errorf("Lookup(%q) = %q, want %q", tt.ip, got, tt.want) } }) } } func TestLookupPrivateIP(t *testing.T) { reader, err := New() if err != nil { t.Fatalf("New: %v", err) } defer reader.Close() // Private IPs should return empty string (no country). got := reader.Lookup("10.0.0.1") if got != "" { t.Errorf("Lookup(10.0.0.1) = %q, want empty", got) } }