Feat: smoketest profile kependudukan#1059
Open
pandigresik wants to merge 46 commits into
Open
Conversation
- 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
…upgrade/laravel-13
…upgrade/laravel-13
…upgrade/laravel-13
|
🔄 AI PR Review sedang antri di server...
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Pull Request: Smoke Test Kependudukan - Penduduk, Pendidikan, Kesehatan, Ketenagakerjaan, Penerima Bantuan, Kelembagaan
Deskripsi
Menambahkan smoke test menggunakan Pest Browser (Playwright) untuk memastikan fungsionalitas inti halaman kependudukan berjalan dengan benar. Test mencakup 6 submenu: Penduduk, Pendidikan, Kesehatan, Ketenagakerjaan, Penerima Bantuan, dan Kelembagaan. Setiap test memverifikasi halaman terbuka, tombol aksi tampil, DataTable render dengan data, dan tidak ada JavaScript error.
Perubahan yang dilakukan:
data-testidselector.MswSetup.phpuntuk mendaftarkan 8 route baru ke fixture files.data-testidpada tombol filter, cetak, excel, dan elemen DataTable di semua halaman target.testIdpada komponenprint-buttondanexcel-download-buttonuntuk mendukungdata-testid.databaseGabunganUrlsaat environmenttestinguntuk mencegah test hang/timeout.Alasan perubahan:
data-testidsebagai selector lebih stabil daripada CSS selector atau text-based selector yang mudah berubah.!app()->environment('testing').Dampak perubahan:
✅ Smoke Test Coverage: 6 halaman kependudukan terotomasi dengan ~40 test cases
✅ MSW Mocking: API response ter-mock dengan fixture JSON, test tidak bergantung pada data production
✅ Stable Selectors: Semua selector menggunakan
data-testidyang tidak berubah saat UI diubah✅ CI/CD Stability: LoginListener tidak melakukan HTTP call eksternal saat testing
✅ No Breaking Changes: Perubahan blade hanya menambah atribut, tidak mengubah fungsi yang ada
Masalah Terkait (Related Issue)
Daftar Periksa (Checklist)
Submenu Penduduk
data-testid="bt-toggle-filter")data-testid="bt-cetak")data-testid="bt-excel")data-testid="datatable-penduduk")Submenu Pendidikan
data-testid="bt-cetak")data-testid="bt-excel")data-testid="datatable-pendidikan")Submenu Kesehatan
data-testid="bt-cetak")data-testid="bt-excel")data-testid="datatable-kesehatan")Submenu Ketenagakerjaan
data-testid="bt-cetak")data-testid="bt-excel")data-testid="datatable-ketenagakerjaan")Submenu Penerima Bantuan
data-testid="bt-toggle-filter")data-testid="bt-cetak")data-testid="bt-excel")data-testid="datatable-bantuan")Submenu Kelembagaan
data-testid="bt-toggle-filter")data-testid="bt-cetak")data-testid="bt-excel")data-testid="datatable-lembaga")General Checklist
Teknis Detail
Penjelasan Teknis
Arsitektur Test
MSW Mocking Strategy
Setiap halaman memiliki fixture JSON yang di-mock oleh MSW:
penduduk-data.json- Data penduduk dengan atribut lengkap (NIK, nama, alamat, dll)pendidikan.json- Data pendidikan dengan partisipasi sekolah dan ijazahkesehatan.json- Data kesehatan dengan golongan darah dan status giziketenagakerjaan.json- Data pekerjaan dan pelatihanbantuan.json,bantuan-sasaran.json,bantuan-tahun.json- Data program bantuanlembaga.json- Data lembaga desadata-testid Selector Strategy
Menggunakan
data-testidsebagai selector utama karena:LoginListener Testing Guard
File yang berubah
tests/Browser/SmokePendudukTest.phptests/Browser/SmokePendidikanTest.phptests/Browser/SmokeKesehatanTest.phptests/Browser/SmokeKetenagakerjaanTest.phptests/Browser/SmokePenerimaBantuanTest.phptests/Browser/SmokeKelembagaanTest.phptests/Browser/fixtures/penduduk-data.jsontests/Browser/fixtures/pendidikan.jsontests/Browser/fixtures/kesehatan.jsontests/Browser/fixtures/ketenagakerjaan.jsontests/Browser/fixtures/bantuan.jsontests/Browser/fixtures/bantuan-sasaran.jsontests/Browser/fixtures/bantuan-tahun.jsontests/Browser/fixtures/lembaga.jsontests/Browser/MswSetup.phpresources/views/penduduk/index.blade.phpresources/views/bantuan/index.blade.phpresources/views/data_pokok/pendidikan/index.blade.phpresources/views/data_pokok/kesehatan/index.blade.phpresources/views/data_pokok/ketenagakerjaan/index.blade.phpresources/views/lembaga/index.blade.phpresources/views/components/print-button.blade.phpresources/views/components/excel-download-button.blade.phpapp/Listeners/LoginListener.phpapp/Http/Controllers/Auth/LoginController.phptests/Pest.phpTesting
Manual Testing
Automated Testing
Breaking Changes
Tidak ada breaking changes. Perubahan blade hanya menambah atribut
data-testidtanpa mengubah fungsi yang ada.References
Catatan tambahan:
SCREENSHOT_ON_SUCCESS=truedi.env.testing..github/workflows/test.yml).Screenshots