From 6b8df0e4fdc196b5d62d4f88ed0b51520a69d325 Mon Sep 17 00:00:00 2001 From: Karolis Rusenas Date: Mon, 12 Jun 2017 23:07:07 +0100 Subject: [PATCH] trigger test --- trigger/http/native_webhook_trigger_test.go | 52 +++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 trigger/http/native_webhook_trigger_test.go diff --git a/trigger/http/native_webhook_trigger_test.go b/trigger/http/native_webhook_trigger_test.go new file mode 100644 index 00000000..529c1270 --- /dev/null +++ b/trigger/http/native_webhook_trigger_test.go @@ -0,0 +1,52 @@ +package http + +import ( + "bytes" + "net/http" + + "github.com/rusenask/keel/provider" + "github.com/rusenask/keel/types" + + "net/http/httptest" + "testing" +) + +type fakeProvider struct { + submitted []types.Event +} + +func (p *fakeProvider) Submit(event types.Event) error { + p.submitted = append(p.submitted, event) + return nil +} + +func (p *fakeProvider) GetName() string { + return "fakeProvider" +} + +func TestNativeWebhookHandler(t *testing.T) { + + fp := &fakeProvider{} + providers := map[string]provider.Provider{ + fp.GetName(): fp, + } + srv := NewTriggerServer(&Opts{Providers: providers}) + srv.registerRoutes(srv.router) + + req, err := http.NewRequest("POST", "/v1/native", bytes.NewBuffer([]byte(`{"client":"test_client", "mountpoint": "xx"}`))) + if err != nil { + t.Fatalf("failed to create req: %s", err) + } + + //The response recorder used to record HTTP responses + rec := httptest.NewRecorder() + + srv.router.ServeHTTP(rec, req) + if rec.Code != 200 { + t.Errorf("unexpected status code: %d", rec.Code) + } + + if len(fp.submitted) != 1 { + t.Errorf("unexpected number of events submitted: %d", len(fp.submitted)) + } +}