RECCE CLIENT PORTAL — APPROVAL / REJECTION WALKTHROUGH Phase 4.4 + 4.10 (single + bulk response) URL: https://srv1111289.hstgr.cloud/recce-client/ Date written: 2026-06-14 ──────────────────────────────────────── PART A — SUPERVISOR SIDE (Recce admin) ──────────────────────────────────────── 1. Open https://srv1111289.hstgr.cloud/recce/ on a mobile viewport. 2. Log in as harish. 3. Go to Admin view. 4. Find any Recce that has is_official_for_client = true (campaign linked, looks complete). 5. Open that Recce's detail overlay → confirm the "Client Approval" section shows "Pending". 6. Invite a client user: - Tap "Invite client user" (or equivalent) - Email: a real inbox you can access (e.g. haris.lal.1974@gmail.com) - Role: SM - Scope: All - Client: whichever client owns the brand of that Recce - Confirm success toast appears. ──────────────────────────────────────── PART B — CLIENT SIDE (magic link) ──────────────────────────────────────── 7. Open the inbox and find the invite email. Copy the magic link URL. 8. Open the magic link in a fresh private/incognito browser tab. 9. Verify: - Landing on list screen (#s-list) — NOT the login screen. - User pill in header shows your display name. - Summary count shows at least 1 Recce. - Recce row has a "Pending" status pill. 10. Tap the Recce row → viewer screen opens. Verify: - Viewer screen (#s-viewer) is active. - "View report (HTML)" button visible → tap it → report opens in new tab with a signed URL (/recce-view-proxy/?t=...). - Response card shows "Awaiting your response". - Submit button is DISABLED before selecting a radio. ──────────────────────────────────────── PART C — SINGLE RESPONSE TESTS ──────────────────────────────────────── 11. TEST: Approve - Select "Approve". - Confirm Submit button ENABLES (no comment needed). - Tap Submit. - Confirm return to list screen. - Confirm Recce row now shows "approved" status pill (green). 12. TEST: Approve with changes - Tap the same Recce row again. - Select "Approve with changes". - Type a 1-char comment ("x") → Submit must stay DISABLED, hint shows "Min 3". - Enter real comment: "Glow sign needs to shift 30cm left of the cooler." - Submit → list → status pill shows "w/ Changes" (blue). 13. TEST: Rejected (optional — overwrites previous response) - Re-open the same Recce. - Select "Reject". - Try submitting without a comment → Submit must stay DISABLED. - Enter comment: "Wrong store visited, please redo." - Submit → list → status pill shows "Rejected" (red). ──────────────────────────────────────── PART D — BULK RESPONSE (needs 2+ Recces) ──────────────────────────────────────── 14. If 2 or more Recces are visible in the list: - Tap "☐ Select" in the header → bulk mode activates (checkboxes on rows). - Select 2 Recces. - Bottom bulk bar shows "2 selected". - Tap "Respond ↗" → bulk modal opens, count = 2. - Select "Approve" → Submit enables. - Submit → modal closes, both rows update their status pill to "approved". - Tap "☐ Select" again to exit bulk mode. ──────────────────────────────────────── PART E — SUPERVISOR SEES THE RESPONSE ──────────────────────────────────────── 15. Switch back to the Recce admin (harish session). - Open the same Recce in the admin overlay. - Confirm "Client Approval" section shows the updated status, timestamp, and comment. - Confirm the branding lock banner appears (amber) because client_status ≠ pending. ──────────────────────────────────────── WHAT TO REPORT ──────────────────────────────────────── Report PASS / FAIL for each numbered step. For any FAIL include: - What you expected vs what actually happened - Any error messages, toasts, or console errors - Screenshot description if relevant