Blackbox Testing — Verifier Workspace (Apostille & Legalisasi)
- Domain: Apostille & Legalisasi
- Fitur: Verifier Workspace (Panel Keputusan Verifikator)
- Role/aktor: verifikator_apostille
- Tanggal uji: 2026-08-19
- Penguji (sesi): Supervisor Apostille
- Build/commit: 63c40a17 (dev/4)
1. Ringkasan fitur
Setelah pemohon mengirim (IN_VERIFICATION), verifikator meninjau permohonan pada halaman review dan mengambil keputusan APPROVE, REVISE (Minta Perbaikan), atau REJECT (Tolak). Setiap keputusan wajib disertai catatan. APPROVE mensyaratkan verifikator mencentang konfirmasi perbandingan tanda tangan dan memberi verdict tanda tangan (MATCH) untuk tiap pejabat penandatangan. APPROVE menyelesaikan permohonan (COMPLETED), REVISE mengembalikan ke pemohon (READY), REJECT menutup permohonan (COMPLETED, ditolak). Panel juga menampilkan AI advisory (deterministik dari hasil validasi) dan info fast-track/SLA.
2. Full workflow
2.1 Diagram state
stateDiagram-v2
[*] --> IN_VERIFICATION: pemohon submit
IN_VERIFICATION --> COMPLETED: APPROVE / REJECT
IN_VERIFICATION --> READY: REVISE (dikembalikan)
COMPLETED --> [*]
2.2 Sequence (aktor - sistem)
sequenceDiagram
actor V as verifikator_apostille
participant FE as ApostilleReviewPage
participant BE as Backend
V->>FE: Buka review (IN_VERIFICATION)
FE->>BE: GET /api/submissions/:id/review
BE-->>FE: dokumen + signer + AI advisory
V->>FE: (APPROVE) tandai verdict tanda tangan per pejabat
FE->>BE: POST /:id/documents/:docId/signature-verdict { MATCH }
V->>FE: Isi catatan + centang konfirmasi TTD + Setujui
FE->>BE: POST /:id/decide { APPROVE, notes, signatureConfirmed }
BE->>BE: gate notes + signatureConfirmed + signerConfirmationGate + FAIL
BE-->>FE: COMPLETED
2.3 Peta route & UI
| Langkah |
Route |
Komponen |
Elemen |
Selector |
| Review verifikator |
/apostille/permohonan/:id/review |
ApostilleReviewPage (mode verifikator) |
panel keputusan |
- |
| AI advisory |
idem |
AiAdvisoryPanel |
ringkasan otomatis |
- |
| Keputusan |
idem |
ApostilleDecisionPanel |
tombol Setujui/Minta Perbaikan/Tolak, textarea catatan, checkbox TTD |
teks tombol, placeholder "Catatan keputusan (wajib diisi)..." |
| Bandingkan TTD |
idem |
SignatureCompareModal |
navigasi spesimen |
aria-label="Spesimen sebelumnya/berikutnya" |
| Verdict TTD |
POST /:id/documents/:docId/signature-verdict |
- |
MATCH/MISMATCH |
- |
3. Prasyarat & data uji
| ID data |
Tipe |
Berkas |
Deskripsi |
Ekspektasi sistem |
| D-POS-30 |
Positive |
apostille_elektronik_nosk sampai IN_VERIFICATION |
Permohonan siap diputuskan |
Panel keputusan tampil |
| D-NEG-40 |
Negative |
decision selain APPROVE/REJECT/REVISE |
Keputusan tidak valid |
400 BAD_DECISION |
| D-NEG-41 |
Negative |
catatan kosong |
Tanpa catatan |
400 NOTES_REQUIRED |
| D-NEG-42 |
Negative |
APPROVE tanpa centang TTD |
signatureConfirmed != true |
400 SIGNATURE_NOT_CONFIRMED |
| D-NEG-43 |
Negative |
APPROVE tanpa verdict signer |
signer belum diberi verdict |
400 SIGNER_NOT_CONFIRMED |
| D-NEG-44 |
Negative |
decide di status non-IN_VERIFICATION |
READY/COMPLETED |
409 WRONG_STATUS / SUBMISSION_LOCKED |
4. Matriks skenario uji
| ID |
Tipe |
Lapisan |
Langkah ringkas |
Ekspektasi |
Hasil aktual |
Status |
Bukti |
| TC-VER-01 |
Positive |
UI |
Buka review verifikator, panel keputusan render |
Setujui/Minta Perbaikan/Tolak + catatan tampil; Setujui disabled |
Sesuai |
PASS |
verifier-decision-panel.png |
| TC-VER-02 |
Negative |
API |
decide "MAYBE" |
400 BAD_DECISION |
Sesuai |
PASS |
verifier.spec |
| TC-VER-03 |
Negative |
API |
APPROVE catatan kosong |
400 NOTES_REQUIRED |
Sesuai |
PASS |
verifier.spec |
| TC-VER-04 |
Negative |
API |
APPROVE tanpa signatureConfirmed |
400 SIGNATURE_NOT_CONFIRMED |
Sesuai |
PASS |
verifier.spec |
| TC-VER-05 |
Negative |
API |
decide REVISE saat status READY |
409 WRONG_STATUS |
Sesuai |
PASS |
curl live |
| TC-VER-06 |
Positive |
API |
Set verdict MATCH lalu APPROVE |
200 COMPLETED/APPROVE |
Sesuai |
PASS |
verifier.spec + live c49fc0a2 |
| TC-VER-07 |
Negative |
API |
decide lagi setelah COMPLETED |
ditolak (SUBMISSION_LOCKED) |
Sesuai |
PASS |
verifier.spec |
5. Cakupan UI (semua yang diakses user)
| Route/Elemen |
Diuji? |
Perilaku benar? |
Catatan |
| Panel keputusan (Setujui/Minta Perbaikan/Tolak) |
Ya |
Ya |
Render + state disabled Setujui |
| Textarea catatan keputusan |
Ya |
Ya |
Wajib diisi |
| Checkbox konfirmasi perbandingan TTD |
Ya (render) |
Ya |
Gate APPROVE |
| AI advisory panel |
Sebagian |
- |
Tampil pada review; isi deterministik dari validasi |
| SignatureCompareModal (spesimen) |
Tidak |
- |
Butuh spesimen; tidak ada file spesimen di lingkungan uji |
| Verdict tanda tangan (MATCH/MISMATCH) |
Ya (API) |
Ya |
Wajib untuk APPROVE |
6. Temuan bug & perbaikan
| ID bug |
Severity |
Ringkas |
Reproduksi |
Ekspektasi |
Aktual |
Screenshot |
Rekomendasi perbaikan |
| OBS-VER-01 |
Info |
Dokumen ELEKTRONIK yang punya pejabat ter-OCR tetap butuh verdict TTD saat APPROVE |
Ajukan dokumen elektronik dengan nama pejabat terbaca, lalu APPROVE |
(kebijakan) |
Gate SIGNER_NOT_CONFIRMED muncul; verifikator harus set verdict MATCH |
- |
Konfirmasi apakah dokumen elektronik (TTE) semestinya dikecualikan dari verdict TTD manual, atau memang wajib. Bila TTE cukup diverifikasi elektronik, pertimbangkan mengecualikan tipe ELEKTRONIK dari signerConfirmationGate |
Tidak ada bug fungsional. OBS-VER-01 adalah pertanyaan kebijakan, bukan cacat.
7. Ringkasan & rekomendasi
- Total skenario: 7 (PASS 7 / FAIL 0)
- Cakupan UI: panel keputusan + catatan + checkbox teruji; SignatureCompareModal tidak (tidak ada spesimen)
- Bug: High 0, Med 0, Low 0 (1 observasi kebijakan)
- Rekomendasi prioritas: klarifikasi kebijakan verdict TTD untuk dokumen elektronik (OBS-VER-01).
- Gap/keterbatasan: Perbandingan tanda tangan terhadap spesimen tidak dapat diuji karena tidak ada file spesimen dan
signatureVerifyConfigured=false, specimenMinioConfigured=false di lingkungan ini ("butuh data/lingkungan"). AI advisory hanya diamati sekilas.