Handle HEAD request
continuous-integration/drone/push Build is passing Details

This commit is contained in:
Rob Watson 2022-06-07 05:04:33 +02:00
parent 45c5b2ac2a
commit bfb0c305b8
2 changed files with 15 additions and 7 deletions

View File

@ -10,7 +10,7 @@ var indexPage string
func New(matrixHostname, matrixBaseURL string) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
if r.Method != http.MethodGet {
if r.Method != http.MethodGet && r.Method != http.MethodHead {
w.WriteHeader(http.StatusMethodNotAllowed)
w.Write([]byte("405 method not allowed\n"))
return
@ -28,7 +28,9 @@ func New(matrixHostname, matrixBaseURL string) http.HandlerFunc {
case "/":
w.Header().Add("content-type", "text/html")
w.WriteHeader(http.StatusOK)
w.Write([]byte(indexPage))
if r.Method == http.MethodGet {
w.Write([]byte(indexPage))
}
default:
http.NotFound(w, r)
}

View File

@ -49,6 +49,14 @@ func TestHandler(t *testing.T) {
wantStatusCode: http.StatusOK,
wantBody: "Welcome to netflux.io",
},
{
name: "HEAD /",
method: http.MethodHead,
path: "/",
wantContentType: "text/html",
wantStatusCode: http.StatusOK,
wantBody: "",
},
{
name: "page not found",
method: http.MethodGet,
@ -81,11 +89,9 @@ func TestHandler(t *testing.T) {
assert.Equal(t, tc.wantContentType, resp.Header.Get("content-type"))
}
if tc.wantBody != "" {
respBody, err := ioutil.ReadAll(resp.Body)
require.NoError(t, err)
assert.Contains(t, string(respBody), tc.wantBody)
}
respBody, err := ioutil.ReadAll(resp.Body)
require.NoError(t, err)
assert.Contains(t, string(respBody), tc.wantBody)
})
}
}