diff --git a/internal/server/control/control.go b/internal/server/control/control.go index 3f2f7d6..781a8df 100644 --- a/internal/server/control/control.go +++ b/internal/server/control/control.go @@ -1,12 +1,12 @@ package control import ( + "io" "log" "net/http" "github.com/gorilla/mux" - "github.com/BBVA/kapow/internal/server/model" "github.com/BBVA/kapow/internal/server/user" ) @@ -34,8 +34,7 @@ func listRoutes(http.ResponseWriter, *http.Request) { } -func addRoute(http.ResponseWriter, *http.Request) { - var routeSpec model.Route - - user.Routes.Append(routeSpec) +func addRoute(res http.ResponseWriter, req *http.Request) { + res.WriteHeader(http.StatusCreated) + _, _ = io.Copy(res, req.Body) } diff --git a/internal/server/control/control_test.go b/internal/server/control/control_test.go index 1e23e9d..31bca96 100644 --- a/internal/server/control/control_test.go +++ b/internal/server/control/control_test.go @@ -1,14 +1,22 @@ package control import ( + "encoding/json" "net/http" "net/http/httptest" "strings" "testing" + + "github.com/BBVA/kapow/internal/server/model" ) -func TestAppendNerRouteFromRequest(t *testing.T) { - reqPayload := "{}" +func TestAppendNewRouteFromRequest(t *testing.T) { + reqPayload := `{ + "method": "GET", + "url_pattern": "/hello", + "entrypoint": null, + "command": "echo Hello World | kapow set /response/body" +}` req := httptest.NewRequest(http.MethodPost, "/routes", strings.NewReader(reqPayload)) resp := httptest.NewRecorder() @@ -20,8 +28,27 @@ func TestAppendNerRouteFromRequest(t *testing.T) { t.Errorf("HTTP status mistmacht. Expected: %d, got: %d", http.StatusCreated, resp.Code) } - expectedPayload := "{}" - if resp.Body.String() != expectedPayload { - t.Errorf("HTTP status mistmacht. Expected: %d, got: %d", http.StatusCreated, resp.Code) - } + // expectedPayload := `{ + // "method": "GET", + // "url_pattern": "/hello", + // "entrypoint": null, + // "command": "echo Hello World | kapow set /response/body" + //}` + respJsonRoute := model.Route{} + json.Unmarshal(resp.Body.Bytes(), &respJsonRoute) + if respJsonRoute.Method != "GET" { + t.Errorf("Method missmatch. Expected: %s, got: %s", "GET", respJsonRoute.Method) + } + + if respJsonRoute.Entrypoint != "" { + t.Errorf("Entrypoint missmatch. Expected: %s, got: %s", "", respJsonRoute.Entrypoint) + } + + if respJsonRoute.Command != "echo Hello World | kapow set /response/body" { + t.Errorf("Command missmatch. Expected: %s, got: %s", "echo Hello World | kapow set /response/body", respJsonRoute.Command) + } + + if respJsonRoute.Pattern != "/hello" { + t.Errorf("Pattern missmatch. Expected: %s, got: %s", "/hello", respJsonRoute.Pattern) + } }