@@ -52,6 +52,9 @@ func TestLoggerMiddleware_SingleRequest(t *testing.T) {
52
52
logger := slog .Make (sink )
53
53
logger = logger .Leveled (slog .LevelDebug )
54
54
55
+ ctx , cancel := context .WithTimeout (context .Background (), testutil .WaitShort )
56
+ defer cancel ()
57
+
55
58
// Create a test handler to simulate an HTTP request
56
59
testHandler := http .HandlerFunc (func (rw http.ResponseWriter , r * http.Request ) {
57
60
rw .WriteHeader (http .StatusOK )
@@ -63,7 +66,7 @@ func TestLoggerMiddleware_SingleRequest(t *testing.T) {
63
66
wrappedHandler := loggerMiddleware (testHandler )
64
67
65
68
// Create a test HTTP request
66
- req , err := http .NewRequestWithContext (context . Background () , http .MethodGet , "/test-path" , nil )
69
+ req , err := http .NewRequestWithContext (ctx , http .MethodGet , "/test-path" , nil )
67
70
if err != nil {
68
71
t .Fatalf ("failed to create request: %v" , err )
69
72
}
@@ -76,6 +79,24 @@ func TestLoggerMiddleware_SingleRequest(t *testing.T) {
76
79
require .Len (t , sink .entries , 1 , "log was written twice" )
77
80
78
81
require .Equal (t , sink .entries [0 ].Message , "GET" , "log message should be GET" )
82
+
83
+ fieldsMap := make (map [string ]interface {})
84
+ for _ , field := range sink .entries [0 ].Fields {
85
+ fieldsMap [field .Name ] = field .Value
86
+ }
87
+
88
+ // Check that the log contains the expected fields
89
+ requiredFields := []string {"host" , "path" , "proto" , "remote_addr" , "start" , "took" , "status_code" , "latency_ms" }
90
+ for _ , field := range requiredFields {
91
+ _ , exists := fieldsMap [field ]
92
+ require .True (t , exists , "field %q is missing in log fields" , field )
93
+ }
94
+
95
+ require .Len (t , sink .entries [0 ].Fields , len (requiredFields ), "log should contain only the required fields" )
96
+
97
+ // Check value of the status code
98
+ require .Equal (t , fieldsMap ["status_code" ], http .StatusOK , "status_code should be 200" )
99
+
79
100
}
80
101
81
102
func TestLoggerMiddleware_WebSocket (t * testing.T ) {
0 commit comments