From 0735cd9f25676881237bcdfe9b3d780a6c30f8a2 Mon Sep 17 00:00:00 2001 From: Alex Collins Date: Wed, 20 Oct 2021 13:23:03 -0700 Subject: [PATCH] feat(server)!: Sync dispatch of webhook events by default. Fixes #6981 and #6732 Signed-off-by: Alex Collins --- server/event/event_server_test.go | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/server/event/event_server_test.go b/server/event/event_server_test.go index 401f5ea5014a..b49aeb66d957 100644 --- a/server/event/event_server_test.go +++ b/server/event/event_server_test.go @@ -18,20 +18,22 @@ import ( func TestController(t *testing.T) { clientset := fake.NewSimpleClientset() + ctx := context.WithValue(context.TODO(), auth.WfKey, clientset) newController := func(asyncDispatch bool) *Controller { return NewController(instanceid.NewService("my-instanceid"), events.NewEventRecorderManager(fakekube.NewSimpleClientset()), 1, 1, asyncDispatch) } + e1 := &eventpkg.EventRequest{Namespace: "my-ns", Payload: &wfv1.Item{}} + e2 := &eventpkg.EventRequest{} t.Run("Async", func(t *testing.T) { s := newController(true) - ctx := context.WithValue(context.TODO(), auth.WfKey, clientset) - _, err := s.ReceiveEvent(ctx, &eventpkg.EventRequest{Namespace: "my-ns", Payload: &wfv1.Item{}}) + _, err := s.ReceiveEvent(ctx, e1) assert.NoError(t, err) assert.Len(t, s.operationQueue, 1, "one event to be processed") - _, err = s.ReceiveEvent(ctx, &eventpkg.EventRequest{}) + _, err = s.ReceiveEvent(ctx, e2) assert.EqualError(t, err, "operation queue full", "backpressure when queue is full") stopCh := make(chan struct{}, 1) @@ -39,22 +41,21 @@ func TestController(t *testing.T) { s.Run(stopCh) assert.Len(t, s.operationQueue, 0, "all events were processed") + }) t.Run("Sync", func(t *testing.T) { s := newController(false) - ctx := context.WithValue(context.TODO(), auth.WfKey, clientset) - _, err := s.ReceiveEvent(ctx, &eventpkg.EventRequest{Namespace: "my-ns", Payload: &wfv1.Item{}}) + _, err := s.ReceiveEvent(ctx, e1) assert.NoError(t, err) - _, err = s.ReceiveEvent(ctx, &eventpkg.EventRequest{}) + _, err = s.ReceiveEvent(ctx, e2) assert.NoError(t, err) }) t.Run("SyncError", func(t *testing.T) { s := newController(false) - ctx := context.WithValue(context.TODO(), auth.WfKey, clientset) _, err := s.ReceiveEvent(ctx, &eventpkg.EventRequest{Namespace: "my-ns", Payload: &wfv1.Item{Value: json.RawMessage("!")}}) assert.EqualError(t, err, "failed to create workflow template expression environment: json: error calling MarshalJSON for type *v1alpha1.Item: invalid character '!' looking for beginning of value") })