Testing
Frontend (smash-pos)
Section titled “Frontend (smash-pos)”pnpm test # vitest di packages/pos-corepnpm typecheck # semua aplikasi dan paket| Tes | Yang dijaga |
|---|---|
tests/totals.test.ts |
Hitung total; fixture sama dengan API |
tests/receipt.test.ts |
Isi struk, belum dibayar, cap batal |
tests/outbox.test.ts |
Offline, restart, flush berhenti saat jaringan putus, penolakan, token staf |
Backend (navv-ci/apps/api)
Section titled “Backend (navv-ci/apps/api)”pnpm testVitest di runtime Workers (miniflare) dengan D1 sungguhan lokal. Cakupan: transaksi, identitas, shift, F&B, self-order publik (10 skenario keamanan), voice, retail, laporan, dan isolasi lintas tenant.
Uji manual sebelum rilis
Section titled “Uji manual sebelum rilis”| Alur | Cek |
|---|---|
| Pairing | Kode dari backoffice → POS terhubung; kode dicabut → POS kembali ke layar pairing |
| Retail | Scan barcode (perangkat nyata) → keranjang → tunai dengan kembalian → struk → void → stok kembali |
| F&B | Dine-in dengan meja → dapur → disajikan; bayar nanti lalu bayar dari Riwayat |
| Self-order | Scan QR → pesan → terima di tab Masuk → status berubah di HP pelanggan |
| Offline | Matikan jaringan → 3 transaksi → tutup paksa aplikasi → buka → nyalakan jaringan → 3 terkirim, tanpa ganda |
| Suara | Kalimat nyata dengan dua item dan satu catatan; tolak izin mikrofon |
Korpus evaluasi suara
Section titled “Korpus evaluasi suara”Tim dataset menyusun korpus ucapan (≥ 100 kalimat teks dan ≥ 30 rekaman nyata) di navv-ci/apps/api/tests/fixtures/voice-corpus.json. Ambang yang ditetapkan sebelum pengukuran: teks ≥ 95% baris benar; audio end-to-end ≥ 85% setelah satu koreksi; 0 pesanan terkirim tanpa konfirmasi.