Appearance
Exam Authoring Route Rehearsals
Scope
These rehearsals are non-default gateway proofs for exam-service authoring routes. They validate the native authoring route examples while keeping broad /api/exams* and attempt routes legacy-proxied in the default gateway table.
Static route-table proof is not enough for public promotion. Public exam authoring promotion still needs live gateway proof, browser proof from the real teacher/admin editor workflow, and rollback notes.
Static Target
Run the authoring route-table guard:
bash
make test-exam-authoring-routes1
The guard validates:
deploy/gateway/routes.exam-authoring-native-example.jsondeploy/gateway/routes.exam-authoring-native-localhost-example.json
It also verifies the default route table does not keep active native exam authoring route names and that broad exams, attempts, and fallback routes remain legacy-proxied.
Runtime Proof Gate
Before any default /api/exams* authoring route promotion, the owning slice must add named live and browser smoke targets that prove the real workflow:
- list/create/detail/update/delete authoring calls route through the gateway
- publish snapshots preserve question content, scoring, media references, and access-link metadata by value
- attempts and attempt-start routes remain delegated to
attempt-serviceandexam-start-adapterproof - browser proof opens the actual teacher/admin exam authoring flow and captures route headers plus screenshots under
output/playwright/
Any route promotion touching attempt start must also run:
bash
make test-attempt-routes
make test-attempt-live
make test-attempt-browser1
2
3
2
3
SVC-009-exam-attempt-public-proof now supplies a local exam-to-attempt adapter workflow and browser API-fetch smoke. It does not replace this real teacher/admin authoring browser gate, nor does it promote the default route table.
Rollback
Rollback is switching the gateway back to:
bash
GATEWAY_ROUTE_TABLE=deploy/gateway/routes.json1
After rollback, rerun make test-exam-authoring-routes and confirm broad exam and attempt routes still resolve to legacy proxy behavior.