added runner execution test

This commit is contained in:
Pedro Nasser
2016-07-31 22:37:48 -03:00
parent 5986777f2a
commit 21eb810cb6

View File

@@ -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))
}
}
}
}
}