From 5e336d4d4a0c542bb234aa64507b793fedae176b Mon Sep 17 00:00:00 2001 From: sirkrypt0 <22522058+sirkrypt0@users.noreply.github.com> Date: Thu, 29 Apr 2021 11:36:14 +0200 Subject: [PATCH] Add tests for logging middleware --- logging/logging_test.go | 48 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 logging/logging_test.go diff --git a/logging/logging_test.go b/logging/logging_test.go new file mode 100644 index 0000000..a5f032e --- /dev/null +++ b/logging/logging_test.go @@ -0,0 +1,48 @@ +package logging + +import ( + "github.com/sirupsen/logrus" + "github.com/sirupsen/logrus/hooks/test" + "github.com/stretchr/testify/assert" + "net/http" + "net/http/httptest" + "testing" +) + +func mockHttpStatusHandler(status int) http.Handler { + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.WriteHeader(status) + }) +} + +func TestHTTPMiddlewareWarnsWhenInternalServerError(t *testing.T) { + var hook *test.Hook + log, hook = test.NewNullLogger() + InitializeLogging(logrus.DebugLevel.String()) + + request, err := http.NewRequest(http.MethodGet, "/", nil) + if err != nil { + t.Fatal(err) + } + recorder := httptest.NewRecorder() + HTTPLoggingMiddleware(mockHttpStatusHandler(500)).ServeHTTP(recorder, request) + + assert.Equal(t, 1, len(hook.Entries)) + assert.Equal(t, logrus.WarnLevel, hook.LastEntry().Level) +} + +func TestHTTPMiddlewareDebugsWhenStatusOK(t *testing.T) { + var hook *test.Hook + log, hook = test.NewNullLogger() + InitializeLogging(logrus.DebugLevel.String()) + + request, err := http.NewRequest(http.MethodGet, "/", nil) + if err != nil { + t.Fatal(err) + } + recorder := httptest.NewRecorder() + HTTPLoggingMiddleware(mockHttpStatusHandler(200)).ServeHTTP(recorder, request) + + assert.Equal(t, 1, len(hook.Entries)) + assert.Equal(t, logrus.DebugLevel, hook.LastEntry().Level) +}