MCPcopy Create free account
hub / github.com/ankorstore/yokai / TestCtxRequestIdWithValue

Function TestCtxRequestIdWithValue

httpserver/context_test.go:29–63  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

27}
28
29func TestCtxRequestIdWithValue(t *testing.T) {
30 logBuffer := logtest.NewDefaultTestLogBuffer()
31 logger, err := log.NewDefaultLoggerFactory().Create(
32 log.WithServiceName("test service"),
33 log.WithOutputWriter(logBuffer),
34 )
35 assert.NoError(t, err)
36
37 httpServer := echo.New()
38 httpServer.Logger = httpserver.NewEchoLogger(logger)
39
40 // with value
41 req := httptest.NewRequest(http.MethodGet, "/test", nil)
42 req.Header.Add(middleware.HeaderXRequestId, testRequestId)
43 rec := httptest.NewRecorder()
44
45 ctx := httpServer.NewContext(req, rec)
46 handler := func(c echo.Context) error {
47 httpserver.CtxLogger(c).Info().Msgf("request id: %s", httpserver.CtxRequestId(c))
48
49 return c.String(http.StatusOK, "ok")
50 }
51
52 m := middleware.RequestLoggerMiddleware()
53 h := m(handler)
54
55 err = h(ctx)
56 assert.NoError(t, err)
57
58 logtest.AssertHasLogRecord(t, logBuffer, map[string]interface{}{
59 "level": "info",
60 "service": "test service",
61 "message": fmt.Sprintf("request id: %s", testRequestId),
62 })
63}
64
65func TestCtxLogger(t *testing.T) {
66 logBuffer := logtest.NewDefaultTestLogBuffer()

Callers

nothing calls this directly

Calls 4

CreateMethod · 0.65
AddMethod · 0.65
InfoMethod · 0.45
StringMethod · 0.45

Tested by

no test coverage detected