Files
weirsoe-party-protocol/docs/UI_SMOKE.md
Asger Geel Weirsoee a4c0d0603d
All checks were successful
CI / test-and-quality (push) Successful in 2m55s
CI / test-and-quality (pull_request) Successful in 2m56s
feat(cutover): harden SPA asset cache busting and rollback playbook (#188)
2026-03-01 20:52:04 +00:00

49 lines
2.0 KiB
Markdown

# UI smoke (MVP)
## Forudsætning
- Host er logget ind i Django.
- Mindst én aktiv kategori med spørgsmål findes.
## Cutover-forudsætning (`USE_SPA_UI`)
- `USE_SPA_UI=false` (default): brug legacy routes `/lobby/ui/host` + `/lobby/ui/player`.
- `USE_SPA_UI=true`: host må gerne testes på SPA deep-link route `/lobby/ui/host/<spa-path>` (fx `/lobby/ui/host/guess`), player på `/lobby/ui/player`.
## Flow
1. Verificér cutover-route matcher valgt flag (legacy vs SPA shell).
2. Åbn host-siden og tryk Opret session.
3. Åbn player-siden i 3 faner/enheder.
4. Join alle spillere med sessionkode og nickname.
5. Host: vælg kategori, Start runde, Vis spørgsmål.
6. Spillere: brug round_question_id og submit løgn.
7. Host: Mix svar.
8. Spillere: submit gæt.
9. Host: Beregn score og Vis scoreboard.
10. Host: Næste runde eller Afslut spil.
## Smoke-gate (staging cutover)
`USE_SPA_UI` må kun aktiveres i staging når følgende er opfyldt:
- Cutover route sanity er PASS for både OFF (legacy) og ON (SPA shell).
- Én fuld gameplay-runde til scoreboard er PASS.
- Next-round/final leaderboard sanity er PASS.
- Ingen nye blocker-regressioner i host/player kerneflow.
## Samme release-vindue: SPA OFF + ON verifikation
Kør begge checks i samme release-vindue (samme deploy/artifact version):
1. **OFF-pass (legacy)**
- `USE_SPA_UI=false`
- Verificér legacy routes + fuld runde.
2. **ON-pass (SPA)**
- `USE_SPA_UI=true`
- Behold samme release artifact og kun toggl flag/version-token ved behov.
- Verificér SPA shell routes + fuld runde.
3. Dokumentér begge pass i samme smoke-artifact med UTC timestamps og `WPP_SPA_ASSET_VERSION`.
## Rollback check points
Skift straks tilbage til `USE_SPA_UI=false` hvis en gate fejler:
1. Verificér legacy routes (`/lobby/ui/host` + `/lobby/ui/player`) fungerer igen.
2. Log rollback trigger + kort repro i smoke artifact.
3. Opret/link blocker issue før nyt cutover-forsøg.
Resultat: En fuld runde kan køres uden rå API-kald fra terminal.