4
4
"context"
5
5
"net/http"
6
6
"net/http/httptest"
7
- "sync"
8
7
"testing"
9
8
"time"
10
9
@@ -96,16 +95,17 @@ func TestLoggerMiddleware_WebSocket(t *testing.T) {
96
95
sink := & fakeSink {}
97
96
logger := slog .Make (sink )
98
97
logger = logger .Leveled (slog .LevelDebug )
99
- var wg sync. WaitGroup
98
+
100
99
// Create a test handler to simulate a WebSocket connection
101
100
testHandler := http .HandlerFunc (func (rw http.ResponseWriter ,r * http.Request ) {
102
101
conn ,err := websocket .Accept (rw ,r ,nil )
103
102
if err != nil {
104
103
t .Errorf ("failed to accept websocket: %v" ,err )
105
104
return
106
105
}
106
+ requestLgr := RequestLoggerFromContext (r .Context ())
107
+ requestLgr .WriteLog (r .Context (),http .StatusSwitchingProtocols )
107
108
defer conn .Close (websocket .StatusNormalClosure ,"" )
108
- defer wg .Done ()
109
109
110
110
// Send a couple of messages for testing
111
111
_ = conn .Write (ctx ,websocket .MessageText , []byte ("ping" ))
@@ -125,10 +125,8 @@ func TestLoggerMiddleware_WebSocket(t *testing.T) {
125
125
// Create a test HTTP request
126
126
srv := httptest .NewServer (customHandler )
127
127
defer srv .Close ()
128
- wg .Add (1 )
129
128
// nolint: bodyclose
130
129
conn ,_ ,err := websocket .Dial (ctx ,srv .URL ,nil )
131
- wg .Wait ()
132
130
if err != nil {
133
131
t .Fatalf ("failed to create WebSocket connection: %v" ,err )
134
132
}