github.com/jenkins-x/jx/v2@v2.1.155/pkg/config/helm_values_test.go (about) 1 // +build unit 2 3 package config_test 4 5 import ( 6 "testing" 7 8 "github.com/ghodss/yaml" 9 10 "io/ioutil" 11 12 "github.com/jenkins-x/jx/v2/pkg/config" 13 "github.com/stretchr/testify/assert" 14 ) 15 16 func TestEnvironmentExposecontrollerHelmValues(t *testing.T) { 17 t.Parallel() 18 19 testFile, err := ioutil.ReadFile("helm_values_test.yaml") 20 assert.NoError(t, err) 21 helmValuesFromFile := config.HelmValuesConfig{} 22 err = yaml.Unmarshal(testFile, &helmValuesFromFile) 23 assert.NoError(t, err) 24 25 a := make(map[string]string) 26 a["helm.sh/hook"] = "post-install,post-upgrade" 27 a["helm.sh/hook-delete-policy"] = "hook-succeeded" 28 29 values := config.HelmValuesConfig{ 30 ExposeController: &config.ExposeController{}, 31 } 32 33 values.ExposeController.Annotations = a 34 values.ExposeController.Config.Exposer = "Ingress" 35 values.ExposeController.Config.Domain = "jenkinsx.io" 36 values.ExposeController.Config.HTTP = "false" 37 values.ExposeController.Config.TLSAcme = "false" 38 assert.Equal(t, helmValuesFromFile, values, "expected exposecontroller helm values do not match") 39 } 40 41 func TestEnvironmentExposecontrollerHelmValuesWithUrlTemplate(t *testing.T) { 42 t.Parallel() 43 44 testFile, err := ioutil.ReadFile("helm_values_test_with_urltemplate.yaml") 45 assert.NoError(t, err) 46 helmValuesFromFile := config.HelmValuesConfig{} 47 err = yaml.Unmarshal(testFile, &helmValuesFromFile) 48 assert.NoError(t, err) 49 50 a := make(map[string]string) 51 a["helm.sh/hook"] = "post-install,post-upgrade" 52 a["helm.sh/hook-delete-policy"] = "hook-succeeded" 53 54 values := config.HelmValuesConfig{ 55 ExposeController: &config.ExposeController{}, 56 } 57 58 values.ExposeController.Annotations = a 59 values.ExposeController.Config.Exposer = "Ingress" 60 values.ExposeController.Config.Domain = "jenkinsx.io" 61 values.ExposeController.Config.HTTP = "false" 62 values.ExposeController.Config.TLSAcme = "false" 63 values.ExposeController.Config.URLTemplate = "{{.Service}}-{{.Namespace}}.{{.Domain}}" 64 assert.Equal(t, helmValuesFromFile, values, "expected exposecontroller helm values do not match") 65 } 66 67 func TestEnvironmentExposecontrollerHelmValuesWithIngressClass(t *testing.T) { 68 t.Parallel() 69 70 testFile, err := ioutil.ReadFile("helm_values_test_with_ingress_class.yaml") 71 assert.NoError(t, err) 72 helmValuesFromFile := config.HelmValuesConfig{} 73 err = yaml.Unmarshal(testFile, &helmValuesFromFile) 74 assert.NoError(t, err) 75 76 a := make(map[string]string) 77 a["helm.sh/hook"] = "post-install,post-upgrade" 78 a["helm.sh/hook-delete-policy"] = "hook-succeeded" 79 80 values := config.HelmValuesConfig{ 81 ExposeController: &config.ExposeController{}, 82 } 83 84 values.ExposeController.Annotations = a 85 values.ExposeController.Config.Exposer = "Ingress" 86 values.ExposeController.Config.Domain = "jenkinsx.io" 87 values.ExposeController.Config.HTTP = "false" 88 values.ExposeController.Config.TLSAcme = "false" 89 values.ExposeController.Config.IngressClass = "my-ingress-class" 90 assert.Equal(t, helmValuesFromFile, values, "expected exposecontroller helm values do not match") 91 }