From 1eb88e794e7b481eeaf8a1200097252a0b7cb9ee Mon Sep 17 00:00:00 2001 From: Pedro Nasser Date: Sun, 7 Aug 2016 16:45:34 -0300 Subject: [PATCH] fix routes router and tests --- api/server/routes_test.go | 23 ++++++++++------------- api/server/routes_update.go | 1 - api/server/server.go | 6 +++--- 3 files changed, 13 insertions(+), 17 deletions(-) diff --git a/api/server/routes_test.go b/api/server/routes_test.go index c0541141b..e584af9c5 100644 --- a/api/server/routes_test.go +++ b/api/server/routes_test.go @@ -23,12 +23,11 @@ func TestRouteCreate(t *testing.T) { // errors {"/v1/apps/a/routes", ``, http.StatusBadRequest, models.ErrInvalidJSON}, {"/v1/apps/a/routes", `{ }`, http.StatusBadRequest, models.ErrRoutesMissingNew}, - {"/v1/apps/a/routes", `{ "name": "Test" }`, http.StatusBadRequest, models.ErrRoutesMissingNew}, - {"/v1/apps/a/routes", `{ "route": { "name": "" } }`, http.StatusInternalServerError, models.ErrRoutesValidationMissingName}, - {"/v1/apps/a/routes", `{ "route": { "name": "myroute" } }`, http.StatusInternalServerError, models.ErrRoutesValidationMissingImage}, - {"/v1/apps/a/routes", `{ "route": { "name": "myroute", "image": "iron/hello" } }`, http.StatusInternalServerError, models.ErrRoutesValidationMissingPath}, - {"/v1/apps/a/routes", `{ "route": { "name": "myroute", "image": "iron/hello", "path": "myroute" } }`, http.StatusInternalServerError, models.ErrRoutesValidationInvalidPath}, - {"/v1/apps/$/routes", `{ "route": { "name": "myroute", "image": "iron/hello", "path": "/myroute" } }`, http.StatusInternalServerError, models.ErrAppsValidationInvalidName}, + {"/v1/apps/a/routes", `{ "path": "/myroute" }`, http.StatusBadRequest, models.ErrRoutesMissingNew}, + {"/v1/apps/a/routes", `{ "route": { } }`, http.StatusInternalServerError, models.ErrRoutesValidationMissingImage}, + {"/v1/apps/a/routes", `{ "route": { "image": "iron/hello" } }`, http.StatusInternalServerError, models.ErrRoutesValidationMissingPath}, + {"/v1/apps/a/routes", `{ "route": { "image": "iron/hello", "path": "myroute" } }`, http.StatusInternalServerError, models.ErrRoutesValidationInvalidPath}, + {"/v1/apps/$/routes", `{ "route": { "image": "iron/hello", "path": "/myroute" } }`, http.StatusInternalServerError, models.ErrAppsValidationInvalidName}, // success {"/v1/apps/a/routes", `{ "route": { "name": "myroute", "image": "iron/hello", "path": "/myroute" } }`, http.StatusOK, nil}, @@ -62,7 +61,7 @@ func TestRouteDelete(t *testing.T) { expectedCode int expectedError error }{ - {"/v1/apps/a/routes", "", http.StatusNotFound, nil}, + {"/v1/apps/a/routes", "", http.StatusTemporaryRedirect, nil}, {"/v1/apps/a/routes/myroute", "", http.StatusOK, nil}, } { _, rec := routerRequest(t, router, "DELETE", test.path, nil) @@ -154,14 +153,12 @@ func TestRouteUpdate(t *testing.T) { expectedError error }{ // errors - {"/v1/apps/a/routes/myroute", ``, http.StatusBadRequest, models.ErrInvalidJSON}, - {"/v1/apps/a/routes/myroute", `{}`, http.StatusBadRequest, models.ErrRoutesMissingNew}, - {"/v1/apps/a/routes/myroute", `{ "route": {} }`, http.StatusInternalServerError, models.ErrRoutesValidationMissingImage}, - {"/v1/apps/a/routes/myroute", `{ "route": { "image": "iron/hello" } }`, http.StatusInternalServerError, models.ErrRoutesValidationMissingPath}, - {"/v1/apps/a/routes/myroute", `{ "route": { "image": "iron/hello", "path": "myroute" } }`, http.StatusInternalServerError, models.ErrRoutesValidationInvalidPath}, + {"/v1/apps/a/routes/myroute/do", ``, http.StatusBadRequest, models.ErrInvalidJSON}, + {"/v1/apps/a/routes/myroute/do", `{}`, http.StatusBadRequest, models.ErrRoutesMissingNew}, + {"/v1/apps/a/routes/myroute/do", `{ "route": {} }`, http.StatusInternalServerError, models.ErrRoutesValidationMissingImage}, // success - {"/v1/apps/a/routes/myroute", `{ "route": { "image": "iron/hello", "path": "/myroute" } }`, http.StatusOK, nil}, + {"/v1/apps/a/routes/myroute/do", `{ "route": { "image": "iron/hello", "path": "/myroute" } }`, http.StatusOK, nil}, } { body := bytes.NewBuffer([]byte(test.body)) _, rec := routerRequest(t, router, "PUT", test.path, body) diff --git a/api/server/routes_update.go b/api/server/routes_update.go index 723bb8b48..549882e65 100644 --- a/api/server/routes_update.go +++ b/api/server/routes_update.go @@ -27,7 +27,6 @@ func handleRouteUpdate(c *gin.Context) { } wroute.Route.AppName = c.Param("app") - log.Infoln("Route: ", c.Param("route")) wroute.Route.Path = c.Param("route") if err := wroute.Validate(); err != nil { diff --git a/api/server/server.go b/api/server/server.go index bf4bd4cc7..008c6e692 100644 --- a/api/server/server.go +++ b/api/server/server.go @@ -62,9 +62,9 @@ func bindHandlers(engine *gin.Engine) { { apps.GET("/routes", handleRouteList) apps.POST("/routes", handleRouteCreate) - apps.GET("/routes/:route", handleRouteGet) - apps.PUT("/routes/:route", handleRouteUpdate) - apps.DELETE("/routes/:route", handleRouteDelete) + apps.GET("/routes/*route", handleRouteGet) + apps.PUT("/routes/*route", handleRouteUpdate) + apps.DELETE("/routes/*route", handleRouteDelete) } }