github.com/kubeshop/testkube@v1.17.23/internal/app/api/v1/events_test.go (about) 1 package v1 2 3 import ( 4 "net/http" 5 "net/http/httptest" 6 "strings" 7 "testing" 8 9 "github.com/gofiber/fiber/v2" 10 11 "github.com/kubeshop/testkube/pkg/log" 12 "github.com/kubeshop/testkube/pkg/server" 13 14 "github.com/stretchr/testify/assert" 15 ) 16 17 func TestTestkubeAPI_FluxEventHandler(t *testing.T) { 18 // bootstrap api server fiber app 19 app := fiber.New() 20 s := &TestkubeAPI{ 21 HTTPServer: server.HTTPServer{ 22 Mux: app, 23 Log: log.DefaultLogger, 24 }, 25 } 26 app.Post("/events/flux", s.FluxEventHandler()) 27 28 t.Run("test flux event", func(t *testing.T) { 29 // given 30 eventString := `{"involvedObject":{"kind":"Deployment","namespace":"my-ns","name":"my-deployment"},"severity":"info","timestamp":"2022-06-27T08:42:25Z","message":"some message","reason":"change","reportingController":"fluxcd"}` 31 req := httptest.NewRequest("POST", "/events/flux", strings.NewReader(eventString)) 32 33 // when 34 resp, err := app.Test(req) 35 36 // then 37 assert.NoError(t, err) 38 assert.Equal(t, http.StatusOK, resp.StatusCode) 39 }) 40 41 }