From bdcba7509c522b053637c6e385e2380148132287 Mon Sep 17 00:00:00 2001 From: lukman48 Date: Fri, 12 Jun 2026 11:25:37 +0700 Subject: [PATCH] feat: add smoke tests for Profil Kependudukan menu - Add Pest smoke tests for 6 submenus: Penduduk, Kesehatan, Pendidikan, Ketenagakerjaan, Penerima Bantuan, Kelembagaan - Add data-testid attributes to blade views for test selectors - Add MSW fixtures for new API endpoints - Register new API routes in MswSetup Issue: #1057 --- resources/views/bantuan/index.blade.php | 10 +- .../excel-download-button.blade.php | 2 +- .../views/components/print-button.blade.php | 2 +- .../data_pokok/kesehatan/index.blade.php | 10 +- .../ketenagakerjaan/index.blade.php | 10 +- .../data_pokok/pendidikan/index.blade.php | 10 +- resources/views/lembaga/index.blade.php | 6 +- .../views/penduduk/filter_form.blade.php | 2 +- resources/views/penduduk/index.blade.php | 8 +- tests/Browser/MswSetup.php | 6 + tests/Browser/SmokeProfilKependudukanTest.php | 273 ++++++++++++++++++ tests/Browser/fixtures/data-bantuan.json | 50 ++++ tests/Browser/fixtures/data-kesehatan.json | 53 ++++ .../fixtures/data-ketenagakerjaan.json | 44 +++ tests/Browser/fixtures/data-lembaga.json | 44 +++ tests/Browser/fixtures/data-pendidikan.json | 50 ++++ tests/Browser/fixtures/data-penduduk.json | 122 ++++++++ 17 files changed, 672 insertions(+), 30 deletions(-) create mode 100644 tests/Browser/SmokeProfilKependudukanTest.php create mode 100644 tests/Browser/fixtures/data-bantuan.json create mode 100644 tests/Browser/fixtures/data-kesehatan.json create mode 100644 tests/Browser/fixtures/data-ketenagakerjaan.json create mode 100644 tests/Browser/fixtures/data-lembaga.json create mode 100644 tests/Browser/fixtures/data-pendidikan.json create mode 100644 tests/Browser/fixtures/data-penduduk.json diff --git a/resources/views/bantuan/index.blade.php b/resources/views/bantuan/index.blade.php index 4466f081..892cc958 100644 --- a/resources/views/bantuan/index.blade.php +++ b/resources/views/bantuan/index.blade.php @@ -17,10 +17,10 @@
- @@ -64,7 +64,7 @@ class="fas fa-ban">
-
@@ -76,7 +76,7 @@ class="fas fa-search">
- +
@@ -158,7 +158,7 @@ className: 'text-nowrap', { data: function(data) { return ` - + `; diff --git a/resources/views/components/excel-download-button.blade.php b/resources/views/components/excel-download-button.blade.php index b687a1ab..d374b134 100644 --- a/resources/views/components/excel-download-button.blade.php +++ b/resources/views/components/excel-download-button.blade.php @@ -16,7 +16,7 @@ diff --git a/resources/views/components/print-button.blade.php b/resources/views/components/print-button.blade.php index fb3c72fd..c6589c9e 100644 --- a/resources/views/components/print-button.blade.php +++ b/resources/views/components/print-button.blade.php @@ -16,7 +16,7 @@ diff --git a/resources/views/data_pokok/kesehatan/index.blade.php b/resources/views/data_pokok/kesehatan/index.blade.php index 60fa0f5c..027200c3 100644 --- a/resources/views/data_pokok/kesehatan/index.blade.php +++ b/resources/views/data_pokok/kesehatan/index.blade.php @@ -13,11 +13,11 @@
-
Statistik Golongan Darah
+
Statistik Golongan Darah
- +

@@ -26,11 +26,11 @@
-
Statistik Status Gizi Balita
+
Statistik Status Gizi Balita
- +

@@ -52,7 +52,7 @@
-
No
+
diff --git a/resources/views/data_pokok/ketenagakerjaan/index.blade.php b/resources/views/data_pokok/ketenagakerjaan/index.blade.php index e410b6ed..f1c25e1d 100644 --- a/resources/views/data_pokok/ketenagakerjaan/index.blade.php +++ b/resources/views/data_pokok/ketenagakerjaan/index.blade.php @@ -13,11 +13,11 @@
-
Statistik Jumlah Penghasilan
+
Statistik Jumlah Penghasilan
- +

@@ -26,11 +26,11 @@
-
Statistik Pelatihan
+
Statistik Pelatihan
- +

@@ -53,7 +53,7 @@
-
No
+
diff --git a/resources/views/data_pokok/pendidikan/index.blade.php b/resources/views/data_pokok/pendidikan/index.blade.php index ce7a7d98..850676f1 100644 --- a/resources/views/data_pokok/pendidikan/index.blade.php +++ b/resources/views/data_pokok/pendidikan/index.blade.php @@ -13,11 +13,11 @@
-
Statistik Partisipasi Sekolah
+
Statistik Partisipasi Sekolah
- +

@@ -26,11 +26,11 @@
-
Statistik Ijazah Tertinggi
+
Statistik Ijazah Tertinggi
- +

@@ -52,7 +52,7 @@
-
No
+
diff --git a/resources/views/lembaga/index.blade.php b/resources/views/lembaga/index.blade.php index fe082e42..9dca6c9d 100644 --- a/resources/views/lembaga/index.blade.php +++ b/resources/views/lembaga/index.blade.php @@ -23,7 +23,7 @@
@@ -61,7 +61,7 @@ class="fas fa-ban">
-
@@ -74,7 +74,7 @@ class="fas fa-search">
-
No
+
diff --git a/resources/views/penduduk/filter_form.blade.php b/resources/views/penduduk/filter_form.blade.php index aae4afa0..208c4357 100644 --- a/resources/views/penduduk/filter_form.blade.php +++ b/resources/views/penduduk/filter_form.blade.php @@ -315,7 +315,7 @@ class="fas fa-ban">
-
diff --git a/resources/views/penduduk/index.blade.php b/resources/views/penduduk/index.blade.php index e446f736..a7d3e360 100644 --- a/resources/views/penduduk/index.blade.php +++ b/resources/views/penduduk/index.blade.php @@ -37,10 +37,10 @@
No
+
@@ -233,7 +233,7 @@ className: 'text-nowrap', Pindah Penduduk`; return `
- + diff --git a/tests/Browser/MswSetup.php b/tests/Browser/MswSetup.php index 010f29d0..e4161c7e 100644 --- a/tests/Browser/MswSetup.php +++ b/tests/Browser/MswSetup.php @@ -29,6 +29,12 @@ final class MswSetup '/api/v1/statistik-web/get-list-coordinate' => 'coordinates.json', '/api/v1/wilayah/penduduk' => 'penduduk.json', '/api/v1/dasbor' => 'dasbor.json', + '/api/v1/penduduk' => 'data-penduduk.json', + '/api/v1/data/kesehatan' => 'data-kesehatan.json', + '/api/v1/pendidikan' => 'data-pendidikan.json', + '/api/v1/ketenagakerjaan' => 'data-ketenagakerjaan.json', + '/api/v1/bantuan' => 'data-bantuan.json', + '/api/v1/lembaga' => 'data-lembaga.json', ]; /** diff --git a/tests/Browser/SmokeProfilKependudukanTest.php b/tests/Browser/SmokeProfilKependudukanTest.php new file mode 100644 index 00000000..dbc48e67 --- /dev/null +++ b/tests/Browser/SmokeProfilKependudukanTest.php @@ -0,0 +1,273 @@ +user = SessionState::loginAdminUser(); +}); + +afterEach(function () { + SessionState::clear(); +}); + +// ===================== Submenu Penduduk ===================== + +it('penduduk: displays page correctly', function () { + $page = SessionState::loginAndNavigate($this->user, '/penduduk') + ->assertPathIs('/penduduk') + ->assertSee('Data Penduduk') + ->assertVisible('@btn-filter') + ->assertVisible('@btn-cetak') + ->assertVisible('@btn-excel') + ->assertVisible('@table-penduduk'); + + ScreenshotHelper::saveIfEnabled($page, 'penduduk-page'); +}); + +it('penduduk: has at least one data row', function () { + $page = SessionState::loginAndNavigate($this->user, '/penduduk') + ->assertPathIs('/penduduk'); + + $page->assertScript( + "new Promise((resolve) => { + setTimeout(() => { + const count = document.querySelectorAll('#penduduk tbody tr').length; + resolve(count > 0); + }, 5000); + })", + true + ); +}); + +it('penduduk: displays Pilih Aksi dropdown', function () { + $page = SessionState::loginAndNavigate($this->user, '/penduduk') + ->assertPathIs('/penduduk'); + + $page->assertScript( + "new Promise((resolve) => { + setTimeout(() => { + const exists = document.querySelector('[data-testid=\"dropdown-pilih-aksi\"]') !== null; + resolve(exists); + }, 5000); + })", + true + ); +}); + +// ===================== Submenu Kesehatan ===================== + +it('kesehatan: displays page correctly', function () { + $page = SessionState::loginAndNavigate($this->user, '/data-pokok/kesehatan') + ->assertPathIs('/data-pokok/kesehatan') + ->assertSee('Data Kependudukan dan Statistik') + ->assertVisible('@statistik-golongan-darah') + ->assertVisible('@statistik-status-gizi') + ->assertVisible('@btn-cetak') + ->assertVisible('@btn-excel') + ->assertVisible('@table-kesehatan'); + + ScreenshotHelper::saveIfEnabled($page, 'kesehatan-page'); +}); + +it('kesehatan: renders all charts', function () { + $page = SessionState::loginAndNavigate($this->user, '/data-pokok/kesehatan') + ->assertPathIs('/data-pokok/kesehatan') + ->assertVisible('@chart-golongan-darah') + ->assertVisible('@chart-status-gizi'); + + $page->assertScript( + "new Promise((resolve) => { + setTimeout(() => { + const donut = document.querySelector('[data-testid=\"chart-golongan-darah\"]'); + const bar = document.querySelector('[data-testid=\"chart-status-gizi\"]'); + resolve(donut !== null && bar !== null); + }, 3000); + })", + true + ); +}); + +it('kesehatan: has at least one data row', function () { + $page = SessionState::loginAndNavigate($this->user, '/data-pokok/kesehatan') + ->assertPathIs('/data-pokok/kesehatan'); + + $page->assertScript( + "new Promise((resolve) => { + setTimeout(() => { + const count = document.querySelectorAll('#kesehatan tbody tr').length; + resolve(count > 0); + }, 5000); + })", + true + ); +}); + +// ===================== Submenu Pendidikan ===================== + +it('pendidikan: displays page correctly', function () { + $page = SessionState::loginAndNavigate($this->user, '/data-pokok/pendidikan') + ->assertPathIs('/data-pokok/pendidikan') + ->assertSee('Data Pendidikan Penduduk dan DTKS') + ->assertVisible('@statistik-partisipasi-sekolah') + ->assertVisible('@statistik-ijazah-tertinggi') + ->assertVisible('@btn-cetak') + ->assertVisible('@btn-excel') + ->assertVisible('@table-pendidikan'); + + ScreenshotHelper::saveIfEnabled($page, 'pendidikan-page'); +}); + +it('pendidikan: renders all charts', function () { + $page = SessionState::loginAndNavigate($this->user, '/data-pokok/pendidikan') + ->assertPathIs('/data-pokok/pendidikan') + ->assertVisible('@chart-partisipasi-sekolah') + ->assertVisible('@chart-ijazah-tertinggi'); + + $page->assertScript( + "new Promise((resolve) => { + setTimeout(() => { + const donut = document.querySelector('[data-testid=\"chart-partisipasi-sekolah\"]'); + const bar = document.querySelector('[data-testid=\"chart-ijazah-tertinggi\"]'); + resolve(donut !== null && bar !== null); + }, 3000); + })", + true + ); +}); + +it('pendidikan: has at least one data row', function () { + $page = SessionState::loginAndNavigate($this->user, '/data-pokok/pendidikan') + ->assertPathIs('/data-pokok/pendidikan'); + + $page->assertScript( + "new Promise((resolve) => { + setTimeout(() => { + const count = document.querySelectorAll('#pendidikan tbody tr').length; + resolve(count > 0); + }, 5000); + })", + true + ); +}); + +// ===================== Submenu Ketenagakerjaan ===================== + +it('ketenagakerjaan: displays page correctly', function () { + $page = SessionState::loginAndNavigate($this->user, '/data-pokok/ketenagakerjaan') + ->assertPathIs('/data-pokok/ketenagakerjaan') + ->assertSee('Data Pekerjaan dan Pelatihan') + ->assertVisible('@statistik-jumlah-penghasilan') + ->assertVisible('@statistik-pelatihan') + ->assertVisible('@btn-cetak') + ->assertVisible('@btn-excel') + ->assertVisible('@table-ketenagakerjaan'); + + ScreenshotHelper::saveIfEnabled($page, 'ketenagakerjaan-page'); +}); + +it('ketenagakerjaan: renders all charts', function () { + $page = SessionState::loginAndNavigate($this->user, '/data-pokok/ketenagakerjaan') + ->assertPathIs('/data-pokok/ketenagakerjaan') + ->assertVisible('@chart-jumlah-penghasilan') + ->assertVisible('@chart-pelatihan'); + + $page->assertScript( + "new Promise((resolve) => { + setTimeout(() => { + const bar = document.querySelector('[data-testid=\"chart-jumlah-penghasilan\"]'); + const donut = document.querySelector('[data-testid=\"chart-pelatihan\"]'); + resolve(bar !== null && donut !== null); + }, 3000); + })", + true + ); +}); + +it('ketenagakerjaan: has at least one data row', function () { + $page = SessionState::loginAndNavigate($this->user, '/data-pokok/ketenagakerjaan') + ->assertPathIs('/data-pokok/ketenagakerjaan'); + + $page->assertScript( + "new Promise((resolve) => { + setTimeout(() => { + const count = document.querySelectorAll('#ketenagakerjaan tbody tr').length; + resolve(count > 0); + }, 5000); + })", + true + ); +}); + +// ===================== Submenu Penerima Bantuan ===================== + +it('bantuan: displays page correctly', function () { + $page = SessionState::loginAndNavigate($this->user, '/bantuan') + ->assertPathIs('/bantuan') + ->assertSee('Data Bantuan') + ->assertVisible('@btn-filter') + ->assertVisible('@btn-cetak') + ->assertVisible('@btn-excel') + ->assertVisible('@table-bantuan'); + + ScreenshotHelper::saveIfEnabled($page, 'bantuan-page'); +}); + +it('bantuan: has at least one data row', function () { + $page = SessionState::loginAndNavigate($this->user, '/bantuan') + ->assertPathIs('/bantuan'); + + $page->assertScript( + "new Promise((resolve) => { + setTimeout(() => { + const count = document.querySelectorAll('#bantuan tbody tr').length; + resolve(count > 0); + }, 5000); + })", + true + ); +}); + +it('bantuan: displays Detail button', function () { + $page = SessionState::loginAndNavigate($this->user, '/bantuan') + ->assertPathIs('/bantuan'); + + $page->assertScript( + "new Promise((resolve) => { + setTimeout(() => { + const exists = document.querySelector('[data-testid=\"btn-detail\"]') !== null; + resolve(exists); + }, 5000); + })", + true + ); +}); + +// ===================== Submenu Kelembagaan ===================== + +it('kelembagaan: displays page correctly', function () { + $page = SessionState::loginAndNavigate($this->user, '/lembaga') + ->assertPathIs('/lembaga') + ->assertSee('Data Kelembagaan') + ->assertVisible('@btn-filter') + ->assertVisible('@btn-cetak') + ->assertVisible('@btn-excel') + ->assertVisible('@table-lembaga'); + + ScreenshotHelper::saveIfEnabled($page, 'lembaga-page'); +}); + +it('kelembagaan: has at least one data row', function () { + $page = SessionState::loginAndNavigate($this->user, '/lembaga') + ->assertPathIs('/lembaga'); + + $page->assertScript( + "new Promise((resolve) => { + setTimeout(() => { + const count = document.querySelectorAll('#table-lembaga tbody tr').length; + resolve(count > 0); + }, 5000); + })", + true + ); +}); diff --git a/tests/Browser/fixtures/data-bantuan.json b/tests/Browser/fixtures/data-bantuan.json new file mode 100644 index 00000000..206d44dd --- /dev/null +++ b/tests/Browser/fixtures/data-bantuan.json @@ -0,0 +1,50 @@ +{ + "data": [ + { + "id": "1", + "attributes": { + "nama_desa": "Desa Ampenan Tua", + "nama": "BLT Dana Desa", + "asaldana": "APBN", + "jumlah_peserta": 150, + "sdate": "2024-01-01", + "edate": "2024-12-31", + "nama_sasaran": "Kepala Keluarga", + "status": 1 + } + }, + { + "id": "2", + "attributes": { + "nama_desa": "Desa Taman Sari", + "nama": "PKH", + "asaldana": "APBN", + "jumlah_peserta": 85, + "sdate": "2024-01-01", + "edate": "2024-12-31", + "nama_sasaran": "Ibu Hamil", + "status": 1 + } + }, + { + "id": "3", + "attributes": { + "nama_desa": "Desa Cakranegara", + "nama": "Bantuan Pangan", + "asaldana": "APBD", + "jumlah_peserta": 200, + "sdate": "2024-03-01", + "edate": "2024-09-30", + "nama_sasaran": "Keluarga Miskin", + "status": 0 + } + } + ], + "meta": { + "pagination": { + "total": 3, + "current_page": 1, + "last_page": 1 + } + } +} diff --git a/tests/Browser/fixtures/data-kesehatan.json b/tests/Browser/fixtures/data-kesehatan.json new file mode 100644 index 00000000..151d5fa1 --- /dev/null +++ b/tests/Browser/fixtures/data-kesehatan.json @@ -0,0 +1,53 @@ +{ + "data": [ + { + "id": "1", + "attributes": { + "nama_desa": "Desa Ampenan Tua", + "nik": "5271010101900001", + "golongan_darah": "O", + "cacat": "Tidak Cacat", + "sakit_menahun": "Tidak Ada", + "kb": "IUD", + "hamil": "Tidak", + "asuransi": "BPJS Kesehatan", + "status_gizi": "Baik" + } + }, + { + "id": "2", + "attributes": { + "nama_desa": "Desa Taman Sari", + "nik": "5271010102900002", + "golongan_darah": "A", + "cacat": "Tidak Cacat", + "sakit_menahun": "Diabetes", + "kb": "Suntik", + "hamil": "Tidak", + "asuransi": "PBI", + "status_gizi": "Cukup" + } + }, + { + "id": "3", + "attributes": { + "nama_desa": "Desa Cakranegara", + "nik": "5271010103900003", + "golongan_darah": "B", + "cacat": "Tidak Cacat", + "sakit_menahun": "Tidak Ada", + "kb": "Tidak", + "hamil": "Tidak", + "asuransi": "Tidak Ada", + "status_gizi": "Baik" + } + } + ], + "meta": { + "pagination": { + "total": 3, + "current_page": 1, + "last_page": 1 + } + } +} diff --git a/tests/Browser/fixtures/data-ketenagakerjaan.json b/tests/Browser/fixtures/data-ketenagakerjaan.json new file mode 100644 index 00000000..b0ae9176 --- /dev/null +++ b/tests/Browser/fixtures/data-ketenagakerjaan.json @@ -0,0 +1,44 @@ +{ + "data": [ + { + "id": "1", + "attributes": { + "nama_desa": "Desa Ampenan Tua", + "nik": "5271010101900001", + "pekerjaan": "PNS", + "jabatan": "Staf", + "jumlah_penghasilan": 5000000, + "pelatihan": "Pelatihan Administrasi" + } + }, + { + "id": "2", + "attributes": { + "nama_desa": "Desa Taman Sari", + "nik": "5271010102900002", + "pekerjaan": "Swasta", + "jabatan": "Supervisor", + "jumlah_penghasilan": 3500000, + "pelatihan": "Pelatihan Manajemen" + } + }, + { + "id": "3", + "attributes": { + "nama_desa": "Desa Cakranegara", + "nik": "5271010103900003", + "pekerjaan": "Belum/Tidak Bekerja", + "jabatan": null, + "jumlah_penghasilan": 0, + "pelatihan": null + } + } + ], + "meta": { + "pagination": { + "total": 3, + "current_page": 1, + "last_page": 1 + } + } +} diff --git a/tests/Browser/fixtures/data-lembaga.json b/tests/Browser/fixtures/data-lembaga.json new file mode 100644 index 00000000..dd967762 --- /dev/null +++ b/tests/Browser/fixtures/data-lembaga.json @@ -0,0 +1,44 @@ +{ + "data": [ + { + "id": "1", + "attributes": { + "nama_desa": "Desa Ampenan Tua", + "kode": "LPM", + "nama": "Lembaga Pemberdayaan Masyarakat", + "nama_ketua": "H. Mahfud", + "kategori": "Lembaga Kemasyarakatan", + "anggota_count": 15 + } + }, + { + "id": "2", + "attributes": { + "nama_desa": "Desa Taman Sari", + "kode": "PKK", + "nama": "Pembinaan Kesejahteraan Keluarga", + "nama_ketua": "Ny. Sari", + "kategori": "Lembaga Kemasyarakatan", + "anggota_count": 25 + } + }, + { + "id": "3", + "attributes": { + "nama_desa": "Desa Cakranegara", + "kode": "KARANG", + "nama": "Karang Taruna", + "nama_ketua": "Rudi Hartono", + "kategori": "Lembaga Kepemudaan", + "anggota_count": 30 + } + } + ], + "meta": { + "pagination": { + "total": 3, + "current_page": 1, + "last_page": 1 + } + } +} diff --git a/tests/Browser/fixtures/data-pendidikan.json b/tests/Browser/fixtures/data-pendidikan.json new file mode 100644 index 00000000..0c79cf60 --- /dev/null +++ b/tests/Browser/fixtures/data-pendidikan.json @@ -0,0 +1,50 @@ +{ + "data": [ + { + "id": "1", + "attributes": { + "nama_desa": "Desa Ampenan Tua", + "nik": "5271010101900001", + "pendidikan_kk_id": 3, + "pendidikan_sedang_id": 5, + "partisipasi_sekolah": "Tidak Bersekolah", + "pendidikan_tertinggi": "SLTA", + "kelas_tertinggi": 3, + "ijazah_tertinggi": "SLTA" + } + }, + { + "id": "2", + "attributes": { + "nama_desa": "Desa Taman Sari", + "nik": "5271010102900002", + "pendidikan_kk_id": 5, + "pendidikan_sedang_id": null, + "partisipasi_sekolah": "Tidak Bersekolah", + "pendidikan_tertinggi": "S1", + "kelas_tertinggi": 4, + "ijazah_tertinggi": "S1" + } + }, + { + "id": "3", + "attributes": { + "nama_desa": "Desa Cakranegara", + "nik": "5271010103900003", + "pendidikan_kk_id": 4, + "pendidikan_sedang_id": 6, + "partisipasi_sekolah": "Bersekolah", + "pendidikan_tertinggi": "D3", + "kelas_tertinggi": 6, + "ijazah_tertinggi": "D3" + } + } + ], + "meta": { + "pagination": { + "total": 3, + "current_page": 1, + "last_page": 1 + } + } +} diff --git a/tests/Browser/fixtures/data-penduduk.json b/tests/Browser/fixtures/data-penduduk.json new file mode 100644 index 00000000..608364c4 --- /dev/null +++ b/tests/Browser/fixtures/data-penduduk.json @@ -0,0 +1,122 @@ +{ + "data": [ + { + "id": "1", + "attributes": { + "nik": "5271010101900001", + "nama": "Ahmad Rizal", + "tag_id_card": "TAG001", + "nama_ayah": "Suparman", + "nama_ibu": "Siti Aminah", + "umur": 35, + "created_at": "2024-01-15T08:00:00.000000Z", + "status_dasar": 1, + "keluarga": { + "no_kk": "5271010101900001", + "alamat": "Jl. Merdeka No. 10" + }, + "cluster_desa": { + "dusun": "Dusun Satu", + "rw": "001", + "rt": "001" + }, + "pendidikan_k_k": { + "nama": "SLTA" + }, + "pekerjaan": { + "nama": "PNS" + }, + "status_kawin": { + "nama": "Kawin" + }, + "log_penduduk": { + "tgl_peristiwa": "2024-01-15" + }, + "rtm": { + "no_kk": "RTM001" + } + } + }, + { + "id": "2", + "attributes": { + "nik": "5271010102900002", + "nama": "Siti Nurhaliza", + "tag_id_card": "TAG002", + "nama_ayah": "Mulyadi", + "nama_ibu": "Fatimah", + "umur": 28, + "created_at": "2024-02-20T10:30:00.000000Z", + "status_dasar": 1, + "keluarga": { + "no_kk": "5271010102900002", + "alamat": "Jl. Pahlawan No. 25" + }, + "cluster_desa": { + "dusun": "Dusun Dua", + "rw": "001", + "rt": "002" + }, + "pendidikan_k_k": { + "nama": "S1" + }, + "pekerjaan": { + "nama": "Swasta" + }, + "status_kawin": { + "nama": "Kawin" + }, + "log_penduduk": { + "tgl_peristiwa": "2024-02-20" + }, + "rtm": { + "no_kk": "RTM002" + } + } + }, + { + "id": "3", + "attributes": { + "nik": "5271010103900003", + "nama": "Budi Santoso", + "tag_id_card": "TAG003", + "nama_ayah": "Hasan", + "nama_ibu": "Rohana", + "umur": 22, + "created_at": "2024-03-10T14:00:00.000000Z", + "status_dasar": 1, + "keluarga": { + "no_kk": "5271010103900003", + "alamat": "Jl. Sudirman No. 5" + }, + "cluster_desa": { + "dusun": "Dusun Satu", + "rw": "002", + "rt": "001" + }, + "pendidikan_k_k": { + "nama": "D3" + }, + "pekerjaan": { + "nama": "Belum/Tidak Bekerja" + }, + "status_kawin": { + "nama": "Belum Kawin" + }, + "log_penduduk": { + "tgl_peristiwa": "2024-03-10" + }, + "rtm": { + "no_kk": "RTM003" + } + } + } + ], + "meta": { + "pagination": { + "total": 3, + "current_page": 1, + "last_page": 1 + } + } +}
No