Standardize neon cyan on #00e8f5, wire SacredPageHeader across Builds/Path Tracer/LOTL, dedupe Pages.css, align Path Tracer chrome, drop dead wealth-deck CSS, add prefers-color-scheme shell + HelpTip, sidebar version from package.json build inject, and Vitest CSS regression guards.
37 lines
863 B
Go
37 lines
863 B
Go
package db
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
func TestPathTraceSessionPersistenceAndSweep(t *testing.T) {
|
|
d := openTestDB(t)
|
|
|
|
fresh := []byte(`{"id":"sess-fresh","ready":true}`)
|
|
stale := []byte(`{"id":"sess-stale","ready":false}`)
|
|
|
|
if err := d.UpsertPathTraceSession("sess-fresh", time.Now().Add(-30*time.Minute), fresh); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if err := d.UpsertPathTraceSession("sess-stale", time.Now().Add(-3*time.Hour), stale); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
deleted, err := d.DeleteExpiredPathTraceSessions(time.Now().Add(-2 * time.Hour))
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if deleted != 1 {
|
|
t.Fatalf("expected 1 stale row deleted, got %d", deleted)
|
|
}
|
|
|
|
rows, err := d.ListPathTraceSessions()
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if len(rows) != 1 || rows[0].ID != "sess-fresh" {
|
|
t.Fatalf("expected fresh session only, got %+v", rows)
|
|
}
|
|
}
|