From 0b9976424c737e03a580f31255cc40bb118ee276 Mon Sep 17 00:00:00 2001 From: Martin Polden Date: Sat, 28 Dec 2019 19:56:44 +0100 Subject: Extract request router --- http/http_test.go | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) (limited to 'http/http_test.go') diff --git a/http/http_test.go b/http/http_test.go index e964e3b..bdeb213 100644 --- a/http/http_test.go +++ b/http/http_test.go @@ -39,17 +39,17 @@ func testServer() (*httptest.Server, *Server) { return httptest.NewServer(server.handler()), &server } -func httpGet(url string) (string, int, error) { +func httpGet(url string) (*http.Response, string, error) { res, err := http.Get(url) if err != nil { - return "", 0, err + return nil, "", err } defer res.Body.Close() data, err := ioutil.ReadAll(res.Body) if err != nil { - return "", 0, err + return nil, "", err } - return string(data), res.StatusCode, nil + return res, string(data), nil } func TestRequests(t *testing.T) { @@ -84,23 +84,27 @@ func TestRequests(t *testing.T) { for i, tt := range tests { var ( - data string - status int - err error + resp *http.Response + data string + err error ) switch tt.method { case http.MethodGet: - data, status, err = httpGet(httpSrv.URL + tt.url) + resp, data, err = httpGet(httpSrv.URL + tt.url) default: t.Fatalf("#%d: invalid method: %s", i, tt.method) } if err != nil { t.Fatal(err) } - if got := status; status != tt.status { + if got := resp.StatusCode; got != tt.status { t.Errorf("#%d: %s %s returned status %d, want %d", i, tt.method, tt.url, got, tt.status) } + if got, want := resp.Header.Get("Content-Type"), "application/json"; got != want { + t.Errorf("#%d: got Content-Type %q, want %q", i, got, want) + } + got := string(data) want := regexp.QuoteMeta(tt.response) want = strings.ReplaceAll(want, "RFC3339", `\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z`) -- cgit v1.2.3