Files
fiber/middleware/session/config_test.go
zeekayandHanzo Dev f60e254acb module: rename to github.com/zap-proto/fiber/v3
Fork of gofiber/fiber v3 based on the v3.2.0 tag. Rewrites all self-imports
github.com/gofiber/fiber/v3 -> github.com/zap-proto/fiber/v3. Upstream
gofiber/schema and gofiber/utils/v2 dependencies are left untouched.

Co-authored-by: Hanzo Dev <[email protected]>
2026-07-10 12:49:35 -07:00

57 lines
1.6 KiB
Go

package session
import (
"testing"
"time"
"github.com/zap-proto/fiber/v3"
"github.com/zap-proto/fiber/v3/extractors"
"github.com/stretchr/testify/require"
"github.com/valyala/fasthttp"
)
func TestConfigDefault(t *testing.T) {
// Test default config
cfg := configDefault()
require.Equal(t, 30*time.Minute, cfg.IdleTimeout)
require.NotNil(t, cfg.KeyGenerator)
require.NotNil(t, cfg.Extractor)
require.Equal(t, "session_id", cfg.Extractor.Key)
require.Equal(t, "Lax", cfg.CookieSameSite)
}
func TestConfigDefaultWithCustomConfig(t *testing.T) {
// Test custom config
customConfig := Config{
IdleTimeout: 48 * time.Hour,
Extractor: extractors.FromHeader("X-Custom-Session"),
KeyGenerator: func() string { return "custom_key" },
}
cfg := configDefault(customConfig)
require.Equal(t, 48*time.Hour, cfg.IdleTimeout)
require.NotNil(t, cfg.KeyGenerator)
require.NotNil(t, cfg.Extractor)
require.Equal(t, "X-Custom-Session", cfg.Extractor.Key)
}
func TestDefaultErrorHandler(t *testing.T) {
// Create a new Fiber app
app := fiber.New()
// Create a new context
ctx := app.AcquireCtx(&fasthttp.RequestCtx{})
// Test DefaultErrorHandler
DefaultErrorHandler(ctx, fiber.ErrInternalServerError)
require.Equal(t, fiber.StatusInternalServerError, ctx.Response().StatusCode())
}
func TestAbsoluteTimeoutValidation(t *testing.T) {
require.PanicsWithValue(t, "[session] AbsoluteTimeout must be greater than or equal to IdleTimeout", func() {
configDefault(Config{
IdleTimeout: 30 * time.Minute,
AbsoluteTimeout: 15 * time.Minute, // Less than IdleTimeout
})
})
}