Files
REG_IBL/one-ui/agreement/one-md-packet-v8/TESTING_GUIDE.md
2026-05-25 20:01:37 +07:00

26 KiB
Raw Blame History

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:

  1. Buka halaman modul Packet v8
  2. Pilih perusahaan dari dropdown "Perusahaan"
  3. Pilih MOU/Agreement dari dropdown "Agreement"
  4. Ketik nama paket di field pencarian
  5. 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:

  1. Buka halaman modul
  2. Klik dropdown "Perusahaan"
  3. Ketik beberapa karakter nama perusahaan (autocomplete)
  4. Pilih perusahaan dari hasil pencarian
  5. 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:

  1. Pilih perusahaan
  2. Klik dropdown "Agreement"
  3. Pilih salah satu MOU
  4. 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:

  1. Pilih perusahaan dari dropdown
  2. Pilih MOU yang belum released/verified
  3. Klik tombol "+" (Tambah Paket)
  4. 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
  5. 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:

  1. Pilih paket di tabel
  2. Klik tombol "Edit" (icon pensil warna biru)
  3. Di dialog, ubah nama paket
  4. 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:

  1. Pilih paket di tabel
  2. Klik tombol "Delete" (icon X warna merah)
  3. Di konfirmasi dialog, baca pesan konfirmasi
  4. 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:

  1. Pilih MOU yang sudah released/verified
  2. 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:

  1. Klik salah satu paket di tabel kiri
  2. 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:

  1. Pilih paket Profile di tabel kiri
  2. Klik tombol "Edit" (icon pensil di panel kanan)
  3. Panel kiri berganti menjadi "Tambah / Ubah Detail Paket"
  4. Ketik nama pemeriksaan di field pencarian
  5. Klik tombol Search atau Enter
  6. Dari hasil pencarian, klik tombol "»" untuk menambah item
  7. Perhatikan:
    • Item pindah ke panel kanan
    • Harga Normal ter-update
    • Harga Paket ter-update (otomatis sama dengan Harga Normal untuk Profile)
  8. 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:

  1. Buat paket Panel baru
  2. Paket otomatis terpilih
  3. Klik tombol "Edit" di panel kanan
  4. Tambahkan beberapa item pemeriksaan (3-5 item)
  5. Perhatikan Harga Paket ter-update otomatis setiap kali tambah item
  6. 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:

  1. Pilih paket Panel yang sudah ada detailnya
  2. Klik tombol "Edit"
  3. Perhatikan:
    • Ada chip "Dikunci" (warna orange) di sebelah Harga Paket
    • Tooltip menjelaskan: "Harga paket dikunci. Tidak akan berubah otomatis..."
  4. Tambahkan item baru
  5. Perhatikan: Harga Paket TIDAK berubah (tetap terkunci)
  6. Hapus item
  7. 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:

  1. Buka mode edit paket Panel
  2. Tambahkan 3 item dengan total harga misalnya Rp 500.000
  3. Perhatikan Harga Paket = Rp 500.000
  4. Klik icon "Edit" (pencil) di sebelah field Harga Paket
  5. Field Harga Paket menjadi editable
  6. Ubah Harga Paket menjadi Rp 400.000
  7. Perhatikan:
    • Diskon otomatis terdistribusi pro-rata ke setiap item
    • Disc % di-set ke 0 untuk semua item
    • Disc Rp ter-update untuk setiap item
  8. Klik icon "Save" (di sebelah field Harga Paket)
  9. Tambahkan item baru
  10. 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:

  1. Buka mode edit paket Panel
  2. Tambahkan 2-3 items
  3. Klik tombol "Edit Diskon Detail Paket"
  4. Kolom "Disc %" dan "Disc Rp" menjadi editable (input field)
  5. Ubah Disc % untuk item pertama (misal: 10%)
  6. Perhatikan: Harga item ter-update otomatis
  7. Ubah Disc Rp untuk item kedua (misal: Rp 20.000)
  8. Perhatikan: Harga item ter-update otomatis
  9. Perhatikan: Total Harga ter-update
  10. Perhatikan: Harga Paket ter-update (jika tidak locked)
  11. 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:

  1. Buka mode edit paket
  2. Klik tombol "«" (warna merah) pada item yang akan dihapus
  3. 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:

  1. Tambahkan item "Hemoglobin" ke paket
  2. Coba tambahkan lagi item "Hemoglobin" atau item yang mengandung NAT test yang sama
  3. 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:

  1. Buka mode edit paket
  2. Tambahkan/hapus beberapa items
  3. Ubah diskon atau harga paket
  4. Klik tombol "Batal & Kembali"
  5. Konfirmasi: "Yakin ingin membatalkan perubahan dan kembali?"
  6. 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:

  1. Buka mode edit paket
  2. Lakukan perubahan (add items, edit disc, edit harga)
  3. Klik "Simpan Paket"
  4. 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:

  1. Klik tombol "Kembali"
  2. 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:

  1. Pilih paket target di tabel
  2. Klik tombol "Import" (icon import warna orange) di panel kanan
  3. Dialog "DUPLIKASI PAKET" muncul
  4. Pilih paket sumber dari list
  5. Klik tombol import/copy
  6. Dialog tertutup
  7. 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:

  1. Pilih MOU verified
  2. Pilih paket
  3. 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:

  1. Tambahkan items dengan total Rp 300.000
  2. Edit Harga Paket menjadi Rp 350.000 (lebih besar dari total)
  3. 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:

  1. Buat paket baru
  2. Klik Edit
  3. 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:

  1. Buka mode edit dan search test
  2. 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:

  1. Edit paket dengan total harga Rp 500.000
  2. Ada beberapa items dengan disc % dan disc Rp
  3. Edit Harga Paket menjadi Rp 500.000 (sama dengan total)
  4. 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:

  1. Setelah simpan paket (success alert muncul)
  2. Tambahkan item baru dari list test
  3. Perhatikan UI changes

