(Feat): Initial Commit
Some checks failed
Build & Test / build-test (push) Has been cancelled
Build & Test / swagger-codegen-cli (push) Has been cancelled
CodeQL / Analyze (go) (push) Has been cancelled

This commit is contained in:
2026-07-03 19:41:31 +05:30
commit 7e940c83a7
461 changed files with 45002 additions and 0 deletions

View File

@@ -0,0 +1,57 @@
package middleware_test
import (
"net/http"
"net/http/httptest"
"testing"
"allaboutapps.dev/aw/go-starter/internal/api/middleware"
"allaboutapps.dev/aw/go-starter/internal/util"
"github.com/labstack/echo/v4"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func logTestHandler(c echo.Context) error {
log := util.LogFromEchoContext(c)
log.Info().Msg("I'm here!")
return nil
}
func TestLogWithCaller(t *testing.T) {
cfg := middleware.DefaultLoggerConfig
cfg.LogCaller = false
rec := httptest.NewRecorder()
req := httptest.NewRequest(http.MethodGet, "/", nil)
loggerMW := middleware.LoggerWithConfig(cfg, rec)
e := echo.New()
c := e.NewContext(req, rec)
middlewareChain := loggerMW(logTestHandler)
require.NoError(t, middlewareChain(c))
bufSize := 2000
loggedData := make([]byte, bufSize)
n, err := rec.Body.Read(loggedData)
require.NoError(t, err)
assert.Less(t, n, bufSize)
// LogCaller was set to false
assert.NotContains(t, string(loggedData), "caller")
// now log again with LogCaller set to true
cfg.LogCaller = true
loggerMW = middleware.LoggerWithConfig(cfg, rec)
rec.Flush()
middlewareChain = loggerMW(logTestHandler)
require.NoError(t, middlewareChain(c))
n, err = rec.Body.Read(loggedData)
require.NoError(t, err)
assert.Less(t, n, bufSize)
// logger_test.go:X should match the line where log.Info() is placed in the logTestHandler
assert.Contains(t, string(loggedData[:n]), `"caller":"/app/internal/api/middleware/logger_test.go:17"`)
}