think
16px
820px

Blackbox Testing — Intake OCR (Apostille & Legalisasi)

  • Domain: Apostille & Legalisasi
  • Fitur: Intake OCR (Unggah Permohonan)
  • Role/aktor: umum (pemohon)
  • Tanggal uji: 2026-08-19
  • Penguji (sesi): Supervisor Apostille
  • Build/commit: 63c40a17 (dev/4)

1. Ringkasan fitur

Halaman intake adalah langkah pertama alur Apostille/Legalisasi. Pemohon memilih negara tujuan, dan layanan (Apostille atau Legalisasi) ditentukan otomatis dari keanggotaan negara itu pada Konvensi Apostille (Den Haag). Pemohon bisa memilih Jalur Reguler atau Jalur Percepatan (khusus Apostille, dengan Kode Voucher), lalu mengunggah SEMUA berkas dalam satu tempat (KTP, surat kuasa bila mewakilkan, dan dokumen yang akan di-apostille/legalisasi). Saat diajukan, sistem membuat submission, menjalankan klasifikasi (fase 1), lalu mengarahkan pemohon ke papan klasifikasi.

2. Full workflow

2.1 Diagram state

stateDiagram-v2 [*] --> CREATED: submit-form CREATED --> EXTRACTING: fase 1 (klasifikasi) EXTRACTING --> VALIDATING VALIDATING --> AWAITING_CLASSIFICATION: identitas dipilah, dokumen di papan AWAITING_CLASSIFICATION --> [*]: lanjut ke Klasifikasi

2.2 Sequence (aktor - sistem)

sequenceDiagram actor U as umum participant FE as Frontend (ApostilleUploadPage) participant BE as Backend (/api/apostille) participant OCR as OCR/LLM U->>FE: Pilih negara tujuan FE->>FE: serviceForCountry -> Apostille / Legalisasi U->>FE: (opsi) Jalur Percepatan + Kode Voucher U->>FE: Unggah berkas (KTP + surat kuasa + dokumen) U->>FE: Ajukan Permohonan FE->>BE: POST /submit-form (multipart) BE->>BE: gate percepatan (window + kuota) bila PERCEPATAN BE->>OCR: fase 1 klasifikasi (fire-and-forget) BE-->>FE: { submissionId } FE->>U: navigasi ke /permohonan/:id/klasifikasi

2.3 Peta route & UI

Langkah Route Komponen Elemen interaktif utama Selector
Pilih negara /apostille ApostilleUploadPage SearchableSelect negara placeholder "Pilih atau ketik negara tujuan…"
Pilih jalur /apostille ApostilleJalurSelector tombol Reguler / Percepatan, input voucher [data-testid="fasttrack-card"], aria-pressed
Unggah berkas /apostille ApostilleDocumentsCard dropzone + hidden input[type=file], Unduh Template input[type=file]
Ajukan /apostille ApostilleUploadPage tombol Ajukan Permohonan teks "Ajukan Permohonan"
Progres unggah /apostille ApostilleUploadProgress bar progres 0-99% -

3. Prasyarat & data uji

ID data Tipe Berkas Deskripsi Ekspektasi sistem
D-POS-30 Positive apostille_elektronik_nosk/ (KTP jpeg + dokumen jpeg) Apostille diri sendiri, elektronik submit-form 200, sampai AWAITING_CLASSIFICATION
D-POS-31 Positive negara Apostille (US) via UI Layanan Apostille terderivasi badge "Layanan: Apostille"
D-POS-32 Positive negara non-Hague (MY) via UI Layanan Legalisasi terderivasi badge "Layanan: Legalisasi"
D-NEG-30 Negative tanpa berkas Ajukan tanpa file 400 NO_DOCS
D-NEG-31 Negative PERCEPATAN di luar jam 06-11 WIB Fast-track window tertutup 409 FASTTRACK_WINDOW

4. Matriks skenario uji

ID Tipe Lapisan Langkah ringkas Ekspektasi Hasil aktual Status Bukti
TC-INT-01 Positive UI Pilih US, cek badge; pindah ke MY, cek badge + fast-track tidak tersedia Badge Apostille lalu Legalisasi; fast-track tidak selectable Sesuai PASS intake-service-derive.png
TC-INT-02 Positive UI Pilih negara, unggah 2 berkas, Ajukan Navigasi ke /klasifikasi Sesuai PASS intake-submitted-to-board.png
TC-INT-03 Positive UI Sebelum tambah berkas, cek tombol Ajukan Tombol disabled Sesuai PASS apostille-smoke-upload.png
TC-INT-04 Positive API POST /submit-form (Apostille, 2 berkas) 200 + submissionId, status AWAITING_CLASSIFICATION Sesuai PASS intake.spec
TC-INT-05 Negative API POST /submit-form tanpa docFile 400 NO_DOCS Sesuai PASS intake.spec
TC-INT-06 Negative API POST /submit-form jalur=PERCEPATAN di luar jam 409 FASTTRACK_WINDOW Sesuai PASS intake.spec
TC-INT-07 Positive API Buka window via app-settings lokal, PERCEPATAN 200, jalur PERCEPATAN + slaDeadline terisi Sesuai PASS intake.spec

5. Cakupan UI (semua yang diakses user)

Route/Elemen Diuji? Perilaku benar? Catatan
SearchableSelect negara Ya Ya Ketik untuk memfilter, klik item
Badge layanan (Apostille/Legalisasi) Ya Ya Terderivasi dari negara
Tombol Jalur Reguler (aria-pressed) Ya Ya Default terpilih
Kartu Jalur Percepatan Ya Ya Tidak selectable di luar jam / di Legalisasi
Input Kode Voucher Sebagian - Muncul hanya saat Percepatan terpilih (butuh window terbuka; teruji via override lokal)
Dropzone unggah + hidden input Ya Ya Batch multi-file
Unduh Template (surat kuasa) Tidak - Link statis /templates/format_surat_kuasa.docx
Tombol Ajukan Permohonan Ya Ya Disabled sampai negara + berkas ada
Panel progres unggah Sebagian Ya Terlihat singkat saat submit

6. Temuan bug & perbaikan

ID bug Severity Ringkas Reproduksi Ekspektasi Aktual Screenshot Rekomendasi perbaikan
- - Tidak ada bug pada fitur intake - - - - -

Catatan non-bug: beberapa elemen kritikal tidak punya data-testid stabil (SearchableSelect negara, input voucher, dropzone). Hanya kartu Percepatan dan badge progres pernyataan yang bertestid. Rekomendasi: tambah data-testid pada picker negara, input voucher, dan dropzone untuk stabilitas Playwright.

7. Ringkasan & rekomendasi

  • Total skenario: 7 (PASS 7 / FAIL 0)
  • Cakupan UI: 8/9 elemen teruji (Unduh Template tidak diklik)
  • Bug: High 0, Med 0, Low 0
  • Rekomendasi prioritas: tambah selector stabil untuk elemen intake.
  • Gap/keterbatasan: Jendela Jalur Percepatan hanya buka 06.00-11.00 WIB. Pengujian dilakukan sore hari, jadi jalur percepatan happy-path diuji dengan membuka window sementara lewat app-settings LOKAL dev_4 (disetujui user, tanpa restart, dikembalikan setelah uji). Verifikasi pembayaran nyata terhadap SIMPADHU tidak dapat direproduksi (bypass pembayaran dev aktif -> status BYPASSED); ditandai "butuh data/lingkungan".