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  }