26 KiB
PANDUAN TESTING - MODUL ONE MD PACKET V8
📋 DESKRIPSI MODUL
Modul One MD Packet v8 adalah sistem manajemen paket pemeriksaan medis (Medical Check-up) yang terintegrasi dengan Agreement/MOU perusahaan. Modul ini memungkinkan pengguna untuk membuat, mengelola, dan mengatur paket pemeriksaan dengan harga khusus berdasarkan perjanjian dengan perusahaan.
🎯 FITUR UTAMA
1. Manajemen Paket (Packet Management)
- Pencarian paket berdasarkan nama, perusahaan, dan MOU
- Menambah paket baru (Profile atau Panel)
- Mengubah paket yang sudah ada
- Menghapus paket
- Filter berdasarkan perusahaan dan agreement
2. Manajemen Detail Paket (Packet Detail Management)
- Menambah pemeriksaan ke dalam paket
- Menghapus pemeriksaan dari paket
- Edit diskon detail (persen dan rupiah)
- Edit harga paket dengan mekanisme lock/unlock
- Import/Duplikasi paket dari paket lain
3. Tipe Paket
- Profile (PR): Harga paket = total harga item (tidak bisa diubah manual)
- Panel (PN): Harga paket bisa dikunci dan diubah manual, atau auto-calculate
🧪 SKENARIO TESTING
A. TESTING PENCARIAN DAN FILTER
A1. Pencarian Paket Berdasarkan Nama
Prasyarat:
- Sudah ada data paket di database
- User sudah login
Langkah Testing:
- Buka halaman modul Packet v8
- Pilih perusahaan dari dropdown "Perusahaan"
- Pilih MOU/Agreement dari dropdown "Agreement"
- Ketik nama paket di field pencarian
- Tekan Enter atau klik tombol Search
Expected Result:
- ✅ Data paket yang sesuai dengan kriteria ditampilkan di tabel
- ✅ Kolom yang ditampilkan: Tipe Paket, Nama Paket, Cetak Nota, Harga Normal, Harga Paket, Action
- ✅ Jika tidak ada data, tabel menampilkan "No data available"
Test Data:
- Perusahaan: "PT Maju Jaya"
- Agreement: "MOU 2026 - MCU Karyawan"
- Pencarian: "Paket Executive"
A2. Filter Berdasarkan Perusahaan
Prasyarat:
- Ada multiple perusahaan dengan paket berbeda
Langkah Testing:
- Buka halaman modul
- Klik dropdown "Perusahaan"
- Ketik beberapa karakter nama perusahaan (autocomplete)
- Pilih perusahaan dari hasil pencarian
- Pilih MOU yang tersedia
Expected Result:
- ✅ Autocomplete menampilkan list perusahaan yang sesuai
- ✅ Setelah pilih perusahaan, dropdown MOU otomatis ter-update dengan MOU perusahaan tersebut
- ✅ Tabel paket otomatis refresh menampilkan paket dari perusahaan yang dipilih
- ✅ Jika perusahaan di-clear (X), list paket menjadi kosong
A3. Filter Berdasarkan Agreement/MOU
Prasyarat:
- Perusahaan sudah terpilih
- Ada multiple MOU untuk perusahaan tersebut
Langkah Testing:
- Pilih perusahaan
- Klik dropdown "Agreement"
- Pilih salah satu MOU
- Perhatikan list paket yang ditampilkan
Expected Result:
- ✅ Dropdown MOU menampilkan hanya MOU dari perusahaan yang dipilih
- ✅ Setelah pilih MOU, tabel paket otomatis refresh
- ✅ Hanya paket yang terkait dengan MOU tersebut yang ditampilkan
B. TESTING CRUD PAKET (CREATE, READ, UPDATE, DELETE)
B1. Membuat Paket Baru - Tipe Profile
Prasyarat:
- User sudah login
- Ada perusahaan dan MOU yang aktif (belum released/verified)
Langkah Testing:
- Pilih perusahaan dari dropdown
- Pilih MOU yang belum released/verified
- Klik tombol "+" (Tambah Paket)
- Di dialog yang muncul, isi:
- Nama Paket: "Paket MCU Executive Profile"
- Tipe: Pilih "Profile"
- Cetak Nota: Pilih "Ya" atau "Tidak"
- Perusahaan: Sudah otomatis terisi
- MOU: Sudah otomatis terisi
- Klik "Simpan"
Expected Result:
- ✅ Dialog "Tambah Data Paket" muncul
- ✅ Field Perusahaan dan MOU sudah otomatis terisi sesuai pilihan sebelumnya
- ✅ Setelah klik Simpan, dialog tertutup
- ✅ Paket baru muncul di list paket
- ✅ Paket baru otomatis terseleksi (background amber)
- ✅ Alert sukses ditampilkan
Test Data:
Nama Paket: "Paket MCU Executive Profile 2026"
Tipe: Profile
Cetak Nota: Ya
B2. Membuat Paket Baru - Tipe Panel
Prasyarat:
- Sama dengan B1
Langkah Testing: 1-5. (Sama dengan B1, tetapi pilih Tipe: "Panel")
Expected Result:
- ✅ Sama dengan B1
- ✅ Tipe paket di tabel menampilkan "Panel"
Test Data:
Nama Paket: "Paket Diabetes Panel"
Tipe: Panel
Cetak Nota: Tidak
B3. Mengubah Nama Paket
Prasyarat:
- Ada paket yang sudah dibuat
- MOU belum released/verified
Langkah Testing:
- Pilih paket di tabel
- Klik tombol "Edit" (icon pensil warna biru)
- Di dialog, ubah nama paket
- Klik "Simpan"
Expected Result:
- ✅ Dialog edit muncul dengan data paket yang sudah ada
- ✅ Field Perusahaan dan MOU dalam status disabled (tidak bisa diubah)
- ✅ Field Tipe dalam status disabled (tidak bisa diubah)
- ✅ Hanya Nama Paket dan Cetak Nota yang bisa diubah
- ✅ Setelah simpan, nama paket ter-update di tabel
B4. Menghapus Paket
Prasyarat:
- Ada paket yang akan dihapus
- MOU belum released/verified
Langkah Testing:
- Pilih paket di tabel
- Klik tombol "Delete" (icon X warna merah)
- Di konfirmasi dialog, baca pesan konfirmasi
- Klik "Confirm" atau "Cancel"
Expected Result:
- ✅ Dialog konfirmasi muncul dengan pesan: "Anda Yakin mau menghapus PAKET : [Nama Paket] ?"
- ✅ Jika klik Confirm, paket terhapus dari list
- ✅ Jika klik Cancel, paket tidak terhapus
- ✅ Setelah hapus, detail paket (panel kanan) menjadi kosong
B5. Testing Tombol Disabled untuk MOU Released/Verified
Prasyarat:
- Ada MOU dengan status Released atau Verified
Langkah Testing:
- Pilih MOU yang sudah released/verified
- Perhatikan tombol Add, Edit, Delete
Expected Result:
- ✅ Tombol "+" (Add) dalam status disabled (abu-abu)
- ✅ Tombol "Edit" untuk setiap paket dalam status disabled
- ✅ Tombol "Delete" untuk setiap paket dalam status disabled
- ✅ User tidak bisa menambah, edit, atau hapus paket
C. TESTING MANAJEMEN DETAIL PAKET
C1. Melihat Detail Paket
Prasyarat:
- Ada paket dengan detail pemeriksaan
Langkah Testing:
- Klik salah satu paket di tabel kiri
- Perhatikan panel kanan (Detail Paket)
Expected Result:
- ✅ Paket yang diklik ter-highlight (background amber)
- ✅ Panel kanan menampilkan list pemeriksaan dalam paket
- ✅ Kolom ditampilkan: Kode, Nama, Bruto, Disc %, Disc Rp, Harga, Action
- ✅ Field "Harga Normal" dan "Harga Paket" di atas tabel terisi
C2. Menambah Item ke Paket - Profile Type
Prasyarat:
- Ada paket tipe Profile yang sudah dibuat
- MOU belum released/verified
Langkah Testing:
- Pilih paket Profile di tabel kiri
- Klik tombol "Edit" (icon pensil di panel kanan)
- Panel kiri berganti menjadi "Tambah / Ubah Detail Paket"
- Ketik nama pemeriksaan di field pencarian
- Klik tombol Search atau Enter
- Dari hasil pencarian, klik tombol "»" untuk menambah item
- Perhatikan:
- Item pindah ke panel kanan
- Harga Normal ter-update
- Harga Paket ter-update (otomatis sama dengan Harga Normal untuk Profile)
- Klik "Simpan Paket"
Expected Result:
- ✅ Panel kiri menampilkan daftar pemeriksaan yang tersedia
- ✅ Setelah klik "»", item pindah ke panel kanan
- ✅ Total Harga dan Harga Paket ter-update otomatis
- ✅ Untuk Profile: Harga Paket = Total Harga (tidak bisa diubah manual)
- ✅ Chip "Profile" muncul di sebelah field Harga Paket
- ✅ Info alert muncul: "Profile: Harga paket adalah summary dari total detail. Tidak dapat mengubah harga paket atau diskon detail."
- ✅ Setelah simpan, success alert muncul
- ✅ Tombol "Simpan Paket" dan "Batal & Kembali" hilang, tombol "Kembali" muncul
C3. Menambah Item ke Paket - Panel Type (Auto-Calculate Mode)
Prasyarat:
- Ada paket baru tipe Panel yang belum ada detailnya
- MOU belum released/verified
Langkah Testing:
- Buat paket Panel baru
- Paket otomatis terpilih
- Klik tombol "Edit" di panel kanan
- Tambahkan beberapa item pemeriksaan (3-5 item)
- Perhatikan Harga Paket ter-update otomatis setiap kali tambah item
- Klik "Simpan Paket"
Expected Result:
- ✅ Mode: UNLOCKED (Harga Paket auto-calculate)
- ✅ Setiap tambah item, Harga Paket = Total Harga
- ✅ Tidak ada chip "Dikunci" di sebelah Harga Paket
- ✅ Console log menampilkan: "Panel UNLOCKED - updating packet price"
- ✅ Setelah simpan, data tersimpan ke database
- ✅ Success alert muncul
C4. Menambah Item ke Paket - Panel Type (Locked Mode)
Prasyarat:
- Ada paket Panel yang sudah tersimpan di database dengan detail items
Langkah Testing:
- Pilih paket Panel yang sudah ada detailnya
- Klik tombol "Edit"
- Perhatikan:
- Ada chip "Dikunci" (warna orange) di sebelah Harga Paket
- Tooltip menjelaskan: "Harga paket dikunci. Tidak akan berubah otomatis..."
- Tambahkan item baru
- Perhatikan: Harga Paket TIDAK berubah (tetap terkunci)
- Hapus item
- Perhatikan: Harga Paket tetap TIDAK berubah
Expected Result:
- ✅ Mode: LOCKED (Harga Paket tidak auto-calculate)
- ✅ Chip "Dikunci" dengan icon lock muncul
- ✅ Harga Paket tetap fixed saat add/remove item
- ✅ Total Harga berubah, tetapi Harga Paket tidak berubah
- ✅ Console log menampilkan: "Panel LOCKED - NOT updating packet price"
C5. Edit Harga Paket Manual - Panel Type
Prasyarat:
- Ada paket Panel dalam mode edit
Langkah Testing:
- Buka mode edit paket Panel
- Tambahkan 3 item dengan total harga misalnya Rp 500.000
- Perhatikan Harga Paket = Rp 500.000
- Klik icon "Edit" (pencil) di sebelah field Harga Paket
- Field Harga Paket menjadi editable
- Ubah Harga Paket menjadi Rp 400.000
- Perhatikan:
- Diskon otomatis terdistribusi pro-rata ke setiap item
- Disc % di-set ke 0 untuk semua item
- Disc Rp ter-update untuk setiap item
- Klik icon "Save" (di sebelah field Harga Paket)
- Tambahkan item baru
- Perhatikan: Harga Paket TIDAK berubah (terkunci)
Expected Result:
- ✅ Setelah klik icon Edit, field Harga Paket menjadi editable
- ✅ Icon berubah dari "edit" menjadi "save"
- ✅ Saat ubah Harga Paket, diskon terdistribusi pro-rata:
Total Disc = Total Harga - Harga Paket Disc per item = (Bruto item / Total Bruto) × Total Disc - ✅ Console log menampilkan detail distribusi diskon untuk setiap item
- ✅ Setelah klik Save:
- Alert muncul: "Harga paket dikonfirmasi dan dikunci..."
- Chip "Dikunci" muncul
- Harga Paket tidak auto-update saat add/remove item
- ✅ Validation: Harga Paket tidak boleh > Total Harga (muncul alert)
Test Case - Distribusi Pro-rata:
Contoh:
Item 1: Bruto Rp 200.000
Item 2: Bruto Rp 200.000
Item 3: Bruto Rp 100.000
Total: Rp 500.000
Ubah Harga Paket jadi Rp 400.000
Total Disc = Rp 100.000
Hasil distribusi:
Item 1: Disc Rp = (200k/500k) × 100k = Rp 40.000 → Harga jadi Rp 160.000
Item 2: Disc Rp = (200k/500k) × 100k = Rp 40.000 → Harga jadi Rp 160.000
Item 3: Disc Rp = (100k/500k) × 100k = Rp 20.000 → Harga jadi Rp 80.000
Total Harga Paket = Rp 400.000 ✅
C6. Edit Diskon Detail Item - Panel Type
Prasyarat:
- Ada paket Panel dengan items dalam mode edit
Langkah Testing:
- Buka mode edit paket Panel
- Tambahkan 2-3 items
- Klik tombol "Edit Diskon Detail Paket"
- Kolom "Disc %" dan "Disc Rp" menjadi editable (input field)
- Ubah Disc % untuk item pertama (misal: 10%)
- Perhatikan: Harga item ter-update otomatis
- Ubah Disc Rp untuk item kedua (misal: Rp 20.000)
- Perhatikan: Harga item ter-update otomatis
- Perhatikan: Total Harga ter-update
- Perhatikan: Harga Paket ter-update (jika tidak locked)
- Klik "Simpan Diskon Detail"
Expected Result:
- ✅ Setelah klik "Edit Diskon Detail Paket", kolom disc menjadi input field
- ✅ Info hint muncul: "Edit diskon persen (%) dan/atau diskon rupiah (Rp) untuk setiap item"
- ✅ Rumus perhitungan:
Harga Item = Bruto - (Bruto × Disc%/100) - Disc Rp - ✅ Setiap perubahan langsung ter-reflect di kolom Harga
- ✅ Total Harga ter-update otomatis
- ✅ Jika tidak locked, Harga Paket juga ter-update
- ✅ Setelah klik "Simpan Diskon Detail":
- Alert: "Diskon detail dikonfirmasi. Klik 'Simpan Paket' untuk menyimpan ke database."
- Edit mode diskon tertutup
- Tombol berubah jadi "Edit Diskon Detail Paket" lagi
Test Case:
Item: Darah Lengkap
Bruto: Rp 100.000
Disc %: 10
Disc Rp: Rp 5.000
Perhitungan:
= 100.000 - (100.000 × 10/100) - 5.000
= 100.000 - 10.000 - 5.000
= Rp 85.000 ✅
C7. Menghapus Item dari Paket
Prasyarat:
- Ada paket dengan items dalam mode edit
Langkah Testing:
- Buka mode edit paket
- Klik tombol "«" (warna merah) pada item yang akan dihapus
- Perhatikan:
- Item hilang dari list
- Item kembali ke list pencarian (panel kiri)
- Total Harga ter-update
- Harga Paket ter-update (jika tidak locked)
Expected Result:
- ✅ Item terhapus dari panel kanan
- ✅ Item kembali muncul di panel kiri (list test)
- ✅ Total Harga dikurangi harga item yang dihapus
- ✅ Untuk Profile: Harga Paket otomatis = Total Harga
- ✅ Untuk Panel Unlocked: Harga Paket = Total Harga
- ✅ Untuk Panel Locked: Harga Paket tetap (tidak berubah)
- ✅ Console log menampilkan info update/tidak update
C8. Validasi Duplikasi Item
Prasyarat:
- Ada paket dalam mode edit dengan beberapa items
Langkah Testing:
- Tambahkan item "Hemoglobin" ke paket
- Coba tambahkan lagi item "Hemoglobin" atau item yang mengandung NAT test yang sama
- Perhatikan alert yang muncul
Expected Result:
- ✅ Alert muncul: "Pemeriksaan tersebut sudah ada !"
- ✅ Item tidak ditambahkan ke paket (duplikasi dicegah)
- ✅ Validasi berdasarkan NAT test (natural test) yang sama
C9. Batal Edit Paket
Prasyarat:
- Ada paket dalam mode edit dengan perubahan yang belum disimpan
Langkah Testing:
- Buka mode edit paket
- Tambahkan/hapus beberapa items
- Ubah diskon atau harga paket
- Klik tombol "Batal & Kembali"
- Konfirmasi: "Yakin ingin membatalkan perubahan dan kembali?"
- Klik OK
Expected Result:
- ✅ Konfirmasi dialog muncul
- ✅ Setelah OK:
- Mode edit ditutup
- Panel kiri kembali normal (tidak ada list test)
- Data paket di-refresh dari database (perubahan dibatalkan)
- Harga Paket kembali ke nilai sebelumnya
- Detail items kembali ke state sebelumnya
C10. Simpan Paket dengan Perubahan
Prasyarat:
- Ada paket dalam mode edit dengan perubahan
Langkah Testing:
- Buka mode edit paket
- Lakukan perubahan (add items, edit disc, edit harga)
- Klik "Simpan Paket"
- Tunggu proses penyimpanan
Expected Result:
- ✅ Data dikirim ke backend (API call)
- ✅ Success alert muncul: "✅ Data berhasil disimpan! Klik 'Kembali' untuk kembali ke list paket."
- ✅ Alert banner hijau muncul dengan pesan sukses
- ✅ Tombol "Simpan Paket" dan "Batal & Kembali" hilang
- ✅ Tombol "Kembali" tetap ada
- ✅ Flag
is_data_saved= true - ✅ Mode LOCKED aktif (untuk Panel type)
- ✅ Console log: "✅ is_data_saved: true"
C11. Kembali Setelah Simpan
Prasyarat:
- Data paket sudah berhasil disimpan (success alert muncul)
Langkah Testing:
- Klik tombol "Kembali"
- Perhatikan perubahan UI
Expected Result:
- ✅ Mode edit ditutup
- ✅ Panel kiri kembali normal
- ✅ Data paket di-refresh dari backend
- ✅ Data px (detail) di-refresh dari backend
- ✅ Paket yang baru disimpan masih terseleksi
- ✅ Detail paket menampilkan data terbaru dari database
- ✅ Semua state edit ter-reset (edit_detail_discount_mode, edit_packet_price_mode, is_packet_price_locked, is_data_saved)
D. TESTING IMPORT/DUPLIKASI PAKET
D1. Import Paket dari Paket Lain
Prasyarat:
- Ada paket sumber dengan detail items
- Ada paket target yang akan di-import
Langkah Testing:
- Pilih paket target di tabel
- Klik tombol "Import" (icon import warna orange) di panel kanan
- Dialog "DUPLIKASI PAKET" muncul
- Pilih paket sumber dari list
- Klik tombol import/copy
- Dialog tertutup
- Perhatikan detail paket target ter-update
Expected Result:
- ✅ Dialog duplikasi muncul dengan list paket yang bisa di-import
- ✅ Setelah pilih dan klik import, items dari paket sumber ter-copy ke paket target
- ✅ Harga dan diskon ikut ter-copy
- ✅ Dialog tertutup otomatis
- ✅ Detail paket target menampilkan items yang ter-import
D2. Validasi Import - MOU Verified
Prasyarat:
- MOU target dalam status verified
Langkah Testing:
- Pilih MOU verified
- Pilih paket
- Perhatikan tombol Import
Expected Result:
- ✅ Tombol Import dalam status disabled
- ✅ User tidak bisa import paket jika MOU sudah verified dan paket sudah ada isinya
E. TESTING EDGE CASES DAN VALIDASI
E1. Validasi Harga Paket > Total Harga
Prasyarat:
- Ada paket Panel dalam mode edit
Langkah Testing:
- Tambahkan items dengan total Rp 300.000
- Edit Harga Paket menjadi Rp 350.000 (lebih besar dari total)
- Coba simpan atau tekan enter
Expected Result:
- ✅ Alert muncul: "Harga paket tidak boleh melebihi total harga normal!"
- ✅ Harga Paket kembali ke nilai sebelumnya (original_packet_price)
E2. Paket Kosong (Tanpa Items)
Prasyarat:
- Ada paket baru tanpa items
Langkah Testing:
- Buat paket baru
- Klik Edit
- Langsung klik "Simpan Paket" tanpa menambah items
Expected Result:
- ✅ Paket bisa disimpan dengan 0 items
- ✅ Harga Paket = 0
- ✅ Total Harga = 0
E3. Loading State
Prasyarat:
- Network lambat atau data besar
Langkah Testing:
- Buka mode edit dan search test
- Perhatikan loading indicator
Expected Result:
- ✅ Progress bar muncul di atas search box (warna abu untuk test list)
- ✅ Progress bar muncul di atas tabel detail paket (warna biru)
- ✅ Loading indicator indeterminate (animasi bergerak)
- ✅ Setelah data loaded, loading indicator hilang
E4. Harga Paket = Total Harga (Clear All Discounts)
Prasyarat:
- Ada paket Panel dengan items dan discounts
Langkah Testing:
- Edit paket dengan total harga Rp 500.000
- Ada beberapa items dengan disc % dan disc Rp
- Edit Harga Paket menjadi Rp 500.000 (sama dengan total)
- Perhatikan semua discounts
Expected Result:
- ✅ Semua Disc % di-set ke 0
- ✅ Semua Disc Rp di-set ke 0
- ✅ Harga setiap item = Bruto
- ✅ Total Harga = Harga Paket
E5. Add Item Setelah Save (Data Saved State)
Prasyarat:
- Paket sudah disimpan (success alert muncul, is_data_saved = true)
Langkah Testing:
- Setelah simpan paket (success alert muncul)
- Tambahkan item baru dari list test
- Perhatikan UI changes
Expected Result:
- ✅ Success alert hilang
- ✅ Flag
is_data_savedmenjadi false lagi - ✅ Tombol "Simpan Paket" dan "Batal & Kembali" muncul kembali
- ✅ Total Harga ter-update
- ✅ Harga Paket ter-update sesuai mode (locked/unlocked)
- ✅ Console log: "→ Items count changed, resetting is_data_saved"
F. TESTING INTEGRASI DAN WORKFLOW
F1. Complete Workflow - Buat Paket Profile dari Awal
Langkah Testing:
- Login ke sistem
- Pilih perusahaan "PT ABC"
- Pilih MOU "MCU 2026"
- Klik tambah paket (+)
- Isi nama: "Paket MCU Standard Profile"
- Pilih tipe: Profile
- Cetak nota: Ya
- Simpan
- Paket otomatis terpilih
- Klik Edit (icon pensil di panel kanan)
- Search test: "hemoglobin"
- Add test ke paket (tombol »)
- Add 5-7 test lagi
- Perhatikan Harga Paket = Total Harga (otomatis)
- Klik "Simpan Paket"
- Klik "Kembali"
- Verify paket muncul di list dengan harga yang benar
Expected Result:
- ✅ Semua step berjalan lancar tanpa error
- ✅ Paket tersimpan di database
- ✅ Harga Paket = Total Harga untuk Profile
- ✅ Tidak ada tombol Edit Harga Paket untuk Profile
- ✅ Info alert muncul menjelaskan Profile type
F2. Complete Workflow - Buat Paket Panel dengan Harga Custom
Langkah Testing:
- Login ke sistem
- Pilih perusahaan dan MOU
- Buat paket baru tipe Panel
- Nama: "Paket Diabetes Panel Custom"
- Simpan
- Edit paket
- Add 5 test dengan total misalnya Rp 600.000
- Harga Paket otomatis = Rp 600.000
- Klik icon Edit Harga Paket
- Ubah menjadi Rp 500.000
- Verify distribusi diskon pro-rata
- Klik icon Save Harga Paket
- Alert: Harga dikunci
- Add test baru
- Verify Harga Paket tetap Rp 500.000 (tidak berubah)
- Klik "Simpan Paket"
- Success alert muncul
- Klik "Kembali"
- Verify data tersimpan dengan benar
Expected Result:
- ✅ Semua step berjalan lancar
- ✅ Diskon terdistribusi pro-rata dengan benar
- ✅ Harga Paket terkunci setelah edit manual
- ✅ Add item setelah lock tidak mengubah Harga Paket
- ✅ Data tersimpan di database dengan benar
F3. Complete Workflow - Edit Diskon Detail
Langkah Testing:
- Pilih paket Panel yang sudah ada
- Edit paket
- Klik "Edit Diskon Detail Paket"
- Ubah Disc % item 1 menjadi 15%
- Ubah Disc Rp item 2 menjadi Rp 10.000
- Verify harga ter-calculate dengan benar
- Klik "Simpan Diskon Detail"
- Alert konfirmasi
- Klik "Simpan Paket"
- Klik "Kembali"
- Edit lagi paket tersebut
- Verify discount tersimpan dengan benar
Expected Result:
- ✅ Edit diskon detail berfungsi dengan baik
- ✅ Perhitungan harga benar
- ✅ Data tersimpan ke database
- ✅ Setelah refresh, discount masih tersimpan
G. TESTING COMPATIBILITY DAN BROWSER
G1. Testing di Multiple Browser
Browser Testing:
- ✅ Chrome (latest)
- ✅ Firefox (latest)
- ✅ Safari (latest)
- ✅ Edge (latest)
Langkah Testing:
- Buka aplikasi di setiap browser
- Lakukan workflow dasar (create, edit, save)
- Test semua fitur utama
Expected Result:
- ✅ UI tampil dengan benar di semua browser
- ✅ Semua fungsi bekerja normal
- ✅ Tidak ada console error
G2. Testing Responsiveness
Langkah Testing:
- Buka aplikasi
- Resize browser window
- Test di berbagai ukuran:
- Desktop: 1920x1080
- Laptop: 1366x768
- Tablet: 768x1024
Expected Result:
- ✅ Layout tetap proper di berbagai ukuran
- ✅ Tabel responsive (scroll jika perlu)
- ✅ Dialog/modal tetap centered
H. TESTING PERFORMANCE
H1. Testing dengan Data Besar
Prasyarat:
- Ada paket dengan 50+ items
Langkah Testing:
- Pilih paket dengan banyak items
- Edit paket
- Add/remove items
- Edit harga paket
- Simpan
Expected Result:
- ✅ UI tetap responsive
- ✅ Tidak ada lag saat add/remove items
- ✅ Perhitungan diskon pro-rata cepat (< 1 detik)
- ✅ Save operation berhasil
H2. Testing Search Performance
Langkah Testing:
- Search test dengan query yang menghasilkan 100+ results
- Perhatikan loading time
- Test scroll di tabel
Expected Result:
- ✅ Search results ditampilkan dalam < 2 detik
- ✅ Tabel di-paginate dengan baik (5 items per page)
- ✅ Pagination berfungsi normal
📊 CHECKLIST TESTING
Functional Testing
- A1. Pencarian Paket
- A2. Filter Perusahaan
- A3. Filter MOU
- B1. Create Paket Profile
- B2. Create Paket Panel
- B3. Update Paket
- B4. Delete Paket
- B5. Tombol Disabled MOU Released
- C1. View Detail Paket
- C2. Add Item - Profile
- C3. Add Item - Panel Unlocked
- C4. Add Item - Panel Locked
- C5. Edit Harga Paket Manual
- C6. Edit Diskon Detail
- C7. Remove Item
- C8. Validasi Duplikasi Item
- C9. Batal Edit
- C10. Simpan Paket
- C11. Kembali Setelah Simpan
- D1. Import Paket
- D2. Validasi Import MOU Verified
Edge Case Testing
- E1. Validasi Harga > Total
- E2. Paket Kosong
- E3. Loading State
- E4. Clear All Discounts
- E5. Add Item After Save
Integration Testing
- F1. Workflow Profile Complete
- F2. Workflow Panel Custom Price
- F3. Workflow Edit Diskon
Compatibility Testing
- G1. Multiple Browser
- G2. Responsiveness
Performance Testing
- H1. Data Besar
- H2. Search Performance
🐛 BUG REPORTING TEMPLATE
Jika menemukan bug, gunakan template berikut:
**Bug ID:** BUG-[YYYYMMDD]-[XX]
**Severity:** Critical / High / Medium / Low
**Module:** One MD Packet V8
**Feature:** [Nama fitur, misal: "Edit Harga Paket Manual"]
**Test Case:** [Test case yang gagal, misal: "C5. Edit Harga Paket Manual"]
**Environment:**
- Browser: [Chrome 120 / Firefox 121 / etc]
- OS: [Windows 11 / macOS 14 / etc]
- User Role: [Admin / User / etc]
**Steps to Reproduce:**
1. [Step 1]
2. [Step 2]
3. [Step 3]
**Expected Result:**
[Apa yang seharusnya terjadi]
**Actual Result:**
[Apa yang benar-benar terjadi]
**Screenshot/Video:**
[Attach jika ada]
**Console Error:**
[Copy paste console error jika ada]
**Additional Notes:**
[Info tambahan]
📝 TEST DATA
Data Perusahaan
1. PT Maju Jaya
- MOU: MCU Karyawan 2026 (Status: Active)
- MOU: MCU Karyawan 2025 (Status: Released)
2. PT Sukses Sentosa
- MOU: General MCU 2026 (Status: Active)
Data Paket
1. Paket MCU Executive Profile
- Tipe: Profile
- Cetak Nota: Ya
- Items: 15 tests
- Total: Rp 850.000
2. Paket Diabetes Panel
- Tipe: Panel
- Cetak Nota: Tidak
- Items: 8 tests
- Total: Rp 450.000
- Harga Paket: Rp 400.000 (dengan diskon)
3. Paket Hepatitis Panel
- Tipe: Panel
- Cetak Nota: Ya
- Items: 6 tests
- Total: Rp 350.000
- Harga Paket: Rp 350.000 (tanpa diskon)
Data Test/Pemeriksaan
1. Hemoglobin - Rp 25.000
2. Leukosit - Rp 25.000
3. Trombosit - Rp 25.000
4. Eritrosit - Rp 25.000
5. Gula Darah Puasa - Rp 30.000
6. Gula Darah 2 Jam PP - Rp 30.000
7. HbA1c - Rp 120.000
8. Kolesterol Total - Rp 40.000
9. HDL - Rp 40.000
10. LDL - Rp 40.000
11. Trigliserida - Rp 40.000
12. SGOT - Rp 35.000
13. SGPT - Rp 35.000
14. Ureum - Rp 30.000
15. Kreatinin - Rp 30.000
🎓 TIPS TESTING
1. Console Monitoring
Selalu buka Browser Console (F12) saat testing untuk melihat:
- ✅ Log state changes (locked/unlocked)
- ✅ Log pro-rata distribution
- ✅ Error messages
- ✅ API responses
2. State Verification
Perhatikan state flags di console:
is_packet_price_lockedis_data_savededit_detail_discount_modeedit_packet_price_mode
3. Visual Indicators
Perhatikan visual feedback:
- ✅ Amber background = selected item
- ✅ Orange chip "Dikunci" = locked price
- ✅ Blue chip "Profile" = profile type
- ✅ Green alert = success save
- ✅ Progress bar = loading
4. Workflow Testing Priority
Test berdasarkan prioritas:
- P0 (Critical): Create, Edit, Save, Delete paket
- P1 (High): Add/remove items, Edit harga/diskon
- P2 (Medium): Search, filter, import
- P3 (Low): UI/UX, loading states
📞 KONTAK & SUPPORT
Untuk pertanyaan atau issue terkait testing:
- Developer: [Nama Developer]
- QA Lead: [Nama QA]
- Project Manager: [Nama PM]
Document Version: 1.0
Last Updated: 2026-01-22
Prepared By: AI Assistant (Claude)
Module: One MD Packet V8
SELAMAT TESTING! 🚀