qa(round2-B2): This or That PASS (user-nav, 5/5, results match); B-001 escalated P3->P1 (Back to Play doesn't close finished session -> blocks next game); B-002 P2 (Play now lands on hub)
This commit is contained in:
parent
8fa922fb70
commit
f8dc8119cb
|
|
@ -24,7 +24,7 @@ superseded — redo every game cleanly. (Prior result for reference: This or Tha
|
|||
|
||||
| Game | starts | plays | finishes/results | no crash | Status |
|
||||
|---|---|---|---|---|---|
|
||||
| 1. This or That | todo | todo | todo | todo | todo (redo, user-nav) |
|
||||
| 1. This or That | pass | **pass (full, user-nav)** | **pass** | pass | **R2-B2: 5/5 via Play hub, answers synced, results match both (4/5 "Two peas in a pod", Q2 Differ correct), no crash ✅. Session-lifecycle bug B-001 (P1) hit on exit.** |
|
||||
| 2. How Well Do You Know Me | todo | todo | todo | todo | todo (redo, user-nav) |
|
||||
| 3. Desire Sync | todo | todo | todo | todo | todo (premium; couple has premium) |
|
||||
| 4. Connection Challenges | todo | todo | todo | todo | todo (premium) |
|
||||
|
|
|
|||
|
|
@ -14,17 +14,21 @@ _(Prior games/notifications QA from 2026-06-24 was completed + verified; superse
|
|||
|
||||
---
|
||||
|
||||
## Severity summary (Round 1)
|
||||
## Severity summary (current — R1 fixed + R2 findings)
|
||||
| Severity | Open | Fixed |
|
||||
|---|---|---|
|
||||
| P0 | 0 | 0 |
|
||||
| P1 | 0 | 2 |
|
||||
| P2 | 0 | 1 |
|
||||
| P3 | 4 | 0 |
|
||||
| P1 | 1 | 2 |
|
||||
| P2 | 1 | 1 |
|
||||
| P3 | 3 | 0 |
|
||||
|
||||
**Round 1: all P0–P2 found were FIXED** (A-001 premium P1, E-001 notif-routing P2). Open = P3 cosmetics only
|
||||
(A-003 badge, B-001 stale-session guard, E-002 informational notif routing). Deferred for a clean "flawless"
|
||||
certification: exhaustive deep/stateful screens (Pass C), full live notification matrix + D3 live non-member test.
|
||||
**Round 1: all P0–P2 found were FIXED** (A-001 premium P1, E-001 notif-routing P2).
|
||||
**Round 2 (Pass B play-as-user restart) new/changed:** **B-001** escalated **P3→P1** (a finished game never closes its
|
||||
session via any normal path — proven: both tapped "Back to Play", session stayed `active` 12s later — so every game
|
||||
blocks the next, recoverable only via the destructive "End their game"; breaks the core loop); **B-002 (P2, new)** Home
|
||||
"Play now / your partner is waiting to play" lands on the generic Play hub instead of resuming/indicating the waiting
|
||||
game (confirmed with a live session too). Open P3: A-003 (badge), E-002 (informational notif routing), F-OBS
|
||||
(load-fail handling). Deferred for "flawless": exhaustive deep/stateful screens (Pass C), full live notif matrix + D3.
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -43,7 +47,8 @@ certification: exhaustive deep/stateful screens (Pass C), full live notification
|
|||
## Pass B — Games lifecycle (launch/crash sweep done; full two-device lifecycle partial)
|
||||
| ID | Area | Screen/Route | Severity | Description | Repro | Status |
|
||||
|---|---|---|---|---|---|---|
|
||||
| B-001 | Games / sessions | couples/{id}/sessions | **P3** (observe) | A stale `active` wheel session (startedBy QA, `createdAt` missing/undefined) blocked **all** games ("Waiting for Sam"). In-app **"End their game" recovery works** (session→completed, games unblocked). Likely a prior-test artifact, but: sessions appearing without a timestamp + one stale session blocking every game is worth a guard. | Open This or That → "Waiting for Sam… Sam is playing a Wheel game"; tap End their game → unblocked. | Open |
|
||||
| B-001 | Games / sessions | couples/{id}/sessions | **P1** (was P3→P2→P1) | **A finished game NEVER closes its session — there is no normal-user path to complete it — so every game leaves a dangling `status=active` session that blocks ALL other games.** Definitively proven on the R2-B2 restart: played This or That fully through on BOTH devices → both reached the results screen → **BOTH tapped the intended "Back to Play" button** → both navigated back to the Play hub, **but the session stayed `active`** (re-checked at +0s and +12s; no cloud-function cleanup; `completedAt` never set). So neither "Back to Play" nor leaving to Home completes a finished session — the ONLY thing that does is the **destructive "End their game"** (which the next game offers as "Sam is playing a … game", misleading copy since nobody is actually playing). Net: a couple **cannot cleanly play two games in a row** — after every game, the next one is blocked until one partner kills the (already-finished) session. This breaks the core game loop for every session → **P1**. **Fix:** mark the session `completed` when both players reach results (or on "Back to Play"); don't let a completed/stale session block new games; fix the misleading "is playing" / "End their game" copy. | Play This or That to results on both → both tap "Back to Play" → Firestore `couples/{id}/sessions` still has that this_or_that doc `status=active` (12s later) → open any other game → "Waiting for Sam — Sam is playing a … game", only "End their game" unblocks. | Open |
|
||||
| B-002 | Home → Play nav (play-as-user) | HomeScreen "Your partner is waiting to play" card → "Play now" | **P2** | The Home card explicitly promises resuming the specific waiting game — "**Your partner is waiting to play. A game is ready for the two of you. Jump back in and keep the ritual going.**" → **"Play now"** — but tapping it just lands on the **generic Play hub** (the game list). It does NOT open/resume the waiting game, and the Play hub shows **no indication of which game is waiting** nor any "resume" affordance. A user told to "jump back in" cannot tell what to tap or how to rejoin. (Also: BOTH partners' Home cards say "**your** partner is waiting to play" for the same session, so each thinks the other is mid-game.) **Fix:** "Play now" should deep-link into the active session (its play/results screen), or the Play hub should surface a "Resume — How Well" entry; the Home copy should reflect whose turn it actually is. | Cold start → Home → tap "Play now" → lands on Play hub, no waiting-game indicator. | Open |
|
||||
|
||||
**Launch/crash sweep (QA, free):** This or That ✅ (mood/length select), How Well Do You Know Me ✅ (intro), Connection Challenges ✅, Spin the Wheel ✅ — all render, **no FATAL**. Desire Sync + Memory Lane are premium-gated (covered in Pass A; gameplay needs premium toggle). Date Match: todo. Full two-device start→finish + results not exhaustively re-run this round (the prior round verified `onGameSessionUpdate` start/finish end-to-end).
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue