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