Adds a full flashcards system: FSRS-based scheduling, cloze/basic card types, CSV import/export, media storage, and study UI, wired into navigation and the dashboard alongside existing question flows.
1.7 KiB
UAT smoke tests
The UAT smoke suite runs after each successful UAT deployment and can also be
started manually with the Smoke Test STEP3 UAT Gitea workflow.
It checks:
- public API health, readiness, environment, and deployed revision;
- legal metadata and configured Steam and Google authorization URLs;
- registration, login, refresh, authenticated profile, dashboard, ratings, review queue, and randomized question retrieval;
- random CCS attempt creation and abandonment;
- flashcard deck/card creation, studying and grading a card, confirming it drops out of the due queue, and a CSV export/import round trip;
- public web/legal assets, completion of the Godot loader, and a visible, non-uniform canvas without browser or critical asset errors.
Each run creates a unique temporary learner account. The test abandons its CCS attempt and deletes the account even when an assertion fails. It does not submit question answers, complete OAuth, or open Stripe Checkout, so it does not alter question statistics, learner ratings, donations, or provider accounts.
Failure evidence is retained for 14 days under the workflow's
uat-smoke-<run number>-<attempt> artifact. It includes JUnit XML, an HTML report, the
rendered canvas image, and Playwright traces/screenshots for failed browser
tests.
No secrets are required. The public UAT origins are supplied by the workflow. The registration endpoint permits five registrations per source IP in 15 minutes, so repeatedly dispatching the smoke workflow in a short interval may receive HTTP 429 until that window resets.
To run the same suite from a Linux host with Docker:
UAT_API_ORIGIN=https://us3q.ranaze.com \
UAT_WEB_ORIGIN=https://ustep3.ranaze.com \
bash .gitea/scripts/run-uat-smoke.sh