mirror of
https://github.com/gofiber/fiber.git
synced 2025-07-29 13:39:54 +00:00
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
56 lines
1.5 KiB
Go
56 lines
1.5 KiB
Go
package session
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/gofiber/fiber/v3"
|
|
"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: 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
|
|
})
|
|
})
|
|
}
|