github.com/jaylevin/jenkins-library@v1.230.4/pkg/kubernetes/utils_test.go (about) 1 package kubernetes 2 3 import ( 4 "errors" 5 "testing" 6 7 "github.com/stretchr/testify/assert" 8 ) 9 10 func TestRunUtils(t *testing.T) { 11 t.Run("Get container info", func(t *testing.T) { 12 testTable := []struct { 13 chartYamlFile string 14 dataChartYaml string 15 expectedChartName string 16 expectedPackageVersion string 17 expectedError error 18 setFileReadError bool 19 }{ 20 { 21 chartYamlFile: "path/to/Chart.yaml", 22 dataChartYaml: "name: nginx-testChart\nversion: 1.3.5", 23 expectedChartName: "nginx-testChart", 24 expectedPackageVersion: "1.3.5", 25 expectedError: nil, 26 setFileReadError: false, 27 }, 28 { 29 chartYamlFile: "path/to/Chart.yaml", 30 dataChartYaml: "name: nginx-testChart\nversion: 1.3.5", 31 expectedChartName: "nginx-testChart", 32 expectedPackageVersion: "1.3.5", 33 expectedError: errors.New("file couldn't read"), 34 setFileReadError: true, 35 }, 36 { 37 chartYamlFile: "path/to/Chart.yaml", 38 dataChartYaml: "version: 1.3.5", 39 expectedChartName: "nginx-testChart", 40 expectedPackageVersion: "1.3.5", 41 expectedError: errors.New("name not found in chart yaml file (or wrong type)"), 42 setFileReadError: false, 43 }, 44 { 45 chartYamlFile: "path/to/Chart.yaml", 46 dataChartYaml: "name: nginx-testChart", 47 expectedChartName: "nginx-testChart", 48 expectedPackageVersion: "1.3.5", 49 expectedError: errors.New("version not found in chart yaml file (or wrong type)"), 50 setFileReadError: false, 51 }, 52 { 53 chartYamlFile: "path/to/Chart.yaml", 54 dataChartYaml: "name=nginx-testChart", 55 expectedChartName: "nginx-testChart", 56 expectedPackageVersion: "1.3.5", 57 expectedError: errors.New("failed unmarshal"), 58 setFileReadError: false, 59 }, 60 } 61 62 for _, testCase := range testTable { 63 utils := newHelmMockUtilsBundle() 64 utils.AddFile(testCase.chartYamlFile, []byte(testCase.dataChartYaml)) 65 if testCase.setFileReadError { 66 utils.FileReadErrors = map[string]error{testCase.chartYamlFile: testCase.expectedError} 67 } 68 nameChart, packageVersion, err := GetChartInfo(testCase.chartYamlFile, utils) 69 if testCase.expectedError != nil { 70 assert.Error(t, err) 71 assert.Contains(t, err.Error(), testCase.expectedError.Error()) 72 } else { 73 assert.NoError(t, err) 74 assert.Equal(t, testCase.expectedChartName, nameChart) 75 assert.Equal(t, testCase.expectedPackageVersion, packageVersion) 76 } 77 78 } 79 }) 80 }