Test results reporting for Snapline
Snapline Hub is an optional web application that stores and visualizes
TestRunReport data from Snapline test runs. Use it when you want a centralized
dashboard for pass/fail history, suite drill-down, and structured diff inspection.
Snapline Hub complements Snapline for Node.js and Snapline for Python. It is not bundled into the framework packages — install and run it only when you need centralized reporting.
What Snapline Hub does
Snapline test runners produce structured results: suite names, step outcomes, and on failure a
diff object with path, actual, and expected.
By default, Snapline can write these to local JSON, HTML, or text files. Snapline Hub adds:
- Persistent storage — all runs saved in a local SQLite database
- Web dashboard — pass rate, recent runs, filtering by status
- Drill-down UI — expand suites, inspect steps, view diffs inline
- Upload — import existing
TestRunReportJSON files - Push API — ingest reports directly from CI or test runners
Dashboard
Total runs, suites executed, pass rate, and a table of recent test runs with framework labels.
Run history
Search, quick filters (Node/Python/failed/date), active filter chips, and advanced project/tag filters.
Diff viewer
Failed steps show the Snapline diff block: field path, actual value, expected value, and message.
Framework-agnostic
Accepts the same TestRunReport JSON schema from Node.js (@vaagatech/snapline-core) and Python (snapline-core).
When to use it
| Scenario | Recommendation |
|---|---|
| Local development, single developer | Optional — console output and local HTML reports may be enough |
| Team sharing test history across runs | Run Hub on a shared server; push from CI after each test job |
| Debugging reconciliation failures | Use Hub to compare diffs across runs without digging through log files |
| Demo / QA environment | Push full integration demo results with SNAPLINE_HUB_URL |
| Production CI only needs pass/fail | Skip Hub — use process.exitCode or pytest exit codes |
writeTestReport / write_test_report)
and console output are always available. Hub is an add-on for teams that want a shared UI.
How data flows
Quick start
git clone https://github.com/vaagatech/snapline-hub.git
cd snapline-hub
npm install
npm run dev
Open http://localhost:5173 for the UI (development) or
http://localhost:3847 after npm run build && npm start (production).
Push a report from Snapline:
# Node.js
SNAPLINE_HUB_URL=http://localhost:3847 npm run demo
# Python
SNAPLINE_HUB_URL=http://localhost:3847 uv run demo
Documentation map
| Page | Contents |
|---|---|
| Installation | Prerequisites, clone, dev vs production, environment variables, deployment options |
| Getting Started | 5-minute walkthrough: start Hub, push first report, view in UI |
| User Guide | Dashboard, run history, upload, run detail, diff inspection, labels |
| Snapline Integration | Node.js and Python push APIs, env vars, CLI flags, CI examples |
| Architecture | Components, data model, storage, security considerations |
| API Reference | REST endpoints, request/response schemas, curl examples |