# ts-mitra-A-05 — §A.1 phone-format normalization
# Spec ref: requirement/flow_mitra.mermaid.md §A.1
#
# Indonesian users type phone numbers in many shapes. The login screen's
# _subscriberDigits() in login_screen.dart must normalize ALL of these to
# the same +628200000501 (subscriber digits = 8200000501):
#
#   8200000501        — subscriber only
#   08200000501       — local format with leading 0
#   628200000501      — country code without +
#   +628200000501     — full E.164
#   0628200000501     — typo combo with leading 0 before country code
#
# Strategy: seed ONE mitra at +628200000501. For each variant, do a fresh
# launchApp clearState, type the variant, tap "kirim kode", and assert the
# S3b screen shows the correctly normalized phone "+628200000501". A fresh
# launch per variant is more reliable than back-navigation across maestro
# / IME / keyboard state.
appId: com.mybestie.mitra
env:
  TEST_PHONE: "+628200000501"
  MITRA_DISPLAY_NAME: "Maestro Variants"
  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}

# ── Variant 1: 8xxxxxxxxx (subscriber only, 10 digits) ──
- 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
- tapOn:
    point: "60%, 47%"
- inputText: "8200000501"
- tapOn: "(?s).*kirim kode.*"
- extendedWaitUntil:
    visible:
      text: "(?s).*\\+628200000501.*"
    timeout: 10000

# ── Variant 2: 08xxxxxxxxx (local format with leading 0) ──
- 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
- tapOn:
    point: "60%, 47%"
- inputText: "08200000501"
- tapOn: "(?s).*kirim kode.*"
- extendedWaitUntil:
    visible:
      text: "(?s).*\\+628200000501.*"
    timeout: 10000

# ── Variant 3: 628xxxxxxxxx (country code without +) ──
- 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
- tapOn:
    point: "60%, 47%"
- inputText: "628200000501"
- tapOn: "(?s).*kirim kode.*"
- extendedWaitUntil:
    visible:
      text: "(?s).*\\+628200000501.*"
    timeout: 10000

# ── Variant 4: +628xxxxxxxxx (full E.164 with +) ──
- 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
- tapOn:
    point: "60%, 47%"
- inputText: "+628200000501"
- tapOn: "(?s).*kirim kode.*"
- extendedWaitUntil:
    visible:
      text: "(?s).*\\+628200000501.*"
    timeout: 10000

# ── Variant 5: 0628xxxxxxxxx (typo combo) ──
- 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
- tapOn:
    point: "60%, 47%"
- inputText: "0628200000501"
- tapOn: "(?s).*kirim kode.*"
- extendedWaitUntil:
    visible:
      text: "(?s).*\\+628200000501.*"
    timeout: 10000
