Panduan Pengujian
Sebelum naik ke production, verifikasi setiap item pada checklist di bawah pada environment development / staging.
Validasi HMAC Signature
- Signature dihasilkan via HMAC-SHA256 dengan canonical string
partnerId | user_id | email | name | company_id | candidate_ids_csv. - Output signature dalam format hexadecimal lowercase.
- Request dengan signature invalid mengembalikan 401 Invalid Signature.
-
secretKeytidak tersimpan di frontend, mobile, atau repo publik. - Generate signature hanya berjalan di backend server.
- Signature untuk Test Vector 1 cocok dengan nilai yang diharapkan.
- Signature untuk Test Vector 2 cocok dengan nilai yang diharapkan.
Session Endpoint
- Request body sesuai schema (
user,company,candidates,signature). - Response sukses mengembalikan
sessionToken,widgetUrl,partnerId, danexpiresIn. -
widgetUrlyang dikembalikan dapat dibuka di tab browser maupun di dalam iframe. - Nilai
expiresIndihormati oleh logic refresh backend. - Request dengan field kurang atau format salah mengembalikan 400 Bad Request atau 422 Validation Failed dengan payload error yang jelas.
- Request dengan
partnerIdsalah mengembalikan 404 Partner not found or inactive.
Integrasi Widget & Alur Kandidat
-
widgetUrlter-embed via<iframe>di aplikasi partner. - Widget terbuka tanpa login manual tambahan.
- Data user dan kandidat yang muncul di widget cocok dengan data yang dikirim saat Create Session.
- HR/rekruiter bisa mengakses dashboard dan memantau kandidat lewat widget.
- Kandidat bisa menjalankan assessment tanpa kendala.
- Widget hanya bisa diakses dari domain yang whitelisted.
- Session expired ditangani dengan membuat session baru dan refresh
iframe dengan
widgetUrlyang baru.
Penanganan Error
- 400 Bad Request ditangani tanpa crash aplikasi.
- 401 Unauthorized ditangani saat signature invalid atau session expired.
- 403 Forbidden ditangani saat domain partner tidak whitelisted.
- 404 Not Found ditangani dengan pesan yang ramah ke user.
- 500 Internal Server Error ditangani dengan fallback yang user-friendly.
- Timeout handling diimplementasikan saat API tidak respond dalam waktu wajar.
- Fallback UI ditampilkan saat iframe widget gagal load.
Checklist Go-to-Production
Verifikasi item di bawah sehari sebelum go-live ke production.
Manajemen Secret Key
-
secretKeyproduction sudah diterima dari PsikologieHub. -
secretKeydisimpan via environment variable atau secret manager. -
secretKeytidak ada di frontend, mobile app, atau repo publik. - Rencana rotasi
secretKeysudah disiapkan.
Production Session Endpoint
- Endpoint production dapat dihubungi dari backend partner.
- Validasi signature sukses.
- Response sukses berisi
sessionToken,widgetUrl, danexpiresIn. - Session expired tertangani dengan benar.
- Logging backend aktif untuk monitoring integrasi.
Widget iframe (Production)
- iframe load di environment production tanpa error console.
- Widget responsive pada resolusi desktop dan laptop.
- Content Security Policy (CSP) tidak block iframe.
Security & Monitoring
- Semua komunikasi API menggunakan HTTPS/TLS.
- Request API tercatat di backend log.
- Session token tidak disimpan di localStorage tanpa enkripsi tambahan.
-
secretKeytidak terekspos via browser devtools. - Monitoring error API aktif.
- Mekanisme timeout dan retry diterapkan di backend.
- Access control HR/rekruiter diterapkan di sisi partner.