package sessions_test import ( "testing" "time" "git.tavo.one/tavo/axiom/sessions" ) type DummyData struct { UserID string } func TestMaxSessionLimit(t *testing.T) { const max = 10 store := sessions.NewStore[DummyData](24, max) // Try creating maxSessions for i := 0; i < max; i++ { _, _, err := store.New(30*time.Minute, DummyData{UserID: "user"}) if err != nil { t.Fatalf("unexpected error on session %d: %v", i, err) } } // Now create one more, which should fail _, _, err := store.New(30*time.Minute, DummyData{UserID: "extra"}) if err == nil { t.Fatal("expected error when exceeding max sessions, but got nil") } } func BenchmarkSessionCreation(b *testing.B) { const maxSessions = 1_000_000 store := sessions.NewStore[DummyData](24, maxSessions) b.ResetTimer() for i := 0; i < b.N; i++ { _, _, err := store.New(10*time.Minute, DummyData{UserID: "u"}) if err != nil { b.Fatalf("failed to create session at iteration %d: %v", i, err) } } }