QA Checklist — March 2026
Nicky (QA) reported 8 issues during staging testing on ricoya.ipnoelp.com. All were resolved across March 1-2, 2026.
Issue Summary
| # | Issue | Root Cause | Fix Date |
|---|---|---|---|
| 1A | Unable to load addresses in profile | Missing 10 columns in addresses table | Mar 1 |
| 1B | Pages not loading data on navigation | SWR aggressive revalidation + stale cache | Mar 1 |
| 3A | Phone number input — symbols not stripped | No input sanitization on phone field | Mar 1 |
| 3B | Phone number not showing in cart | Cart didn’t read phone from user profile | Mar 1 |
| 4A | Notifications not working on Safari | Push subscription not saving to Supabase | Mar 1-2 |
| 4B | Rider notification + delivery console refresh | Notification triggers missing for customer, console not auto-refreshing | Mar 2 |
| 5 | Can’t assign orders to drivers from Admin | Underlying driver endpoint bugs (firestore_id, restaurant load) | Mar 2 |
| 6 | Unable to load images | Firebase Storage URLs broken post-migration | Mar 1 |
Detail
1A — Addresses Not Loading
The addresses table was missing 10 columns that the frontend expected (address_line1, address_line2, city, state, country, postal_code, formatted_address, google_place_id, is_default, name). Added via ALTER TABLE migration.
1B — Pages Not Loading on Navigation
SWR was configured with aggressive revalidation (revalidateOnFocus: true, short dedupe interval). Disabled revalidateOnFocus, increased dedupingInterval to 30s, enabled keepPreviousData.
3A — Phone Number Symbols
Added PHONE_REGEX = /^\+?[1-9]\d{7,14}$/ validation and strip non-digit characters (except leading +) before saving.
3B — Phone Not in Cart
Cart checkout page didn’t pre-populate phone from user profile. Added profile phone lookup and auto-fill.
4A — Safari Push Notifications
Push subscription wasn’t saving to Supabase because subscribeToWebPush() wasn’t being called after the initial enable (localStorage flag was already set). Fix: disable and re-enable triggers the full subscribe flow. Confirmed working on Safari, Chrome, and Firefox.
4B — Customer Notifications + Console Refresh
Added server-side push notifications for all order status transitions (accepted, ready, out_for_delivery, canceled). Delivery console now refreshes order list on notification receipt.
5 — Admin Driver Assignment
The admin order assignment UI was correct, but the underlying driver endpoints had bugs (firestore_id undefined, restaurant 500, pickup 400). All fixed — see Driver Delivery Flow Fixes doc.
6 — Images Not Loading
All image URLs pointed to Firebase Storage which was no longer accessible. Migrated 348 files to Cloudflare R2, optimized from 409MB to 247MB, updated 254 database records with new R2 URLs.
Testing
All 8 issues were verified fixed on three accounts:
- Driver (nseanchristopher@gmail.com) — Safari
- Customer (christophersean08@gmail.com) — Chrome
- Manager (sean@omelasai.com) — Chrome
Full end-to-end flow tested: order placement → manager accept → driver claim → pickup → proof of delivery → delivered.