package util_test import ( "testing" "edge-infra.dev/pkg/edge/iam/util" ) func TestMaskURL(t *testing.T) { const defaultURL = "/a?k1=some-k1-value123&k2=987654321" tcs := []struct { name string url string keysToMask []string expected string }{ {"NON-EXISTING-KEY", defaultURL, []string{"NON-EXISTING-KEY"}, defaultURL}, {"MASK-ONE-KEY", defaultURL, []string{"k1"}, "/a?k1=xxxxxue123&k2=987654321"}, {"MASK-TWO-KEYS", defaultURL, []string{"k1", "k2"}, "/a?k1=xxxxxue123&k2=xxxxx54321"}, {"MASK-ALL-IF-SHORT-VALUE", defaultURL + "&k3=123", []string{"k3"}, "/a?k1=some-k1-value123&k2=987654321&k3=xxxxx"}, {"DO-NOT-ENCODE-URL", defaultURL + "&k3=http%3A%2F%2Flocalhost%3A8088%2Fverify%2Fcallback", []string{"k1", "k2"}, "/a?k1=xxxxxue123&k2=xxxxx54321&k3=http%3A%2F%2Flocalhost%3A8088%2Fverify%2Fcallback"}, } t.Parallel() for _, tc := range tcs { t.Run(tc.name, func(t *testing.T) { got, _ := util.MaskURLQuery(tc.url, tc.keysToMask...) if got != tc.expected { t.Errorf("%s: MaskURLQuery(%s, %s) expected `%v` got `%v`", tc.name, tc.url, tc.keysToMask, tc.expected, got) } }) } }