Expected Result:

  • Success alert hilang
  • Flag is_data_saved menjadi 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:

  1. Login ke sistem
  2. Pilih perusahaan "PT ABC"
  3. Pilih MOU "MCU 2026"
  4. Klik tambah paket (+)
  5. Isi nama: "Paket MCU Standard Profile"
  6. Pilih tipe: Profile
  7. Cetak nota: Ya
  8. Simpan
  9. Paket otomatis terpilih
  10. Klik Edit (icon pensil di panel kanan)
  11. Search test: "hemoglobin"
  12. Add test ke paket (tombol »)
  13. Add 5-7 test lagi
  14. Perhatikan Harga Paket = Total Harga (otomatis)
  15. Klik "Simpan Paket"
  16. Klik "Kembali"
  17. 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:

  1. Login ke sistem
  2. Pilih perusahaan dan MOU
  3. Buat paket baru tipe Panel
  4. Nama: "Paket Diabetes Panel Custom"
  5. Simpan
  6. Edit paket
  7. Add 5 test dengan total misalnya Rp 600.000
  8. Harga Paket otomatis = Rp 600.000
  9. Klik icon Edit Harga Paket
  10. Ubah menjadi Rp 500.000
  11. Verify distribusi diskon pro-rata
  12. Klik icon Save Harga Paket
  13. Alert: Harga dikunci
  14. Add test baru
  15. Verify Harga Paket tetap Rp 500.000 (tidak berubah)
  16. Klik "Simpan Paket"
  17. Success alert muncul
  18. Klik "Kembali"
  19. 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:

  1. Pilih paket Panel yang sudah ada
  2. Edit paket
  3. Klik "Edit Diskon Detail Paket"
  4. Ubah Disc % item 1 menjadi 15%
  5. Ubah Disc Rp item 2 menjadi Rp 10.000
  6. Verify harga ter-calculate dengan benar
  7. Klik "Simpan Diskon Detail"
  8. Alert konfirmasi
  9. Klik "Simpan Paket"
  10. Klik "Kembali"
  11. Edit lagi paket tersebut
  12. 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:

  1. Buka aplikasi di setiap browser
  2. Lakukan workflow dasar (create, edit, save)
  3. 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:

  1. Buka aplikasi
  2. Resize browser window
  3. 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:

  1. Pilih paket dengan banyak items
  2. Edit paket
  3. Add/remove items
  4. Edit harga paket
  5. 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:

  1. Search test dengan query yang menghasilkan 100+ results
  2. Perhatikan loading time
  3. 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_locked
  • is_data_saved
  • edit_detail_discount_mode
  • edit_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:

  1. P0 (Critical): Create, Edit, Save, Delete paket
  2. P1 (High): Add/remove items, Edit harga/diskon
  3. P2 (Medium): Search, filter, import
  4. 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! 🚀