Files
api-wipay/TESTING_GUIDE.md

5.3 KiB

Panduan Testing & Verifikasi API

Cara Testing API

1. Test dengan cURL (Command Line)

Test Health Check

curl http://localhost:8000/health

Test Login

curl -X POST http://localhost:8000/timo/login \
  -H "Content-Type: application/json" \
  -d '{"username":"testuser","password":"testpass","fcm_token":"test_token"}'

Test Cek SL

curl -X POST http://localhost:8000/timo/cek_sl \
  -H "Content-Type: application/json" \
  -d '{"token":"1","no_sl":"123456"}'

Test Request Pembayaran

curl -X POST http://localhost:8000/timo/request_pembayaran \
  -H "Content-Type: application/json" \
  -d '{"token":"1","no_sl":"123456","nama_bank":"BCA","no_rek":"1234567890"}'

2. Test dengan Postman

  1. Import collection (jika ada)
  2. Atau buat request manual:
    • Method: POST
    • URL: http://localhost:8000/timo/login
    • Headers: Content-Type: application/json
    • Body (raw JSON):
      {
        "username": "testuser",
        "password": "testpass"
      }
      

3. Test dengan Browser (untuk GET request)

Buka browser dan akses:

  • http://localhost:8000/health
  • http://localhost:8000/timo/tagihan/123456

4. Bandingkan Response dengan API Lama

Cara Manual:

  1. Test endpoint di API lama: http://timo.wipay.id/timo/login
  2. Test endpoint di API baru: http://localhost:8000/timo/login
  3. Bandingkan response JSON-nya

Format Response yang Harus Sama:

{
  "status": 200,
  "pesan": "...",
  "data": {...}
}

Checklist Verifikasi

Format Response

  • Status code sama (200, 300, 404)
  • Field status ada dan sama
  • Field pesan ada dan sama
  • Field data ada (jika ada di API lama)
  • Field khusus (seperti user, data_sl, wipay) ada di root level

Data Response

  • Struktur data sama
  • Nama field sama
  • Tipe data sama (string, number, array, object)
  • Urutan field (jika penting)

Error Handling

  • Error message sama
  • Status code error sama
  • Format error response sama

Endpoint yang Perlu Di-test

Authentication

  • POST /timo/daftar
  • POST /timo/login
  • POST /timo/login_token
  • POST /timo/update_akun
  • POST /timo/update_password

SL Management

  • POST /timo/cek_sl
  • POST /timo/confirm_sl
  • POST /timo/hapus_sl

Tagihan

  • GET /timo/history/{sl}/{periode}
  • GET /timo/tagihan/{sl}

Pembayaran

  • POST /timo/request_pembayaran
  • POST /timo/cek_pembayaran
  • POST /timo/cek_transfer
  • POST /timo/batal_pembayaran
  • POST /timo/confirm_pembayaran
  • POST /timo/history_bayar

Laporan

  • POST /timo/jenis_laporan
  • POST /timo/history_gangguan

WIPAY

  • POST /timo/cek_wipay

Reset Password

  • POST /timo/buat_kode
  • POST /timo/cek_kode
  • POST /timo/reset_kode

Upload

  • POST /timo/upload_catat_meter
  • POST /timo/upload_pp
  • POST /timo/hapus_pp
  • POST /timo/upload_gangguan
  • POST /timo/upload_pasang_baru
  • POST /timo/upload_bukti_transfer
  • POST /timo/upload_baca_mandiri

Lainnya

  • POST /timo/promo
  • POST /timo/riwayat_pasang
  • POST /timo/jadwal_catat_meter
  • POST /timo/request_order_baca_mandiri

Tips Testing

  1. Gunakan Data Real: Test dengan data yang sama di API lama dan baru
  2. Test Error Cases: Test dengan data invalid, token salah, dll
  3. Test Success Cases: Test dengan data valid
  4. Bandingkan Side-by-Side: Buka 2 terminal/window untuk bandingkan response
  5. Gunakan JSON Formatter: Format JSON response untuk mudah dibaca
  6. Test dengan Aplikasi Mobile: Jika memungkinkan, test langsung dengan aplikasi mobile

Tools yang Bisa Digunakan

  1. cURL - Command line tool
  2. Postman - GUI tool untuk testing API
  3. Insomnia - Alternative untuk Postman
  4. HTTPie - User-friendly command line HTTP client
  5. Browser DevTools - Untuk test GET request
  6. jq - Untuk format JSON di terminal: curl ... | jq

Contoh Test Script (Bash)

#!/bin/bash

BASE_URL="http://localhost:8000"
TOKEN="your_token_here"

echo "Testing Health Check..."
curl -s "$BASE_URL/health"
echo -e "\n\n"

echo "Testing Login..."
curl -s -X POST "$BASE_URL/timo/login" \
  -H "Content-Type: application/json" \
  -d '{"username":"test","password":"test"}' | jq
echo -e "\n\n"

echo "Testing Cek WIPAY..."
curl -s -X POST "$BASE_URL/timo/cek_wipay" \
  -H "Content-Type: application/json" \
  -d "{\"token\":\"$TOKEN\"}" | jq
echo -e "\n\n"

Catatan Penting

  1. Database: Pastikan database yang digunakan sama dengan API lama
  2. Environment: Pastikan environment variables sudah benar (.env)
  3. File Upload: Test upload dengan file real (base64 encoded)
  4. External API: Pastikan koneksi ke external API (timo.tirtaintan.co.id) berfungsi
  5. CORS: Pastikan CORS sudah di-enable jika test dari browser

Troubleshooting

Response berbeda dengan API lama?

  1. Cek format response di RESPONSE_COMPARISON.md
  2. Cek kode di controller yang sesuai
  3. Cek query database apakah sama
  4. Cek logic bisnis apakah sama

Error 500?

  1. Cek error log di logs/ atau PHP error log
  2. Cek database connection
  3. Cek apakah semua dependency sudah terinstall

Response kosong?

  1. Cek apakah data ada di database
  2. Cek query database
  3. Cek apakah ada error di log