chmod +x scripts/test-backend.sh
./scripts/test-backend.shCovers greedy/ILP optimizers, conflict detection, read-only /schedule, /analytics/trends, and /track-status.
cd rail-frontend && npm run testStart the backend first (cd backend && python3 main.py), then:
chmod +x scripts/e2e-smoke.sh
./scripts/e2e-smoke.sh- Operations → verify Context strip shows live/polling and sync age
- Select train on platform board or map → drawer opens
- Manual override uses selected train (not first row)
- Timeline tab shows Train graph with NOW line and live head markers
- Schedule tab → conflict badge on rows involved in active conflicts
- Simulation → run scenario → side-by-side compare → promote requires confirmation
- Analytics → Refresh → KPI cards, trends chart, station heatmap populate
SimulationDiagnostics and ConflictTestingPanel render only when import.meta.env.DEV or VITE_ENABLE_DIAGNOSTICS=true.