Valentin Brandl
12fbb06666
All checks were successful
golangci-lint / lint (push) Successful in 19m8s
38 lines
794 B
Go
38 lines
794 B
Go
package handlers_test
|
|
|
|
import (
|
|
"io"
|
|
"net/http"
|
|
"net/http/httptest"
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
func TestNotFound(t *testing.T) {
|
|
app := PrepareApplication()
|
|
|
|
req := httptest.NewRequest(http.MethodGet, "/some/invalid/path", nil)
|
|
w := httptest.NewRecorder()
|
|
|
|
app.Handler().ServeHTTP(w, req)
|
|
res := w.Result()
|
|
defer res.Body.Close()
|
|
|
|
if res.StatusCode != 404 {
|
|
t.Errorf("expected status to be 404, got %d", res.StatusCode)
|
|
}
|
|
|
|
reqId := res.Header.Get("x-request-id")
|
|
if reqId == "" {
|
|
t.Errorf("expected `x-request-id` header to be present, got %s", reqId)
|
|
}
|
|
|
|
data, err := io.ReadAll(res.Body)
|
|
if err != nil {
|
|
t.Errorf("expected error to be nil, got %v", err)
|
|
}
|
|
if !strings.Contains(string(data), reqId) {
|
|
t.Errorf("expected body to contain request ID but it does not")
|
|
}
|
|
}
|