Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit4400dd5

Browse files
committed
added test for an http request
1 parentf0f6458 commit4400dd5

File tree

1 file changed

+37
-2
lines changed

1 file changed

+37
-2
lines changed

‎coderd/httpmw/logger_test.go

Lines changed: 37 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,22 @@ package httpmw
33
import (
44
"context"
55
"net/http"
6+
"net/http/httptest"
67
"testing"
78
"time"
89

910
"cdr.dev/slog"
1011
"cdr.dev/slog/sloggers/slogtest"
12+
"github.com/coder/coder/v2/coderd/tracing"
1113
)
1214

1315
funcTestRequestLoggerContext_WriteLog(t*testing.T) {
1416
t.Parallel()
1517
ctx:=context.Background()
1618

1719
testLogger:=slogtest.Make(t,nil)
18-
startTime:=time.Now()
1920

20-
logCtx:=NewRequestLoggerContext(testLogger,"GET",startTime)
21+
logCtx:=NewRequestLoggerContext(testLogger,"GET",time.Now())
2122

2223
// Add custom fields
2324
logCtx.WithFields(
@@ -35,3 +36,37 @@ func TestRequestLoggerContext_WriteLog(t *testing.T) {
3536
// slogtest will fail the test.
3637
logCtx.WriteLog(ctx,http.StatusInternalServerError)
3738
}
39+
40+
funcTestLoggerMiddleware(t*testing.T) {
41+
t.Parallel()
42+
43+
// Create a test logger
44+
testLogger:=slogtest.Make(t,nil)
45+
46+
// Create a test handler to simulate an HTTP request
47+
testHandler:=http.HandlerFunc(func(rw http.ResponseWriter,r*http.Request) {
48+
rw.WriteHeader(http.StatusOK)
49+
_,_=rw.Write([]byte("OK"))
50+
})
51+
52+
// Wrap the test handler with the Logger middleware
53+
loggerMiddleware:=Logger(testLogger)
54+
wrappedHandler:=loggerMiddleware(testHandler)
55+
56+
// Create a test HTTP request
57+
req,err:=http.NewRequestWithContext(context.Background(),http.MethodGet,"/test-path",nil)
58+
iferr!=nil {
59+
t.Fatalf("failed to create request: %v",err)
60+
}
61+
62+
sw:=&tracing.StatusWriter{ResponseWriter:httptest.NewRecorder()}
63+
64+
// Serve the request
65+
wrappedHandler.ServeHTTP(sw,req)
66+
67+
logCtx:=RequestLoggerFromContext(context.Background())
68+
// Verify that the log was written
69+
iflogCtx!=nil&&!logCtx.written {
70+
t.Error("expected log to be written exactly once")
71+
}
72+
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp