# Laporan pengujian JEPRETA

## Pembaruan desain cetak — 10 September 2026

Desain Signature diterapkan pada sesi baru: bingkai krem/hijau, aksen kuning, wordmark dan tanggal, footer pesan kenangan, serta kartu QR putih. Layar hasil menyediakan tombol Versi cetak / Versi digital. Foto contoh untuk pratinjau dibuat dari placeholder sintetis; tidak mengambil foto pelanggan.

API acceptance kembali lulus. QR pada hasil JPEG portrait, strip, grid, dan tiga foto vertikal didekode kembali ke URL sesi masing-masing. Ukuran kertas dan metadata 300 DPI dipertahankan. Browser acceptance memeriksa bahwa pratinjau awal memakai file cetak dan kedua tombol benar-benar beralih ke file yang sesuai. `node test/render-print-preview.js` membuat ulang perbandingan sebelum/sesudah serta contoh JPEG.

Tanggal: 10 September 2026. Lingkungan: Windows, Node.js 24.15.0, Chrome melalui Playwright. Database dan foto pengujian berada pada direktori sementara yang dibersihkan otomatis; dashboard operasional tidak diisi foto percobaan.

## API — lulus

`npm.cmd test`: 9 test termasuk suite utama, 0 gagal.

Pemeriksaan dependency production: `npm.cmd audit --omit=dev --audit-level=high`, 0 kerentanan setelah memperbarui Sharp ke 0.35.4.

- Initialization SQLite, empat frame seed, route customer/admin, manifest dan service worker.
- Storage, source dan `.env` tidak dapat diakses lewat HTTP; daftar sesi membutuhkan admin.
- Customer A dan B memiliki token 192-bit berbeda. Piksel hasil digital menunjukkan bahwa masing-masing endpoint memberikan gambar milik sesi yang benar.
- QR PNG didekode dengan jsQR. QR yang tertanam pada JPEG print juga didekode dan cocok dengan URL LAN sesi A.
- Keempat layout berhasil dikomposisi. Filter Original/Warm/Bright/Soft/BW diproses; BW diverifikasi pada piksel hasil final.
- Resolusi dan metadata cetak 300 DPI, attachment download, `no-store`, no-referrer.
- Penolakan jumlah capture salah, filter invalid, mutasi cross-origin, dan permintaan cetak tanpa write key.
- Login benar/salah, cookie HTTP-only SameSite Strict, CSRF admin, statistik, preview.
- Upload asset, perubahan branding/expiry, tambah/edit/nonaktifkan/hapus frame dan penolakan slot di luar kanvas.
- Token invalid/expired ditolak; cleanup menghapus foto expired tanpa memengaruhi pelanggan lain.
- Restart mempertahankan database, foto, konfigurasi frame, dan login dengan secret tetap.
- Penghapusan sesi dan logout membatalkan akses terkait.

## Browser — lulus

`npm.cmd run test:browser`: 9 acceptance checks, tanpa page error atau console error.

- Home desktop dan logo yang diberikan pengguna.
- Kamera simulasi Chrome, countdown, empat capture, retake satu foto; tiga foto lainnya tetap identik.
- Filter dan generation → QR A → halaman cetak. CSS print menghilangkan navigasi; ekspor PDF print emulation berhasil.
- Selesai membersihkan gambar dari UI dan menutup jendela cetak. Customer berikutnya menerima QR B berbeda.
- Halaman foto seluler 390×844 hanya berisi satu hasil; download menghasilkan file JPEG.
- Admin login, daftar sesi, statistik, pengelolaan frame, simpan branding, logout.
- Retake semua, idle warning setelah 3 menit, lanjutkan sesi, dan reset setelah countdown 10 detik.
- Camera permission denied menampilkan pesan Indonesia dengan tombol coba lagi.
- Cache PWA tidak berisi API, halaman foto, cetak, atau admin.

Screenshot, PDF, dan laporan JSON dihasilkan ke `test-results/` pada setiap pengujian browser. Folder ini tidak disertakan dalam arsip source agar distribusi tetap bersih; dapat dibuat ulang dengan perintah tes.

## Batas pengujian

- Webcam fisik, izin kamera pada kiosk sebenarnya, hasil printer fisik, dan scan dari HP fisik belum diuji. Pengujian menggunakan fake webcam dan print emulation, bukan bukti cetak fisik berhasil.
- IP Wi-Fi terdeteksi `192.168.1.10`; `.env` project lokal menggunakan IP tersebut. Firewall dan akses antarperangkat Wi-Fi perlu dikonfirmasi dari HP. Arsip source menyediakan `.env.example` yang portabel.
- Preview filter browser merupakan pendekatan visual; Sharp memproses filter final di server.
- Sharp mengeluarkan peringatan cache fontconfig tidak dapat ditulis di sandbox Windows ini. Komposisi teks, JPEG, decode QR, dan seluruh pengujian tetap lulus. Peringatan ini bukan kegagalan request atau penyimpanan foto.
- Browser tidak memberikan konfirmasi keberhasilan printer fisik; statistik mencatat permintaan cetak.
