...

Source file src/edge-infra.dev/pkg/k8s/runtime/client/object_test.go

Documentation: edge-infra.dev/pkg/k8s/runtime/client

     1  package client
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/assert"
     7  	"sigs.k8s.io/controller-runtime/pkg/client"
     8  )
     9  
    10  func TestObjectKeyFromRefString(t *testing.T) {
    11  	tcs := map[string]struct {
    12  		ref      string
    13  		expected client.ObjectKey
    14  		valid    bool
    15  	}{
    16  		"valid":                       {"default/guestbook", key("guestbook", "default"), true},
    17  		"has kind":                    {"deployment/default/guestbook", key("", ""), false},
    18  		"empty string":                {"", key("", ""), false},
    19  		"no slash":                    {"default", key("", ""), false},
    20  		"slash with no value":         {"default/", key("", ""), false},
    21  		"slash with no leading value": {"/guestbook", key("", ""), false},
    22  		"slash":                       {"/", key("", ""), false},
    23  	}
    24  
    25  	for name, tc := range tcs {
    26  		t.Run(name, func(t *testing.T) {
    27  			key, err := ObjectKeyFromRefStr(tc.ref)
    28  			switch {
    29  			case tc.valid:
    30  				assert.Equal(t, tc.expected, key)
    31  			default:
    32  				assert.Error(t, err)
    33  			}
    34  		})
    35  	}
    36  }
    37  
    38  func key(n, ns string) client.ObjectKey {
    39  	return client.ObjectKey{Name: n, Namespace: ns}
    40  }
    41  

View as plain text