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  }