package geoflag import "testing" func TestFromText(t *testing.T) { cases := []struct { in, cc string }{ {"DE-Frankfurt-1", "DE"}, {"[NL] Amsterdam", "NL"}, {"πŸ‡ΊπŸ‡Έ US West", "US"}, {"Germany Hetzner", "DE"}, {"unknown-node", ""}, // Russian country names. {"ГСрмания-1", "DE"}, {"НидСрланды Fast", "NL"}, {"Π‘Π΅Ρ€Π²Π΅Ρ€ ШвСйцария", "CH"}, {"БША восток", "US"}, {"ВСликобритания", "GB"}, // City β†’ country hints. {"Frankfurt-Hetzner", "DE"}, {"АмстСрдам 2", "NL"}, {"node-helsinki", "FI"}, // Names from live Remnawave subscription (emoji comes first). {"πŸ‡¨πŸ‡Ώ Czech Republic Vless", "CZ"}, {"πŸ‡³πŸ‡΄ Norway TR+WS", "NO"}, {"πŸ‡©πŸ‡ͺ Germany 3 HY", "DE"}, // Panel-side typos seen in production. {"Π ΡƒΠΌΡŒΠΈΠ½Ρ", "RO"}, {"Румыня-2", "RO"}, {"Румяння", "RO"}, {"Румяння β€” ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ", "RO"}, {"Π ΡƒΠΌΡŒΠΈΠ½ΠΈΡ", "RO"}, {"Π ΡƒΠΌΡŒΠΈΠ½ΠΈΡ Fast", "RO"}, {"Ρ€ΡƒΠΌΡ‹Π½ΠΈΠ°", "RO"}, {"Румыния", "RO"}, } for _, c := range cases { cc, emoji := FromText(c.in) if cc != c.cc { t.Fatalf("%q: got cc %q want %q", c.in, cc, c.cc) } if c.cc != "" && emoji == "" { t.Fatalf("%q: empty emoji", c.in) } } }