Bahasa IndonesiaIntegrasiPanduan Pengujian

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.
  • secretKey tidak 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, dan expiresIn.
  • widgetUrl yang dikembalikan dapat dibuka di tab browser maupun di dalam iframe.
  • Nilai expiresIn dihormati 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 partnerId salah mengembalikan 404 Partner not found or inactive.

Integrasi Widget & Alur Kandidat

  • widgetUrl ter-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 widgetUrl yang 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

  • secretKey production sudah diterima dari PsikologieHub.
  • secretKey disimpan via environment variable atau secret manager.
  • secretKey tidak ada di frontend, mobile app, atau repo publik.
  • Rencana rotasi secretKey sudah disiapkan.

Production Session Endpoint

  • Endpoint production dapat dihubungi dari backend partner.
  • Validasi signature sukses.
  • Response sukses berisi sessionToken, widgetUrl, dan expiresIn.
  • 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.
  • secretKey tidak terekspos via browser devtools.
  • Monitoring error API aktif.
  • Mekanisme timeout dan retry diterapkan di backend.
  • Access control HR/rekruiter diterapkan di sisi partner.