github.com/argoproj/argo-events@v1.9.1/webhook/validator/sensor_test.go (about) 1 package validator 2 3 import ( 4 "context" 5 "fmt" 6 "os" 7 "testing" 8 9 "github.com/ghodss/yaml" 10 "github.com/stretchr/testify/assert" 11 corev1 "k8s.io/api/core/v1" 12 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" 13 14 "github.com/argoproj/argo-events/common" 15 eventbusv1alpha1 "github.com/argoproj/argo-events/pkg/apis/eventbus/v1alpha1" 16 "github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1" 17 ) 18 19 var ( 20 fakeBus = &eventbusv1alpha1.EventBus{ 21 TypeMeta: metav1.TypeMeta{ 22 APIVersion: eventbusv1alpha1.SchemeGroupVersion.String(), 23 Kind: "EventBus", 24 }, 25 ObjectMeta: metav1.ObjectMeta{ 26 Namespace: testNamespace, 27 Name: common.DefaultEventBusName, 28 }, 29 Spec: eventbusv1alpha1.EventBusSpec{ 30 NATS: &eventbusv1alpha1.NATSBus{ 31 Native: &eventbusv1alpha1.NativeStrategy{ 32 Auth: &eventbusv1alpha1.AuthStrategyToken, 33 }, 34 }, 35 }, 36 Status: eventbusv1alpha1.EventBusStatus{ 37 Config: eventbusv1alpha1.BusConfig{ 38 NATS: &eventbusv1alpha1.NATSConfig{ 39 URL: "nats://xxxx", 40 Auth: &eventbusv1alpha1.AuthStrategyToken, 41 AccessSecret: &corev1.SecretKeySelector{ 42 Key: "test-key", 43 LocalObjectReference: corev1.LocalObjectReference{ 44 Name: "test-name", 45 }, 46 }, 47 }, 48 }, 49 }, 50 } 51 ) 52 53 func TestValidateSensor(t *testing.T) { 54 dir := "../../examples/sensors" 55 dirEntries, err := os.ReadDir(dir) 56 assert.Nil(t, err) 57 58 testBus := fakeBus.DeepCopy() 59 testBus.Status.MarkDeployed("test", "test") 60 testBus.Status.MarkConfigured() 61 _, err = fakeEventBusClient.ArgoprojV1alpha1().EventBus(testNamespace).Create(context.TODO(), testBus, metav1.CreateOptions{}) 62 assert.Nil(t, err) 63 64 for _, entry := range dirEntries { 65 if entry.IsDir() { 66 continue 67 } 68 content, err := os.ReadFile(fmt.Sprintf("%s/%s", dir, entry.Name())) 69 assert.Nil(t, err) 70 var sensor *v1alpha1.Sensor 71 err = yaml.Unmarshal(content, &sensor) 72 assert.Nil(t, err) 73 sensor.Namespace = testNamespace 74 newSensor := sensor.DeepCopy() 75 newSensor.Generation++ 76 v := NewSensorValidator(fakeK8sClient, fakeEventBusClient, fakeEventSourceClient, fakeSensorClient, sensor, newSensor) 77 r := v.ValidateCreate(contextWithLogger(t)) 78 assert.True(t, r.Allowed) 79 r = v.ValidateUpdate(contextWithLogger(t)) 80 assert.True(t, r.Allowed) 81 } 82 }