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  }