From 21eb810cb6b5798d7eb3b7a1b60314fbeb3f24c3 Mon Sep 17 00:00:00 2001 From: Pedro Nasser Date: Sun, 31 Jul 2016 22:37:48 -0300 Subject: [PATCH] added runner execution test --- api/server/router/runner_test.go | 41 ++++++++++++++++++++++++++++++-- 1 file changed, 39 insertions(+), 2 deletions(-) diff --git a/api/server/router/runner_test.go b/api/server/router/runner_test.go index 98d0817bd..a06d74bfd 100644 --- a/api/server/router/runner_test.go +++ b/api/server/router/runner_test.go @@ -7,10 +7,11 @@ import ( "testing" "github.com/iron-io/functions/api/models" + "github.com/iron-io/functions/api/server/datastore" ) func TestRouteRunnerGet(t *testing.T) { - router := testRouter() + router := testRouter(&datastore.Mock{}, &models.Config{}) for i, test := range []struct { path string @@ -42,7 +43,7 @@ func TestRouteRunnerGet(t *testing.T) { } func TestRouteRunnerPost(t *testing.T) { - router := testRouter() + router := testRouter(&datastore.Mock{}, &models.Config{}) for i, test := range []struct { path string @@ -73,3 +74,39 @@ func TestRouteRunnerPost(t *testing.T) { } } } + +func TestRouteRunnerExecution(t *testing.T) { + router := testRouter(&datastore.Mock{ + FakeRoutes: []*models.Route{ + {Path: "/myroute", Image: "iron/hello", Headers: map[string][]string{"X-Function": []string{"Test"}}}, + {Path: "/myerror", Image: "iron/error", Headers: map[string][]string{"X-Function": []string{"Test"}}}, + }, + }, &models.Config{}) + + for i, test := range []struct { + path string + body string + expectedCode int + expectedHeaders map[string][]string + }{ + {"/r/myapp/myroute", ``, http.StatusOK, map[string][]string{"X-Function": []string{"Test"}}}, + {"/r/myapp/myerror", ``, http.StatusInternalServerError, map[string][]string{"X-Function": []string{"Test"}}}, + } { + body := bytes.NewBuffer([]byte(test.body)) + _, rec := routerRequest(t, router, "GET", test.path, body) + + if rec.Code != test.expectedCode { + t.Errorf("Test %d: Expected status code to be %d but was %d", + i, test.expectedCode, rec.Code) + } + + if test.expectedHeaders != nil { + for name, header := range test.expectedHeaders { + if header[0] != rec.Header().Get(name) { + t.Errorf("Test %d: Expected header `%s` to be %s but was %s", + i, name, header[0], rec.Header().Get(name)) + } + } + } + } +}