# Laporan QA Kultura V5

## Lingkungan dan hasil
- PHP 8.3.33 / Laravel 13.35.0; vendor asli digunakan tanpa Composer/npm.
- SQLite: **148 tests passed, 870 assertions**.
- MariaDB 10.5.29 melalui driver mysql: **148 tests passed, 870 assertions**; database uji terpisah, bukan SQLite tersamar.
- **107 file PHP aplikasi/config/migrasi/tests** lolos `php -l`; seluruh Blade berhasil dikompilasi.
- Semua JavaScript aplikasi di public/assets/js lolos `node --check`.
- SQL asli berhasil diimpor ke database MariaDB kosong: 19 tabel, 28 produk, 39 pesanan. Beranda, katalog, detail produk, masuk dan favorit menghasilkan HTTP 200 dengan database impor tersebut.

## Pengujian browser lokal
Chromium desktop/mobile lokal. Run utama menghasilkan **94 screenshot dan 45 pemeriksaan alur/status**, tanpa pemeriksaan gagal, uncaught page error, respons lokal HTTP >=400 yang tidak diharapkan, dialog JS native, atau overflow horizontal seluruh halaman. Lebar diuji 1440/768/390/320 px; screenshot desktop 1440 dan mobile 390. Retake terarah dijalankan setelah refinement akhir (dashboard, tabel, gambar, detail bukti dan peta). Tidak semua 94 screenshot ditinjau manual satu per satu; pemeriksaan visual manual memprioritaskan halaman utama dan alur yang berubah, dengan contoh hasil final di docs/qa/screenshots-v5.

Alur yang dijalankan:
- Masuk pelanggan/admin, jelajah katalog/detail/kebijakan/akun/admin.
- Simpan/hapus favorit tamu; penghapusan terakhir menampilkan empty state.
- Quick-add modal, keranjang, checkout, quote ongkir bertanda tangan dan pembuatan pesanan nyata pada database QA.
- GPS simulasi Bandung, konfirmasi titik, perubahan titik menghapus konfirmasi lama.
- Pencarian alamat dengan respons fixture untuk UI; pengujian ini bukan jaminan ketersediaan Photon produksi.
- Modal pembatalan dibatalkan tanpa mengubah pesanan; unggah bukti demo, admin memverifikasi melalui modal khusus, histori terlihat setelah proses.
- Print stylesheet dan menu admin mobile.
- Simulasi respons favorit 422 yang disengaja menampilkan notice Kultura, bukan popup native.
- Tabel overflow memunculkan petunjuk; ArrowRight pada wrapper berfokus menggulir tabel.

94 screenshot utama dan data transaksi QA dibuat pada database terpisah, tidak menggantikan database/demo asli di paket. Contoh screenshot berisi transaksi simulasi, bukan data toko atau transfer nyata.

## Regresi V5
16 tests baru: wishlist tamu/fallback/isolasi/produk nonaktif/batas/no reservation/sesi malformed; section beranda; form favorit tidak bersarang; timeline berada di sidebar pembayaran; history admin; filter kepemilikan/status/parameter invalid; pencarian GPS dan total pending; asset bersama; tidak ada native alert/confirm/prompt pada JS aplikasi. 132 tests sebelumnya tetap lolos.

## Integritas paket
- Vendor **8.821 file** dibandingkan SHA-256 terhadap ZIP asli, byte-identical, tanpa tambahan/hilang.
- .env, APP_KEY, composer.json/lock, database/database.sqlite, database/kultura.sql, seluruh foto/font/unggahan asli dipertahankan.
- SQLite integrity_check ok, foreign_key_check kosong.
- Cache terkompilasi/session/log dan unggahan yang dibuat hanya oleh pengujian dibersihkan; berkas sumber dan unggahan asli tidak dibuang.
- Pemeriksaan CRC, semua entri dibaca ulang dan hash dibandingkan terhadap tree final. Nama ZIP relatif aman, tanpa duplikat/symlink.
- Paket diekstrak ulang dan diuji startup/HTTP dengan salinan database uji; tidak ada Composer/npm.
- Rincian manifest ada di docs/qa/FILE_MANIFEST_SHA256.json; pemeriksaan arsip ada di docs/qa/release-checks.json.

## Batas yang perlu diketahui
Lolos pengujian bukan jaminan 100% tanpa bug di semua lingkungan. Belum diuji pada hosting, browser Safari/perangkat fisik pengguna, gateway pembayaran sungguhan, SMTP sungguhan atau uji beban produksi. GPS memakai geolokasi simulasi; akurasi titik nyata dan layanan tiles/geocoder/routing bergantung izin dan jaringan. Jarak default garis lurus, bukan rute jalan.

Favorit berbasis sesi browser, bukan sinkronisasi akun permanen. Dialog izin GPS, print dan pemilih file berasal dari browser/OS dan tidak dapat diganti oleh modal aplikasi. VA/QRIS masih verifikasi manual sesuai arsitektur asli, bukan payment gateway otomatis.

Sebelum produksi: backup, konfigurasi HTTPS/.env/SMTP, ganti akun dan pembayaran demo, atur titik/area/ongkir toko, verifikasi foto/produk/kebijakan, dan lakukan acceptance test di lingkungan tujuan. Panduan konfigurasi MySQL a4 vs SQLite dijelaskan di README/MULAI_DI_SINI agar database tidak salah dipilih.
