github.com/replicatedhq/ship@v0.55.0/pkg/util/kubernetes_name_test.go (about)

     1  package util
     2  
     3  import "testing"
     4  
     5  func TestGenerateNameFromMetadata(t *testing.T) {
     6  	tests := []struct {
     7  		name    string
     8  		k8sYaml MinimalK8sYaml
     9  		idx     int
    10  		want    string
    11  	}{
    12  		{
    13  			name: "basic, no metadata",
    14  			k8sYaml: MinimalK8sYaml{
    15  				Kind: "test",
    16  			},
    17  			idx:  2,
    18  			want: "test-2",
    19  		},
    20  		{
    21  			name: "basic",
    22  			k8sYaml: MinimalK8sYaml{
    23  				Kind: "test",
    24  				Metadata: MinimalK8sMetadata{
    25  					Name:      "testname",
    26  					Namespace: "testns",
    27  				},
    28  			},
    29  			idx:  1,
    30  			want: "test-testname-testns",
    31  		},
    32  		{
    33  			name: "restricted characters",
    34  			k8sYaml: MinimalK8sYaml{
    35  				Kind: "test\\kind",
    36  				Metadata: MinimalK8sMetadata{
    37  					Name:      "test//name",
    38  					Namespace: "test::ns",
    39  				},
    40  			},
    41  			idx:  0,
    42  			want: "test-kind-test--name-test--ns",
    43  		},
    44  	}
    45  	for _, tt := range tests {
    46  		t.Run(tt.name, func(t *testing.T) {
    47  			if got := GenerateNameFromMetadata(tt.k8sYaml, tt.idx); got != tt.want {
    48  				t.Errorf("GenerateNameFromMetadata() = %v, want %v", got, tt.want)
    49  			}
    50  		})
    51  	}
    52  }