← ClaudeAtlas

testing-combo-fallbacklisted

End-to-end test the OpenProxy combo fallback dispatch path (Rust BE + Astro FE) and seed the dashboard with mock data. Use whenever validating combo/provider/media changes or producing a UI tour.
quangdang46/openproxy · ★ 4 · Testing & QA · score 60
Install: claude install-skill quangdang46/openproxy
# Testing OpenProxy combo fallback + seeding the dashboard This skill captures the non-obvious bits learned while E2E-testing the combo fallback dispatch fix in `src/server/api/chat.rs` and unblanking the four dashboard pages in PR #8. Most setup is straightforward; the gotchas below are what actually consumed time. ## Stack layout (local) - Rust BE on `127.0.0.1:4623` (serves `/api/*` and `/v1/*`). - Astro dashboard on `127.0.0.1:4624` (sidecar; the BE also serves the built dashboard at `/dashboard`, which is what most testing uses). - Recommended: `npm run dev:stack` against an empty `DATA_DIR=/tmp/openproxy-e2e`. Empty directory means a fresh `db.json` and a freshly-generated management API key (printed to stdout). For combo fallback specifically you also want a tiny mock OpenAI on a local port that returns a canned `chat.completion`. A Python `http.server` BaseHTTPRequestHandler emitting `{"id":"cmpl-mock-pass","choices":[{"message":{"content":"hello-from-pass"}}]}` on `POST /v1/chat/completions` is enough. ## Toolchain prerequisites The Rust BE uses crates that require **Rust 1.95.0** or newer (`hybrid-array` needs `edition2024`). On a fresh box: ``` rustup update stable # 1.95.0+ as of April 2026 sudo apt-get install -y libssl-dev pkg-config # for openssl-sys ``` Astro dev needs an explicit host or it binds IPv6-only: ``` npx astro dev --port 4624 --host 127.0.0.1 ``` ## Auth: turn off `require_login` before scripted seeding Default `db.json