MCPcopy
hub / github.com/gofiber/fiber / Test_Ctx_ValueFromContext_Config

Function Test_Ctx_ValueFromContext_Config

ctx_test.go:4323–4396  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

4321}
4322
4323func Test_Ctx_ValueFromContext_Config(t *testing.T) {
4324 t.Parallel()
4325
4326 t.Run("fiber ctx disabled reads locals", func(t *testing.T) {
4327 t.Parallel()
4328
4329 app := New()
4330 raw := &fasthttp.RequestCtx{}
4331 c := app.AcquireCtx(raw)
4332 defer app.ReleaseCtx(c)
4333
4334 c.Locals(contextHelperTestKey{}, "locals")
4335 c.SetContext(context.WithValue(context.Background(), contextHelperTestKey{}, "context"))
4336
4337 value, ok := ValueFromContext[string](c, contextHelperTestKey{})
4338 require.True(t, ok)
4339 require.Equal(t, "locals", value)
4340 })
4341
4342 t.Run("fiber ctx enabled still reads locals", func(t *testing.T) {
4343 t.Parallel()
4344
4345 app := New(Config{PassLocalsToContext: true})
4346 raw := &fasthttp.RequestCtx{}
4347 c := app.AcquireCtx(raw)
4348 defer app.ReleaseCtx(c)
4349
4350 c.Locals(contextHelperTestKey{}, "locals")
4351 c.SetContext(context.WithValue(context.Background(), contextHelperTestKey{}, "context"))
4352
4353 value, ok := ValueFromContext[string](c, contextHelperTestKey{})
4354 require.True(t, ok)
4355 require.Equal(t, "locals", value)
4356 })
4357
4358 t.Run("fiber custom ctx enabled still reads locals", func(t *testing.T) {
4359 t.Parallel()
4360
4361 app := NewWithCustomCtx(func(app *App) CustomCtx {
4362 return &customCtx{DefaultCtx: *NewDefaultCtx(app)}
4363 }, Config{PassLocalsToContext: true})
4364 raw := &fasthttp.RequestCtx{}
4365 c := app.AcquireCtx(raw)
4366 defer app.ReleaseCtx(c)
4367
4368 c.Locals(contextHelperTestKey{}, "locals")
4369 c.SetContext(context.WithValue(context.Background(), contextHelperTestKey{}, "context"))
4370
4371 value, ok := ValueFromContext[string](c, contextHelperTestKey{})
4372 require.True(t, ok)
4373 require.Equal(t, "locals", value)
4374 })
4375
4376 t.Run("fasthttp request ctx", func(t *testing.T) {
4377 t.Parallel()
4378
4379 raw := &fasthttp.RequestCtx{}
4380 raw.SetUserValue(contextHelperTestKey{}, "value")

Callers

nothing calls this directly

Calls 7

NewWithCustomCtxFunction · 0.85
NewDefaultCtxFunction · 0.85
AcquireCtxMethod · 0.80
ReleaseCtxMethod · 0.80
NewFunction · 0.70
LocalsMethod · 0.65
SetContextMethod · 0.65

Tested by

no test coverage detected