github.com/argoproj/argo-events@v1.9.1/eventsources/persist/event_persist_test.go (about) 1 package persist 2 3 import ( 4 "context" 5 "testing" 6 7 "github.com/stretchr/testify/assert" 8 apierr "k8s.io/apimachinery/pkg/api/errors" 9 v1 "k8s.io/apimachinery/pkg/apis/meta/v1" 10 "k8s.io/client-go/kubernetes/fake" 11 12 "github.com/argoproj/argo-events/pkg/apis/eventsource/v1alpha1" 13 ) 14 15 func TestConfigMapPersist(t *testing.T) { 16 kubeClient := fake.NewSimpleClientset() 17 conf := &v1alpha1.ConfigMapPersistence{ 18 Name: "test-config", 19 CreateIfNotExist: true, 20 } 21 ctx := context.TODO() 22 cp, err := NewConfigMapPersist(ctx, kubeClient, conf, "default") 23 assert.NoError(t, err) 24 assert.True(t, cp.IsEnabled()) 25 cm, err := kubeClient.CoreV1().ConfigMaps("default").Get(ctx, "test-config", v1.GetOptions{}) 26 assert.NoError(t, err) 27 assert.NotNil(t, cm) 28 assert.Nil(t, cm.Data) 29 30 t.Run("SaveAndGetEvent", func(t *testing.T) { 31 event := Event{ 32 EventKey: "test.test", 33 EventPayload: "{test}", 34 } 35 err = cp.Save(&event) 36 assert.NoError(t, err) 37 38 event1, err := cp.Get("test.test") 39 assert.NoError(t, err) 40 assert.NotNil(t, event1) 41 assert.Equal(t, "test.test", event1.EventKey) 42 43 event1, err = cp.Get("test.test1") 44 assert.NoError(t, err) 45 assert.Nil(t, event1) 46 }) 47 48 t.Run("GetWithDeletedMap", func(t *testing.T) { 49 err = kubeClient.CoreV1().ConfigMaps("default").Delete(ctx, "test-config", v1.DeleteOptions{}) 50 assert.NoError(t, err) 51 event1, err := cp.Get("test.test") 52 assert.NoError(t, err) 53 assert.Nil(t, event1) 54 }) 55 56 t.Run("SaveAndGetEventWithDeletedMap", func(t *testing.T) { 57 err = kubeClient.CoreV1().ConfigMaps("default").Delete(ctx, "test-config", v1.DeleteOptions{}) 58 assert.True(t, apierr.IsNotFound(err)) 59 event := Event{ 60 EventKey: "test.test", 61 EventPayload: "{test}", 62 } 63 err = cp.Save(&event) 64 assert.NoError(t, err) 65 66 event1, err := cp.Get("test.test") 67 assert.NoError(t, err) 68 assert.NotNil(t, event1) 69 assert.Equal(t, "test.test", event1.EventKey) 70 71 event1, err = cp.Get("test.test1") 72 assert.NoError(t, err) 73 assert.Nil(t, event1) 74 }) 75 }