package client import ( "testing" "github.com/stretchr/testify/assert" "sigs.k8s.io/controller-runtime/pkg/client" ) func TestObjectKeyFromRefString(t *testing.T) { tcs := map[string]struct { ref string expected client.ObjectKey valid bool }{ "valid": {"default/guestbook", key("guestbook", "default"), true}, "has kind": {"deployment/default/guestbook", key("", ""), false}, "empty string": {"", key("", ""), false}, "no slash": {"default", key("", ""), false}, "slash with no value": {"default/", key("", ""), false}, "slash with no leading value": {"/guestbook", key("", ""), false}, "slash": {"/", key("", ""), false}, } for name, tc := range tcs { t.Run(name, func(t *testing.T) { key, err := ObjectKeyFromRefStr(tc.ref) switch { case tc.valid: assert.Equal(t, tc.expected, key) default: assert.Error(t, err) } }) } } func key(n, ns string) client.ObjectKey { return client.ObjectKey{Name: n, Namespace: ns} }