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 }