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) } }