Skip to content

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-routes

The guard validates:

  • deploy/gateway/routes.exam-authoring-native-example.json
  • deploy/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-service and exam-start-adapter proof
  • 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-browser

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.json

After rollback, rerun make test-exam-authoring-routes and confirm broad exam and attempt routes still resolve to legacy proxy behavior.

Go-platform documentation is generated from repository Markdown.