github.com/argoproj/argo-events@v1.9.1/webhook/validator/eventbus_test.go (about) 1 package validator 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/assert" 7 8 eventbusv1alpha1 "github.com/argoproj/argo-events/pkg/apis/eventbus/v1alpha1" 9 ) 10 11 func TestValidateEventBusCreate(t *testing.T) { 12 eb := fakeEventBus() 13 v := NewEventBusValidator(fakeK8sClient, fakeEventBusClient, fakeEventSourceClient, fakeSensorClient, nil, eb) 14 r := v.ValidateCreate(contextWithLogger(t)) 15 assert.True(t, r.Allowed) 16 } 17 18 func TestValidateEventBusUpdate(t *testing.T) { 19 eb := fakeEventBus() 20 t.Run("test update auth strategy", func(t *testing.T) { 21 newEb := eb.DeepCopy() 22 newEb.Generation++ 23 newEb.Spec.NATS.Native.Auth = nil 24 v := NewEventBusValidator(fakeK8sClient, fakeEventBusClient, fakeEventSourceClient, fakeSensorClient, eb, newEb) 25 r := v.ValidateUpdate(contextWithLogger(t)) 26 assert.False(t, r.Allowed) 27 }) 28 29 t.Run("test update to exotic", func(t *testing.T) { 30 newEb := eb.DeepCopy() 31 newEb.Generation++ 32 newEb.Spec.NATS.Native = nil 33 cID := "test-id" 34 newEb.Spec.NATS.Exotic = &eventbusv1alpha1.NATSConfig{ 35 ClusterID: &cID, 36 URL: "nats://abc:1234", 37 } 38 v := NewEventBusValidator(fakeK8sClient, fakeEventBusClient, fakeEventSourceClient, fakeSensorClient, eb, newEb) 39 r := v.ValidateUpdate(contextWithLogger(t)) 40 assert.False(t, r.Allowed) 41 }) 42 43 t.Run("test update to native", func(t *testing.T) { 44 exoticEb := fakeExoticEventBus() 45 newEb := exoticEb.DeepCopy() 46 newEb.Generation++ 47 newEb.Spec.NATS.Exotic = nil 48 newEb.Spec.NATS.Native = eb.Spec.NATS.Native 49 v := NewEventBusValidator(fakeK8sClient, fakeEventBusClient, fakeEventSourceClient, fakeSensorClient, exoticEb, newEb) 50 r := v.ValidateUpdate(contextWithLogger(t)) 51 assert.False(t, r.Allowed) 52 }) 53 54 t.Run("test update native nats to exotic js", func(t *testing.T) { 55 newEb := eb.DeepCopy() 56 newEb.Generation++ 57 newEb.Spec.NATS = nil 58 newEb.Spec.JetStreamExotic = &eventbusv1alpha1.JetStreamConfig{ 59 URL: "nats://nats:4222", 60 } 61 v := NewEventBusValidator(fakeK8sClient, fakeEventBusClient, fakeEventSourceClient, fakeSensorClient, eb, newEb) 62 r := v.ValidateUpdate(contextWithLogger(t)) 63 assert.False(t, r.Allowed) 64 }) 65 }