github.com/Datadog/cnab-go@v0.3.3-beta1.0.20191007143216-bba4b7e723d0/driver/kubernetes/kubernetes_test.go (about) 1 package kubernetes 2 3 import ( 4 "os" 5 "testing" 6 7 "github.com/deislabs/cnab-go/bundle" 8 "github.com/deislabs/cnab-go/driver" 9 "github.com/stretchr/testify/assert" 10 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" 11 "k8s.io/client-go/kubernetes/fake" 12 ) 13 14 func TestDriver_Run(t *testing.T) { 15 client := fake.NewSimpleClientset() 16 namespace := "default" 17 k := Driver{ 18 Namespace: namespace, 19 jobs: client.BatchV1().Jobs(namespace), 20 secrets: client.CoreV1().Secrets(namespace), 21 pods: client.CoreV1().Pods(namespace), 22 SkipCleanup: true, 23 skipJobStatusCheck: true, 24 } 25 op := driver.Operation{ 26 Action: "install", 27 Out: os.Stdout, 28 Environment: map[string]string{ 29 "foo": "bar", 30 }, 31 } 32 33 _, err := k.Run(&op) 34 assert.NoError(t, err) 35 36 jobList, _ := k.jobs.List(metav1.ListOptions{}) 37 assert.Equal(t, len(jobList.Items), 1, "expected one job to be created") 38 39 secretList, _ := k.secrets.List(metav1.ListOptions{}) 40 assert.Equal(t, len(secretList.Items), 1, "expected one secret to be created") 41 } 42 43 func TestImageWithDigest(t *testing.T) { 44 testCases := map[string]bundle.InvocationImage{ 45 "foo": { 46 BaseImage: bundle.BaseImage{ 47 Image: "foo", 48 }, 49 }, 50 "foo/bar": { 51 BaseImage: bundle.BaseImage{ 52 Image: "foo/bar", 53 }, 54 }, 55 "foo/bar:baz": { 56 BaseImage: bundle.BaseImage{ 57 Image: "foo/bar:baz", 58 }, 59 }, 60 "foo/bar:baz@sha:a1b2c3": { 61 BaseImage: bundle.BaseImage{ 62 Image: "foo/bar:baz", 63 Digest: "sha:a1b2c3", 64 }, 65 }, 66 "foo/bar@sha:a1b2c3": { 67 BaseImage: bundle.BaseImage{ 68 Image: "foo/bar", 69 Digest: "sha:a1b2c3", 70 }, 71 }, 72 } 73 74 for expectedImageRef, img := range testCases { 75 t.Run(expectedImageRef, func(t *testing.T) { 76 assert.Equal(t, expectedImageRef, imageWithDigest(img)) 77 }) 78 } 79 }