github.com/kubeshop/testkube@v1.17.23/pkg/imageinspector/secretfetcher_test.go (about) 1 package imageinspector 2 3 import ( 4 "context" 5 "testing" 6 7 "github.com/golang/mock/gomock" 8 "github.com/stretchr/testify/assert" 9 corev1 "k8s.io/api/core/v1" 10 k8serrors "k8s.io/apimachinery/pkg/api/errors" 11 "k8s.io/apimachinery/pkg/runtime/schema" 12 13 "github.com/kubeshop/testkube/pkg/secret" 14 ) 15 16 func TestSecretFetcherGetExisting(t *testing.T) { 17 ctrl := gomock.NewController(t) 18 client := secret.NewMockInterface(ctrl) 19 fetcher := NewSecretFetcher(client) 20 21 expected := corev1.Secret{ 22 StringData: map[string]string{"key": "value"}, 23 } 24 client.EXPECT().GetObject("dummy").Return(&expected, nil) 25 26 result, err := fetcher.Get(context.Background(), "dummy") 27 assert.NoError(t, err) 28 assert.Equal(t, &expected, result) 29 } 30 31 func TestSecretFetcherGetCache(t *testing.T) { 32 ctrl := gomock.NewController(t) 33 client := secret.NewMockInterface(ctrl) 34 fetcher := NewSecretFetcher(client) 35 36 expected := corev1.Secret{ 37 StringData: map[string]string{"key": "value"}, 38 } 39 client.EXPECT().GetObject("dummy").Return(&expected, nil) 40 41 result1, err1 := fetcher.Get(context.Background(), "dummy") 42 result2, err2 := fetcher.Get(context.Background(), "dummy") 43 assert.NoError(t, err1) 44 assert.NoError(t, err2) 45 assert.Equal(t, &expected, result1) 46 assert.Equal(t, &expected, result2) 47 } 48 49 func TestSecretFetcherGetError(t *testing.T) { 50 ctrl := gomock.NewController(t) 51 client := secret.NewMockInterface(ctrl) 52 fetcher := NewSecretFetcher(client) 53 54 client.EXPECT().GetObject("dummy").Return(nil, k8serrors.NewNotFound(schema.GroupResource{}, "dummy")) 55 client.EXPECT().GetObject("dummy").Return(nil, k8serrors.NewNotFound(schema.GroupResource{}, "dummy")) 56 57 result1, err1 := fetcher.Get(context.Background(), "dummy") 58 result2, err2 := fetcher.Get(context.Background(), "dummy") 59 var noSecret *corev1.Secret 60 assert.Error(t, err1) 61 assert.Error(t, err2) 62 assert.True(t, k8serrors.IsNotFound(err1)) 63 assert.True(t, k8serrors.IsNotFound(err2)) 64 assert.Equal(t, noSecret, result1) 65 assert.Equal(t, noSecret, result2) 66 }