# ts-mitra-A-10 — §A.3 60s resend cooldown timer on S3b # Spec ref: requirement/flow_mitra.mermaid.md §A.3 # # After arriving on S3b the local timer (otp_screen.dart::_startCooldown, # 60s default) keeps the resend tap disabled. The label cycles # "kirim ulang dalam Ns" → "kirim ulang kode" once the cooldown reaches 0. # # What we test (deterministically, without waiting 60s in CI): # 1. On first land, the label reads "kirim ulang dalam Ns" (disabled state) # 2. The label is NOT "kirim ulang kode" yet # # The 60-second wait + enabled-tap + resend-fires-new-request branch is # documented but skipped — a `waitForAnimationToEnd: { timeout: 65000 }` # wedge would block the CI for a full minute on every run. Reasonable trade: # the post-resend behavior is exercised by ts-mitra-A-06's full back-and- # retry path, which uses reset_phone.js (the server-side equivalent of "the # 60s passed and the cooldown is gone"). appId: com.mybestie.mitra env: TEST_PHONE: "+628200000a10" MITRA_DISPLAY_NAME: "Maestro Cooldown" BACKEND_INTERNAL_URL: http://localhost:3001 --- - runScript: file: ../scripts/seed_mitra.js env: TEST_PHONE: ${TEST_PHONE} MITRA_DISPLAY_NAME: ${MITRA_DISPLAY_NAME} IS_ACTIVE: "true" BACKEND_INTERNAL_URL: ${BACKEND_INTERNAL_URL} - runScript: file: ../scripts/reset_phone.js env: TEST_PHONE: ${TEST_PHONE} BACKEND_INTERNAL_URL: ${BACKEND_INTERNAL_URL} - launchApp: clearState: true - extendedWaitUntil: visible: text: "(?s).*Halo Mitra Bestie.*" timeout: 10000 # S3a → S3b - tapOn: point: "50%, 53%" - inputText: "8200000a10" - tapOn: "(?s).*kirim kode.*" - extendedWaitUntil: visible: text: "(?s).*masukin 6 digit kode.*" timeout: 10000 # Cooldown label is visible immediately on mount — "kirim ulang dalam Ns". # Tolerate either digit count (60s → 1s) by matching the "dalam" word + the # trailing 's'. - extendedWaitUntil: visible: text: "(?s).*kirim ulang dalam.*s.*" timeout: 5000 # The enabled label "kirim ulang kode" (no "dalam") must NOT be visible. - assertNotVisible: "(?s).*kirim ulang kode.*" - takeScreenshot: ts-mitra-A-10-cooldown-disabled