0/12 selesai APK

09 Multi-peran

Menguji satu cerita yang melibatkan pelanggan dan pemilik.

45 menit · 3 konsep · 1 misi

Konsep inti

  1. 09.1

    Ganti peran

    launchApp ulang menghapus data in-memory.

    - runFlow: subflows/logout_customer.yaml
    - runFlow:
        file: subflows/relogin.yaml
  2. 09.2

    Kondisi

    Jalankan langkah hanya bila perlu.

    - runFlow:
        when:
          visible:
            id: login_screen
        file: subflows/login.yaml
  3. 09.3

    Satu cerita

    Pelanggan pesan → pemilik timbang → pelanggan bayar.

    # 1 pemilik  2 pelanggan  3 bayar
Layar owner_orders_screen di app Laundry Kiloan
owner_orders_screen

Praktik di playground

  1. Pemilik mencatat pesanan walk-in
  2. Pelanggan membuka pesanannya
  3. Pelanggan membayar via VA

Misi

Catat walk-in sebagai pemilik, lalu bayar transfer VA sebagai Budi.

Lihat kunci jawabankunci/m09_multi_role.yamlLulus di emulator
kunci/m09_multi_role.yaml
- launchApp:
    clearState: true
- extendedWaitUntil:
    visible:
      id: login_screen
    timeout: 15000
- runFlow:
    file: subflows/relogin.yaml
    env:
      PHONE: "081100001111"
      PASSWORD: pemilik123
      HOME_ID: owner_home_screen
- tapOn:
    id: owner_walkin_button
- assertVisible:
    id: owner_walkin_screen

# Validasi: nomor wajib benar
- scrollUntilVisible:
    element:
      id: owner_walkin_save_button
    direction: DOWN
- tapOn:
    id: owner_walkin_save_button
- assertVisible:
    id: owner_walkin_error_text
    text: "Nomor WhatsApp tidak valid"

# Nomor terdaftar -> nama otomatis
- scrollUntilVisible:
    element:
      id: owner_walkin_phone_input
    direction: UP
- tapOn:
    id: owner_walkin_phone_input
- inputText: "081211112222"
- hideKeyboard
- assertVisible:
    id: owner_walkin_customer_hint
    text: "Pelanggan terdaftar: Budi Santoso"
- scrollUntilVisible:
    element:
      id: owner_walkin_weight_input
    direction: DOWN
- tapOn:
    id: owner_walkin_service_setrika
- tapOn:
    id: owner_walkin_weight_input
- eraseText: 6
- inputText: "4"
- hideKeyboard
- scrollUntilVisible:
    element:
      id: owner_walkin_save_button
    direction: DOWN
- assertVisible:
    id: owner_walkin_total
    text: "Rp20.000"
- tapOn:
    id: owner_walkin_pay_nanti
- tapOn:
    id: owner_walkin_save_button
- assertVisible:
    id: snackbar_message
    text: "Pesanan 0004 dibuat untuk Budi Santoso"
# Walk-in langsung dapat struk (cetak / kirim WA), lalu tutup
- assertVisible:
    id: owner_receipt_screen
- assertVisible:
    id: owner_receipt_total
    text: "Rp20.000"
- assertVisible:
    id: owner_receipt_status
    text: "BELUM LUNAS"
- tapOn:
    id: owner_receipt_print_button
- tapOn:
    id: owner_receipt_done_button
- tapOn:
    id: owner_nav_orders
- assertVisible:
    id: owner_order_card_status_LDR-0004
    text: "DITERIMA"

# Budi melihat pesanan walk-in & bayar transfer BRI
- runFlow: subflows/logout_owner.yaml
- runFlow:
    file: subflows/relogin.yaml
    env:
      PHONE: "081211112222"
      PASSWORD: laundry123
      HOME_ID: home_screen
- tapOn:
    id: home_active_order_card
- assertVisible:
    id: order_detail_total
    text: "Rp20.000"
- tapOn:
    id: order_pay_button
- tapOn:
    id: pay_method_transfer
- tapOn:
    id: pay_continue_button
- assertVisible:
    id: pay_transfer_screen
- tapOn:
    id: pay_bank_bri
- assertVisible:
    id: pay_va_number
    text: "7712 0812 1111 2222"
- tapOn:
    id: pay_va_copy_button
- assertVisible:
    id: snackbar_message
    text: "Nomor VA disalin"
- tapOn:
    id: pay_check_status_button
- assertVisible:
    id: pay_receipt_method
    text: "Transfer BRI"
- tapOn:
    id: pay_done_button
- assertVisible:
    id: order_detail_payment
    text: "Lunas, Transfer"
Unduh file

Flow yang bergantung pada flow lain berubah hasil saat urutan berubah.