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

Function TestValueFromContext

helpers_test.go:1686–1797  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

1684}
1685
1686func TestValueFromContext(t *testing.T) {
1687 t.Parallel()
1688
1689 t.Run("fiber.Ctx", func(t *testing.T) {
1690 t.Parallel()
1691
1692 app := New()
1693 raw := &fasthttp.RequestCtx{}
1694 c := app.AcquireCtx(raw)
1695 defer app.ReleaseCtx(c)
1696
1697 c.Locals("key", "value")
1698
1699 value, ok := ValueFromContext[string](c, "key")
1700 require.True(t, ok)
1701 require.Equal(t, "value", value)
1702 })
1703
1704 t.Run("released fiber.Ctx", func(t *testing.T) {
1705 t.Parallel()
1706
1707 app := New()
1708 raw := &fasthttp.RequestCtx{}
1709 c := app.AcquireCtx(raw)
1710
1711 c.Locals("key", "value")
1712
1713 valueBeforeRelease, okBeforeRelease := ValueFromContext[string](c, "key")
1714 require.True(t, okBeforeRelease)
1715 require.Equal(t, "value", valueBeforeRelease)
1716
1717 app.ReleaseCtx(c)
1718
1719 require.NotPanics(t, func() {
1720 valueAfterRelease, okAfterRelease := ValueFromContext[string](c, "key")
1721 require.False(t, okAfterRelease)
1722 require.Empty(t, valueAfterRelease)
1723 })
1724 })
1725
1726 t.Run("fiber.CustomCtx", func(t *testing.T) {
1727 t.Parallel()
1728
1729 app := NewWithCustomCtx(func(app *App) CustomCtx {
1730 return &customCtx{DefaultCtx: *NewDefaultCtx(app)}
1731 })
1732 raw := &fasthttp.RequestCtx{}
1733 c := app.AcquireCtx(raw)
1734 defer app.ReleaseCtx(c)
1735
1736 c.Locals("key", "value")
1737
1738 value, ok := ValueFromContext[string](c, "key")
1739 require.True(t, ok)
1740 require.Equal(t, "value", value)
1741 })
1742
1743 t.Run("released fiber.CustomCtx", func(t *testing.T) {

Callers

nothing calls this directly

Calls 6

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

Tested by

no test coverage detected