_id but the app reads id, so the wizard routed to /apply/undefined/… and every step 500'd. Fixed with a global _id→id response mapping; the wizard now advances (verified on-device, step 1→2 with real data).
(2) Admin billing & agency credits pages crashed (flat priceMinor vs nested price.amountMinor) — fixed.
(3) Consent screen could get stuck on a fast scroll — fixed with momentum-scroll detection.
Direct HTTP checks against the live API.
The heart of the product: build an application, fill a profile, and produce a VisaScore + VisaMatrix factor breakdown. Run against the live API.
Driven on a Genymotion cloud Android device via adb + uiautomator.
Driven in a real Chromium browser.
Driven in a real Chromium browser.