feat: complete SOP version management
This commit is contained in:
32
internal/middleware/http_test.go
Normal file
32
internal/middleware/http_test.go
Normal file
@@ -0,0 +1,32 @@
|
||||
package middleware
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
"testing"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"go.uber.org/zap"
|
||||
"go.uber.org/zap/zapcore"
|
||||
"go.uber.org/zap/zaptest/observer"
|
||||
)
|
||||
|
||||
func TestRequestLoggerUsesStatusLevelAndDurationMilliseconds(t *testing.T) {
|
||||
gin.SetMode(gin.TestMode)
|
||||
core, logs := observer.New(zapcore.DebugLevel)
|
||||
router := gin.New()
|
||||
router.Use(RequestLogger(zap.New(core)))
|
||||
router.GET("/bad", func(c *gin.Context) { c.Status(http.StatusBadRequest) })
|
||||
|
||||
request := httptest.NewRequest(http.MethodGet, "/bad", nil)
|
||||
response := httptest.NewRecorder()
|
||||
router.ServeHTTP(response, request)
|
||||
|
||||
entries := logs.All()
|
||||
if len(entries) != 1 || entries[0].Level != zapcore.WarnLevel {
|
||||
t.Fatalf("log entries = %+v, want one warning", entries)
|
||||
}
|
||||
if _, exists := entries[0].ContextMap()["duration_ms"]; !exists {
|
||||
t.Fatalf("duration_ms is missing from request log")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user