Conversation
|
🔄 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.
issue #1583
Pull Request: Tambah Smoke Test Dashboard (Mode Database Gabungan) & Session Restoration
🎯 Deskripsi
Pull request ini menambahkan sekumpulan smoke test menggunakan Pest Browser Testing (Playwright) untuk memverifikasi fungsionalitas inti halaman Dashboard ketika aplikasi berjalan dalam Mode Database Gabungan (
sinkronisasi_database_gabungan = '1').Selain itu, PR ini memperkenalkan mekanisme Session Restoration untuk mem-bypass form login dan secara signifikan mempercepat eksekusi test secara berulang.
🛠️ Perubahan yang Dilakukan
Blade Template (
resources/views/dashboard/index.blade.php)data-testidpada elemen-elemen kunci (4 kartu dashboard, tab, dan container chart) untuk memastikan pengujian lebih stabil dan tidak bergantung pada perubahan teks atau class CSS.Routes (
routes/web.php)/_pest/login/{userId}yang hanya aktif saat environmenttesting. Route ini digunakan untuk bypass proses autentikasi pada saat pengujian.Session State Management (
tests/Browser/SessionState.php) & KonfigurasiSessionStateyang melakukan pengambilan session cookie dari quick login route secara internal dan menyimpannya secara lokal di.session_state.json.SESSION_DRIVERdiphpunit.xmldariarraymenjadifileagar session state persisten dan dikenali baik oleh test runner PHP maupun oleh server Amphp internal Pest.Smoke Test Baru (
tests/Browser/SmokeLoginTest.php&SmokeDashboardGabunganTest.php)SmokeLoginTest.php) termasuk verifikasi kesuksesan session restoration.SmokeDashboardGabunganTest.php. Seluruh rute visit menggunakanSessionState::loginAndNavigate()untuk kecepatan maksimal.Http::fake()untuk melakukan mock terhadap 4 endpoint API (DesaService,PendudukService,KeluargaService,BantuanService).waitdanassertScriptPromise) untuk memastikan elemen SVG (Highcharts) pada tab User Agent berhasil dirender.Lain-lain
.gitignoreuntuk mengabaikan artefaktests/Browser/.session_state.json.✅ Test Cases yang Diimplementasikan
📸 Cara Menjalankan Test
Jalankan perintah berikut di terminal:
php artisan test --group=smokeAtau menggunakan Pest secara langsung:
Catatan untuk Reviewer:

Mekanisme session restoration memotong durasi login berulang. Rangkaian tes secara keseluruhan mampu berjalan dalam kisaran
35-40 detikdan konsisten lulus (passed) pada environment lokal dengan penggunaan sumber daya yang lebih hemat.