Skip to content

Feat: smoketest statistik kependudukan#1063

Open
pandigresik wants to merge 47 commits into
rilis-devfrom
feat/smoketest-statistik-kependudukan
Open

Feat: smoketest statistik kependudukan#1063
pandigresik wants to merge 47 commits into
rilis-devfrom
feat/smoketest-statistik-kependudukan

Conversation

@pandigresik

Copy link
Copy Markdown
Contributor

Pull Request: Smoke Test Statistik Kependudukan

Deskripsi

Menambahkan smoke test menggunakan Pest untuk memastikan fungsionalitas inti halaman Statistik Kependudukan berjalan dengan benar. Test mencakup 5 submenu: Penduduk, Keluarga, RTM, Bantuan, dan Laporan Bulanan. Setiap submenu diuji keterbukaan halaman, tampilnya elemen UI kritis (kategori statistik, tombol aksi, DataTable), rendering grafik/chart, serta tidak adanya JavaScript error.

Perubahan yang dilakukan:

  1. View Template - data-testid attributes: Menambahkan data-testid pada elemen-elemen kunci di:

    • resources/views/statistik/index.blade.php: daftar-statistik, bt-cetak, bt-excel, bt-grafik, bt-chart, grafik-statistik, grafik-content, pie-statistik, pie-content, datatable-statistik
    • resources/views/laporan-bulanan/index.blade.php: bt-excel, filter-kabupaten, filter-kecamatan, filter-desa, filter-tahun, filter-bulan
    • resources/views/laporan-bulanan/table_bulanan.blade.php: datatable-laporan-bulanan
  2. Test Infrastructure - FixtureReader: Menambahkan method helper baru di tests/Browser/FixtureReader.php:

    • kategoriStatistikNames(string $kategori) - generic method untuk membaca nama kategori dari fixture JSON
    • kategoriStatistikPendudukNames(), kategoriStatistikKeluargaNames(), kategoriStatistikRtmNames(), kategoriStatistikBantuanNames() - wrapper method untuk masing-masing kategori
  3. Test Infrastructure - MswSetup: Menambahkan intercept pattern baru di tests/Browser/MswSetup.php untuk API:

    • kategori-statistik - untuk data kategori statistik
    • keluarga - untuk data statistik keluarga
    • rtm - untuk data statistik RTM
    • bantuan - untuk data statistik bantuan
  4. Smoke Test Files (5 file baru):

    • tests/Browser/SmokeStatistikPendudukTest.php - 11 test cases
    • tests/Browser/SmokeStatistikKeluargaTest.php - 11 test cases
    • tests/Browser/SmokeStatistikRtmTest.php - 11 test cases
    • tests/Browser/SmokeStatistikBantuanTest.php - 11 test cases
    • tests/Browser/SmokeLaporanBulananTest.php - 9 test cases
  5. Fixture Files (12 file baru):

    • kategori-statistik-penduduk.json, kategori-statistik-keluarga.json, kategori-statistik-rtm.json, kategori-statistik-bantuan.json
    • statistik-rtm-bdt.json, statistik-keluarga-kelas-sosial.json, statistik-bantuan-penduduk.json, statistik-bantuan-keluarga.json
    • Update fixture yang sudah ada agar sesuai dengan format API terbaru (tambah field id, laki_laki, perempuan, persentase_*, kriteria, draw, recordsTotal, recordsFiltered)

Alasan perubahan:

  • Regression Prevention: Smoke test memastikan fungsi inti halaman statistik tidak rusak setelah perubahan kode
  • CI/CD Reliability: Test otomatis mendeteksi masalah sebelum code sampai ke production
  • Covering Core User Flows: Setiap submenu statistik merupakan jalur penggunaan utama yang harus selalu berfungsi
  • Issue Requirement: Issue Buatkan Smoke test untuk menu statistik kependudukan #1061 meminta smoke test untuk semua submenu statistik kependudukan menggunakan Pest

Dampak perubahan:

Peningkatan kualitas: 53 test cases baru untuk smoke test statistik kependudukan
Tidak ada perubahan fungsional: Hanya penambahan data-testid di view, tidak mengubah perilaku aplikasi
Testability: Elemen UI sekarang dapat diidentifikasi secara stabil oleh test browser
Fixture realistis: Data mock sesuai dengan format response API sebenarnya

Masalah Terkait (Related Issue)

Langkah untuk mereproduksi (Steps to Reproduce)

Menjalankan Smoke Test:

  1. Jalankan smoke test untuk semua submenu statistik:
    php artisan pest --filter=SmokeStatistik
  2. Atau jalankan per submenu:
    php artisan pest --filter=SmokeStatistikPendudukTest
    php artisan pest --filter=SmokeStatistikKeluargaTest
    php artisan pest --filter=SmokeStatistikRtmTest
    php artisan pest --filter=SmokeStatistikBantuanTest
    php artisan pest --filter=SmokeLaporanBulananTest
  3. Jalankan semua test sekaligus:
    php artisan pest

Verifikasi Manual (jika diperlukan):

  1. Login ke aplikasi sebagai admin
  2. Buka menu Statistik → masing-masing submenu (Penduduk, Keluarga, RTM, Bantuan, Laporan Bulanan)
  3. Pastikan halaman terbuka, kategori statistik tampil, tombol Cetak/Excel/Grafik/Chart tampil
  4. Klik tombol Grafik dan Chart, pastikan rendering berhasil
  5. Periksa DataTable tampil dengan data

Daftar Periksa (Checklist)

