Skip to content

Contract tests consumer-driven antara OpenSID (consumer) dan OpenDK (provider) #1673

Description

@analisopendesa

Implement consumer-side contract tests sehingga OpenSID CI memvalidasi request payloads terhadap OpenDK OpenAPI spec. Jika provider berubah incompatibly, CI consumer gagal sehingga meminimalkan breaking changes.

Ruang lingkup

  • Pilih pendekatan: OpenAPI validator (straightforward) atau Pact (consumer-driven contracts). Rekomendasi awal: validasi OpenSID request examples terhadap openapi/openapi.yaml (lebih cepat), lalu tambah Pact bila perlu.
  • Tambahkan job CI di OpenSID repo yang mem-fetch openapi/openapi.yaml (atau menggunakan spec committed di OpenDK) dan mem-validasi contoh request/responses.
  • Buat set contoh payloads & tests di OpenSID (contoh: create-data, update-data, auth header shapes).

Acceptance criteria (terukur)

  • OpenSID CI contract-test berjalan dan memvalidasi minimal 5 contoh request/responses untuk integrasi (auth key flow, data submission, error case).
  • Build gagal saat contoh request tidak sesuai spec.
  • Dokumentasi singkat di docs/integration-testing.md cara menjalankan contract tests lokal.

langkah spesifik :

  • Pilih dan setup tool (openapi-validator-cli / swagger-cli / pact).
  • Buat contoh request JSON untuk semua skenario: success, validation error, auth error.
  • Tambah test runner di OpenSID (phpunit/pest or node scripts) yang memvalidasi examples vs openapi spec.
  • Integrasi ke CI (push job yang menjalankan contract tests).
  • Run dan perbaiki kontrak bila diperlukan (koordinasi dengan OpenDK jika spec mismatch).

Butuh Issue #1674 selesai (openapi spec tersedia).

Metadata

Metadata

Assignees

Labels

Tingkat: T3Empat hingga lima hari kerja (satu sprint)Tipe: TeknisPerubahan teknis tanpa merubah tampilan/fungsionalitas

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions