github.com/jenkins-x/jx/v2@v2.1.155/pkg/kube/load_pod_templates_integration_test.go (about) 1 // +build integration 2 3 package kube_test 4 5 import ( 6 "io/ioutil" 7 "path" 8 "path/filepath" 9 "testing" 10 11 "github.com/jenkins-x/jx/v2/pkg/cmd/testhelpers" 12 13 "github.com/ghodss/yaml" 14 "github.com/jenkins-x/jx/v2/pkg/kube" 15 "github.com/stretchr/testify/assert" 16 "github.com/stretchr/testify/require" 17 corev1 "k8s.io/api/core/v1" 18 "k8s.io/apimachinery/pkg/runtime" 19 "k8s.io/client-go/kubernetes/fake" 20 ) 21 22 func TestLoadPodTemplatest(t *testing.T) { 23 originalKubeCfg, tempKubeCfg, err := testhelpers.CreateTestKubeConfigDir() 24 assert.NoError(t, err) 25 defer func() { 26 err := testhelpers.CleanupTestKubeConfigDir(originalKubeCfg, tempKubeCfg) 27 assert.NoError(t, err) 28 }() 29 testData := path.Join("test_data", "load_pod_templates") 30 assert.DirExists(t, testData) 31 32 files, err := ioutil.ReadDir(testData) 33 assert.NoError(t, err) 34 35 ns := "jx" 36 37 runtimeObjects := []runtime.Object{} 38 39 for _, f := range files { 40 if !f.IsDir() { 41 name := f.Name() 42 srcFile := filepath.Join(testData, name) 43 data, err := ioutil.ReadFile(srcFile) 44 require.NoError(t, err, "failed to read file %s", srcFile) 45 46 cm := &corev1.ConfigMap{} 47 err = yaml.Unmarshal(data, cm) 48 require.NoError(t, err, "failed to unmarshal file %s", srcFile) 49 50 require.NotEqual(t, "", cm.Name, "file %s contains a ConfigMap with no name", srcFile) 51 cm.Namespace = ns 52 runtimeObjects = append(runtimeObjects, cm) 53 } 54 } 55 56 kubeClient := fake.NewSimpleClientset(runtimeObjects...) 57 58 podTemplates, err := kube.LoadPodTemplates(kubeClient, ns) 59 require.NoError(t, err, "failed to load pod templates") 60 61 for _, name := range []string{"gradle", "maven"} { 62 assert.NotNil(t, podTemplates[name], "no pod template found for key %s", name) 63 } 64 65 assert.Equal(t, 2, len(podTemplates), "size of loaded pod template map") 66 }