pediatric-ai-scribe-v3/e2e/tests
Daniel 82ed46d01b Fix Turnstile in the mobile app; drop it from login
The Turnstile challenge failed reliably inside the Capacitor WebView,
which blocked login and registration from the Android app.

Three separate causes:

1. Android WebView blocks third-party cookies by default. Turnstile runs
   in a cross-origin iframe from challenges.cloudflare.com and needs its
   own storage, so the widget never emitted a token. MainActivity now
   calls setAcceptThirdPartyCookies on the app's own WebView.

2. The register handler read the Turnstile response with an unscoped
   document.querySelector, which matched the *login* widget's input (it
   comes first in the DOM). Registration therefore submitted the login
   widget's token — single-use with a 5 minute expiry, so any prior login
   attempt or slow signup made it fail server-side.

3. The register and forgot-password widgets auto-rendered inside forms
   that start at display:none, where Turnstile does not reliably complete
   a challenge, and nothing re-rendered them when the form was shown.

Widgets are now rendered explicitly when their form first becomes
visible, and tokens are captured from the render callback instead of
being read back out of the injected input — which makes the unscoped
lookup in (2) structurally impossible. Added error/expired/timeout
callbacks so a widget failure surfaces the Cloudflare error code instead
of failing silently behind a generic toast.

Login is no longer gated at all. It is the path mobile users hit
constantly, and it is already covered by a 10-per-15-min per-IP rate
limit, a constant-time credential check, and TOTP 2FA. Registration and
password reset — the endpoints that actually attract bots — stay gated.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-30 17:22:03 +02:00
..
ai-endpoints-contract.spec.js test(e2e): +120 tests across 8 new specs; baseline fixes 2026-04-23 18:58:38 +02:00
auth-gated-smoke.spec.js feat(pe-guide): unified single-play + remove badges; fix(e2e): shared fixture + raised login limit 2026-04-22 22:57:11 +02:00
auth-screen.spec.js improve learning hub generation flow 2026-05-08 09:32:58 +02:00
bedside-smoke.spec.js fix(nav): move image lightbox to index.html so NRP + seizure pathways 2026-04-23 18:58:38 +02:00
chart-review-workflow.spec.js test(e2e): +120 tests across 8 new specs; baseline fixes 2026-04-23 18:58:38 +02:00
encounter-save-load.spec.js test(e2e): +120 tests across 8 new specs; baseline fixes 2026-04-23 18:58:38 +02:00
encounter-workflow.spec.js test(e2e): +120 tests across 8 new specs; baseline fixes 2026-04-23 18:58:38 +02:00
extensions-crud.spec.js test(e2e): +120 tests across 8 new specs; baseline fixes 2026-04-23 18:58:38 +02:00
hospitalcourse-workflow.spec.js test(e2e): +44 tests — sick visit, hospital course, auth screen, 2026-04-23 18:58:38 +02:00
learning-tab.spec.js test(e2e): +120 tests across 8 new specs; baseline fixes 2026-04-23 18:58:38 +02:00
model-selector.spec.js test(e2e): +44 tests — sick visit, hospital course, auth screen, 2026-04-23 18:58:38 +02:00
pe-guide-smoke.spec.js test(e2e): +120 tests across 8 new specs; baseline fixes 2026-04-23 18:58:38 +02:00
session-persistence.spec.js Fix Turnstile in the mobile app; drop it from login 2026-07-30 17:22:03 +02:00
settings-faq-dictation.spec.js test(e2e): +120 tests across 8 new specs; baseline fixes 2026-04-23 18:58:38 +02:00
sickvisit-workflow.spec.js test(e2e): +44 tests — sick visit, hospital course, auth screen, 2026-04-23 18:58:38 +02:00
soap-hospital-workflow.spec.js feat(ui-state): persist sub-pill selections across reload + sign-out 2026-04-23 18:58:38 +02:00
top-calculators.spec.js test(e2e): add 27 Playwright smoke tests for top-row calculator tabs 2026-04-20 23:19:50 +02:00
ui-state-persistence.spec.js feat(ui-state): persist sub-pill selections across reload + sign-out 2026-04-23 18:58:38 +02:00
vaxschedule-content.spec.js test(e2e): +120 tests across 8 new specs; baseline fixes 2026-04-23 18:58:38 +02:00
wellvisit-workflow.spec.js test(e2e): +44 tests — sick visit, hospital course, auth screen, 2026-04-23 18:58:38 +02:00