github.com/kubeshop/testkube@v1.17.23/pkg/event/kind/webhook/loader_test.go (about) 1 package webhook 2 3 import ( 4 "testing" 5 6 "github.com/golang/mock/gomock" 7 "github.com/stretchr/testify/assert" 8 "go.uber.org/zap" 9 10 executorsv1 "github.com/kubeshop/testkube-operator/api/executor/v1" 11 templatesclientv1 "github.com/kubeshop/testkube-operator/pkg/client/templates/v1" 12 ) 13 14 type DummyLoader struct { 15 } 16 17 func (l DummyLoader) List(selector string) (*executorsv1.WebhookList, error) { 18 return &executorsv1.WebhookList{ 19 Items: []executorsv1.Webhook{ 20 {Spec: executorsv1.WebhookSpec{Uri: "http://localhost:3333", Events: []executorsv1.EventType{"start-test"}, PayloadObjectField: "text", PayloadTemplate: "{{ .Id }}", Headers: map[string]string{"Content-Type": "application/xml"}}}, 21 }, 22 }, nil 23 } 24 25 func TestWebhookLoader(t *testing.T) { 26 t.Parallel() 27 28 mockCtrl := gomock.NewController(t) 29 defer mockCtrl.Finish() 30 31 mockTemplatesClient := templatesclientv1.NewMockInterface(mockCtrl) 32 webhooksLoader := NewWebhookLoader(zap.NewNop().Sugar(), &DummyLoader{}, mockTemplatesClient) 33 listeners, err := webhooksLoader.Load() 34 35 assert.Equal(t, 1, len(listeners)) 36 assert.NoError(t, err) 37 }