Submenu Penduduk

  • Halaman terbuka
  • List kategori statistik tampil
  • Tombol Cetak tampil
  • Tombol Excel tampil
  • Tombol grafik tampil
  • Tombol chart tampil
  • DataTable tampil
  • Akses salah kategori statistik
  • Akses grafik dan berhasil di render
  • Akses Chart dan berhasil di render

Submenu Keluarga

  • Halaman terbuka
  • List kategori statistik tampil
  • Tombol Cetak tampil
  • Tombol Excel tampil
  • Tombol grafik tampil
  • Tombol chart tampil
  • DataTable tampil
  • Akses salah kategori statistik
  • Akses grafik dan berhasil di render
  • Akses Chart dan berhasil di render

Submenu RTM

  • Halaman terbuka
  • List kategori statistik tampil
  • Tombol Cetak tampil
  • Tombol Excel tampil
  • Tombol grafik tampil
  • Tombol chart tampil
  • DataTable tampil
  • Akses salah kategori statistik
  • Akses grafik dan berhasil di render
  • Akses Chart dan berhasil di render

Submenu Bantuan

  • Halaman terbuka
  • List kategori statistik tampil
  • Tombol Cetak tampil
  • Tombol Excel tampil
  • Tombol grafik tampil
  • Tombol chart tampil
  • DataTable tampil
  • Akses salah kategori statistik
  • Akses grafik dan berhasil di render
  • Akses Chart dan berhasil di render

Submenu Laporan Bulanan

  • Halaman terbuka
  • Tombol Excel tampil
  • Filter Kabupaten tampil
  • Filter Kecamatan tampil
  • Filter Desa tampil
  • Filter Tahun tampil
  • Filter Bulan tampil
  • DataTable tampil

File yang Berubah

File Tipe Keterangan
resources/views/statistik/index.blade.php Modified Tambah data-testid pada elemen UI
resources/views/laporan-bulanan/index.blade.php Modified Tambah data-testid pada tombol & filter
resources/views/laporan-bulanan/table_bulanan.blade.php Modified Tambah data-testid pada tabel
tests/Browser/FixtureReader.php Modified Tambah method helper untuk kategori statistik
tests/Browser/MswSetup.php Modified Tambah intercept pattern API statistik
tests/Browser/SmokeStatistikPendudukTest.php New Smoke test submenu Penduduk (11 tests)
tests/Browser/SmokeStatistikKeluargaTest.php New Smoke test submenu Keluarga (11 tests)
tests/Browser/SmokeStatistikRtmTest.php New Smoke test submenu RTM (11 tests)
tests/Browser/SmokeStatistikBantuanTest.php New Smoke test submenu Bantuan (11 tests)
tests/Browser/SmokeLaporanBulananTest.php New Smoke test submenu Laporan Bulanan (9 tests)
tests/Browser/fixtures/kategori-statistik-penduduk.json New Fixture data kategori statistik penduduk
tests/Browser/fixtures/kategori-statistik-keluarga.json New Fixture data kategori statistik keluarga
tests/Browser/fixtures/kategori-statistik-rtm.json New Fixture data kategori statistik RTM
tests/Browser/fixtures/kategori-statistik-bantuan.json New Fixture data kategori statistik bantuan
tests/Browser/fixtures/statistik-rtm-bdt.json New Fixture data statistik RTM BDT
tests/Browser/fixtures/statistik-keluarga-kelas-sosial.json New Fixture data statistik keluarga kelas sosial
tests/Browser/fixtures/statistik-bantuan-penduduk.json New Fixture data statistik bantuan penduduk
tests/Browser/fixtures/statistik-bantuan-keluarga.json New Fixture data statistik bantuan keluarga
tests/Browser/fixtures/statistik-penduduk-*.json Modified Update format fixture sesuai API terbaru

Testing

Automated Testing

  • Smoke test Pest berjalan semua (53 test cases)
  • Tidak ada JavaScript error pada setiap halaman
  • Semua elemen UI teridentifikasi dengan benar

Manual Testing

  • Buka halaman Statistik Penduduk, verifikasi semua elemen tampil
  • Buka halaman Statistik Keluarga, verifikasi semua elemen tampil
  • Buka halaman Statistik RTM, verifikasi semua elemen tampil
  • Buka halaman Statistik Bantuan, verifikasi semua elemen tampil
  • Buka halaman Laporan Bulanan, verifikasi semua filter & elemen tampil
  • Klik tombol Grafik pada masing-masing submenu, chart bar muncul
  • Klik tombol Chart pada masing-masing submenu, chart donut muncul
  • Klik tombol Cetak, proses cetak berjalan
  • Klik tombol Excel, proses export berjalan

- Upgrade composer deps melalui 3 fase (L10→L11→L12→L13)
- Bump 12 package ke major version baru (slug, datatables, CSP, image, dll)
- Migrasi Intervention Image v2→v3 (Image::make → read, resize → scale)
- Migrasi Spatie CSP v2→v3 (Policy → Preset, addDirective → add, config format)
- Tambah helper csp_nonce() (dihilangkan di CSP v3)
- Tambah CspExclusion middleware untuk route exclusion
- Publikasikan ulang config/image.php, config/jsvalidation.php
- Update CustomCSPPolicy → CustomCspPreset implement Preset interface
- Update CSP test untuk v3 API
- Catat temuan post-upgrade di UPGRADE_LARAVEL_13_PLAN.md
@pandigresik pandigresik requested a review from affandii06 June 15, 2026 01:35
@github-actions

Copy link
Copy Markdown

🔄 AI PR Review sedang antri di server...

Proses review akan segera dimulai di background — hasil akan muncul sebagai komentar setelah selesai.
Powered by CrewAI · PR #1063

@pandigresik

Copy link
Copy Markdown
Contributor Author
image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant