Files
plumber/internal/store/sessions_test.go
codegirl007 afd2476f3c Harden sessions, uploads, admin demotion, and HTTP timeouts.
Address PR review findings: renew session tokens on auth, sniff/re-encode avatars, serialize last-admin checks, bound server timeouts, rune-safe truncation, and TEST_DATABASE_URL-only integration tests.
2026-08-22 07:24:39 -07:00

53 lines
1.1 KiB
Go

package store
import (
"os"
"testing"
"time"
)
func TestSessionStoreCommitFindDelete(t *testing.T) {
url := os.Getenv("TEST_DATABASE_URL")
if url == "" {
t.Skip("TEST_DATABASE_URL not set")
}
schema, err := os.ReadFile("../../schema.sql")
if err != nil {
t.Fatal(err)
}
db, sessions, err := OpenPostgres(url, string(schema))
if err != nil {
t.Fatal(err)
}
defer db.Close()
defer sessions.Close()
token := "test-session-" + time.Now().Format("20060102150405.000000000")
data := []byte("hello-session")
expiry := time.Now().Add(time.Hour)
if err := sessions.Commit(token, data, expiry); err != nil {
t.Fatalf("Commit: %v", err)
}
got, found, err := sessions.Find(token)
if err != nil {
t.Fatalf("Find: %v", err)
}
if !found {
t.Fatal("expected found")
}
if string(got) != string(data) {
t.Fatalf("data = %q, want %q", got, data)
}
if err := sessions.Delete(token); err != nil {
t.Fatalf("Delete: %v", err)
}
_, found, err = sessions.Find(token)
if err != nil {
t.Fatalf("Find after delete: %v", err)
}
if found {
t.Fatal("expected not found after delete")
}
}