# UAT Checklist - GDC CMOD 📋

# 📋 UAT (User Acceptance Testing) 🧪 - GDC CMOD Laboratory Management System 🏥

ID | Judul Test Case | Langkah Utama | Expected Result | Role | Hasil | Issue/Jawaban
--- | --- | --- | --- | --- | --- | ---
🎯 | 📌 Ready to Test! | 🚀 Let's Go! | ✨ Good Luck! | 👥 All Roles | 🎉 Fun! | 📝 Notes...
TC-001 | Login Berhasil 🔐 | Login dengan username & password valid | Redirect ke dashboard sesuai role 🎯 | AUTENTIKASI & SESI 🔑 | ✅ ❌ |
TC-002 | Login Gagal - Username / Password Salah 🚫 | Salah username / salah password | Error "Invalid credentials" ⚠️ | AUTENTIKASI & SESI 🔐 | ✅ ❌ |
TC-003 | Logout Berhasil 👋 | Klik menu Logout | Session terhapus, redirect ke login ✨ | AUTENTIKASI & SESI 🔑 | ✅ ❌ |
TC-004 | Redirect ke Login Belum Login 🔄 | Akses protected page tanpa login | Redirect otomatis ke halaman login 🚪 | AUTENTIKASI & SESI 🛡️ | ✅ ❌ |
TC-005 | Ganti Password Berhasil 🔑 | Change password baru | Password berhasil diubah dan di-hash ✅ | AUTENTIKASI & SESI 🆕 | ✅ ❌ |
TC-006 | Ganti Password Gagal - Password Lama Salah ❌ | Masukkan password lama salah | Error "Invalid old password" 🚫 | AUTENTIKASI & SESI 🔐 | ✅ ❌ |
TC-007 | Role-Based Redirect Login 👥 | Login dengan berbagai role | Redirect ke dashboard sesuai role 🎯 | AUTENTIKASI & SESI 🎭 | ✅ ❌ |
TC-008 | Tampilkan Semua Request 📊 | Login Superuser → `/superuser` | Tabel requests semua status ditampilkan 📋 | SU, ADM, PHLEB, CS | ✅ ❌ |
TC-009 | Filter by Status 🎛️ | Pilih status di dashboard filter | Filter berfungsi sesuai status 🔍 | SU | ✅ ❌ |
TC-010 | Filter by Date Range 📅 | Set date1 & date2 → filter | Filter tanggal berfungsi 🗓️ | SU | ✅ ❌ |
TC-011 | Search by Patient Name 👤 | Masukkan nama pasien | Tampilkan request dengan nama tsb 🔍 | SU | ✅ ❌ |
TC-012 | Search by Lab Number 🔢 | Masukkan Lab Number | Tampilkan request tsb 🎯 | SU | ✅ ❌ |
TC-013 | Search by Register Number #️⃣ | Masukkan Register Number | Tampilkan request tsb 📌 | SU | ✅ ❌ |
TC-014 | Table Sorting ↕️ | Klik header kolom | Kolom di-sort ASC/DESC 📈📉 | SU | ✅ ❌ |
TC-015 | Pagination 📖 | Klik halaman berbeda | Berpindah halaman dengan benar 📄 | SU | ✅ ❌ |
TC-016 | Tampilkan List User 👥 | Access `/superuser/users` | Tabel users ditampilkan lengkap 📋 | SU, ADM | ✅ ❌ |
TC-017 | Buat User Baru ➕ | Add User → isi form | User berhasil dibuat dan password di-hash 🆔 | SU, ADM | ✅ ❌ |
TC-018 | Validasi Password Min 3 Karakter 🔢 | Buat user dengan password < 3 char | Error "Password min 3 karakter" ⚠️ | SU | ✅ ❌ |
TC-019 | Update User Role ✏️ | Edit user → ubah role | Role berhasil diubah 🔄 | SU | ✅ ❌ |
TC-020 | Update Password User 🔐 | Edit user → ganti password | Password di-hash dengan benar 🔄 | SU | ✅ ❌ |
TC-021 | Delete User 🗑️ | Delete user | User terhapus dari database 🗑️ | SU, ADM | ✅ ❌ |
TC-022 | Tampilkan Request Final ✨ | Access `/superuser/validate` | Hanya request "Fin" yang tampil ✅ | SU, ADM, LAB | ✅ ❌ |
TC-023 | Filter by Date Range Validasi 📅 | Set date1 & date2 → filter | Filter berfungsi di halaman validasi 🔍 | SU | ✅ ❌ |
TC-024 | First Validation (VAL1) ✅ | Validasi request "Fin" | ISVAL1=1, VAL1USER & VAL1DATE diset 📝 | SU, ADM, LAB | ✅ ❌ |
TC-025 | Second Validation (VAL2) ✅✅ | Validasi dengan user berbeda | ISVAL2=1, request duavalidated 🎉 | SU, ADM, LAB | ✅ ❌ |
TC-026 | Gagal Validasi Sendiri 🚫 | Coba validasi ulang sama user | Error "Cannot validate own request" 🙅 | SU, ADM, LAB | ✅ ❌ |
TC-027 | Un-Validate Request ↩️ | Un-validate dengan reason | ISVAL reset, PENDING diset 🔄 | SU, ADM | ✅ ❌ |
TC-028 | Shortcut Keyboard ⌨️ | Enter=Validate, N=Skip, Esc=Close | Shortcut berfungsi dengan benar ⚡ | SU | ✅ ❌ |
TC-029 | Un-Receive Sample 🔙 | Un-receive sample yang received | Status berubah, audit log tercatat 📋 | SU, ADM, LAB | ✅ ❌ |
TC-030 | Print Label Individu 🏷️ | Print label per tube | Label tercetak dengan ZPL format 🖨️ | SU | ✅ ❌ |
TC-031 | Print Collection Label 📋 | Print collection label | Label collection tercetak 🏷️ | SU | ✅ ❌ |
TC-032 | Print All Labels 📄 | Print semua tubes | Semua labels tercetak 🖨️ | SU | ✅ ❌ |
TC-033 | View Request Audit 🔍 | Buka audit dialog request | Audit trail timeline ditampilkan 📜 | SU | ✅ ❌ |
TC-034 | Filter by Category 🎯 | Filter: All, Validation, Receive, Sample | Filter berfungsi sesuai kategori 🔍 | SU | ✅ ❌ |
TC-035 | View Report Validated 📊 | View report request duavalidated | Report ditampilkan lengkap 📋 | SU, ADM, LAB, CS | ✅ ❌ |
TC-036 | Cannot View Not Validated 🚫 | View report belum duavalidated | Error: "Validated request required" ⚠️ | SU | ✅ ❌ |
TC-037 | Print Report 🖨️ | Print report request validated | Print dialog buka, audit log tercatat 📝 | SU, ADM, LAB, CS | ✅ ❌ |
TC-038 | Generate PDF 📑 | Generate PDF request validated | PDF berhasil di-generate ✅ | SU, ADM, LAB, CS | ✅ ❌ |
TC-039 | Preview Report (No Audit) 👀 | Preview report tanpa log audit | Report tampil, tidak ada audit log 📄 | SU | ✅ ❌ |
TC-040 | English Version Report 🇬🇧 | Access `/report/{id}/eng` | Report dalam Bahasa Inggris 🗣️ | SU | ✅ ❌ |
TC-041 | Error Handling 404 🚫 | Akses URL tidak valid | Custom notfound page tampil 📄 | SU | ✅ ❌ |
TC-042 | Error Handling Unauthorized 🔒 | Coba akses role lain | Redirect ke `/unauthorized` 🚫 | SU | ✅ ❌ |
TC-043 | Filter & Search 🔍 | Uji berbagai filter dan search | Semua berfungsi seperti Superuser ⚡ | ADMIN, PHLEB, CS | ✅ ❌ |
TC-044 | Edit Comment Enabled ✏️ | Edit comment dashboard | Comment dapat diubah 💬 | ADMIN | ✅ ❌ |
TC-045 | View Audit Trail 📜 | Buka audit dialog | Timeline audit ditampilkan 🔍 | ADM, LAB, PHLEB, CS | ✅ ❌ |
TC-046 | Update User 🔄 | Edit user → ubah data | User berhasil di-update ✅ | ADMIN | ✅ ❌ |
TC-047 | Cannot Access Role Lain 🚫 | Coba `/superuser`, `/lab`, `/phlebo`, `/cs` | Redirect ke unauthorized/error ⛔ | ADM, LAB, PHLEB, CS | ✅ ❌ |
TC-048 | Filter Test Code Alphabetical 🔤 | Login Lab → `/lab` | Hanya request TESTS A-Z yang tampil 📋 | LAB | ✅ ❌ |
TC-049 | View Request Details 👁️ | Buka request | Detail request ditampilkan 📄 | LAB | ✅ ❌ |
TC-050 | Filter & Search dalam Batas Filter 🔍 | Uji filter & search | Sesuai batas test code A-Z ✅ | LAB | ✅ ❌ |
TC-051 | Sample Buttons Enabled ✅ | Buka dialog sample | Tombol Collect/Un-Coll/Un-Recv enabled 🔘 | LAB | ✅ ❌ |
TC-052 | Edit Comment Disabled 🔒 | Cek comment field | Comment field non-editable 🚫 | LAB, PHLEB, CS | ✅ ❌ |
TC-053 | Un-Validate Disabled 🔒 | Coba un-validate | Error/Unauthorized - cannot un-validate 🚫 | LAB | ✅ ❌ |
TC-054 | Sample Collection Disabled 🔒 | Buka dialog sample | Tombol Collect/Un-Coll/Un-Recv DISABLED 🚫 | PHLEB, CS | ✅ ❌ |
TC-055 | Validation Page Denied 🔒 | Coba `/phlebo/validate` | Halaman tidak tersedia/unauthorized ⛔ | PHLEB, CS | ✅ ❌ |
TC-056 | View Sample Details (Read-Only) 👀 | Buka dialog sample | Sample details view-only 📄 | PHLEB, CS | ✅ ❌ |
TC-057 | Cannot View Report 🔒 | Coba view report | Report tidak tersedia/error 🚫 | PHLEB | ✅ ❌ |
TC-058 | Cannot Print Report 🖨️❌ | Coba print report | Print tidak tersedia 🚫 | PHLEB | ✅ ❌ |
TC-059 | Cannot Generate PDF 📑❌ | Coba generate PDF | PDF tidak tersedia 🚫 | PHLEB | ✅ ❌ |
TC-060 | Print Labels (Limited) 🏷️ | Print labels | Labels tercetak sesuai kapasitas 🖨️ | CS | ✅ ❌ |
TC-061 | User Mgmt Role Restrictions 🔐 | Lab/Phlebo/CS coba user management API | Error unauthorized 🚫 | FITUR CROSS-ROLE 🔗 | ✅ ❌ |
TC-062 | Cross-Role Validation 🤝 | Lab A validasi VAL1, Superuser B validasi VAL2 | Cross-role validation berhasil ✅ | FITUR CROSS-ROLE 🔄 | ✅ ❌ |
TC-063 | Un-Validate Role Restrictions 🔒 | Lab/Phlebo/CS coba un-validate | Error unauthorized - only SU/Admin 🚫 | FITUR CROSS-ROLE 🛡️ | ✅ ❌ |
TC-064 | Un-Receive Role Restrictions 🔒 | Lab/Phlebo/CS coba un-receive | Error unauthorized - only SU/Admin 🚫 | FITUR CROSS-ROLE 🛡️ | ✅ ❌ |
TC-065 | Report Access Restrictions 👁️ | Coba view report semua role | SU/Admin/Lab/CS OK, Phlebo NOT ✅❌ | FITUR CROSS-ROLE 🔍 | ✅ ❌ |
TC-066 | Report Validated Requirement ✅✅ | View report hanya VAR1 vs duavalidated | Hanya duavalidated dapat dilihat 🎯 | FITUR CROSS-ROLE ✅ | ✅ ❌ |
TC-067 | Comment Edit Restrictions 💬🔒 | Lab/Phlebo/CS coba edit comment | Error - only SU/Admin editable 🚫 | FITUR CROSS-ROLE ✏️ | ✅ ❌ |
TC-068 | Validasi tidak Pengaruhi Data Lain 🛡️ | Record data sebelum & sesudah validasi | Hanya status validasi berubah 📝 | FITUR CROSS-ROLE 🔍 | ✅ ❌ |
TC-069 | Un-Validate Mempertahankan Data 🔄 | Record data sebelum & sesudah un-validate | Hanya status validasi berubah 📝 | FITUR CROSS-ROLE 🔍 | ✅ ❌ |
TC-070 | Audit Trail Logging 📜 | Lakukan berbagai aktivitas | Semua tercatat di audit log ✅ | FITUR CROSS-ROLE 🔍 | ✅ ❌ |
TC-071 | Concurrent Validation ⚡ | 2 user buka validation dialog bersamaan | Validasi berhasil, tidak conflict ✅ | FITUR CROSS-ROLE 🤝 | ✅ ❌ |
TC-072 | Concurrent Sample Collection ⚡ | 2 user collect tube berbeda bersamaan | Semua berhasil tercatat ✅ | FITUR CROSS-ROLE 🧪 | ✅ ❌ |
TC-073 | Session Timeout ⏱️ | Tunggu session timeout | Redirect ke login 🔄 | FITUR CROSS-ROLE 🔐 | ✅ ❌ |
TC-074 | Password Hashing Security 🔒 | Buat user → cek database | Password dalam HASH bukan plain 🛡️ | FITUR CROSS-ROLE 🔐 | ✅ ❌ |
TC-075 | Legacy Read-Only 👀 | Cek koneksi & fungsi Firebird | Hanya READ dari Firebird, TIDAK WRITE 🚫✍️ | FITUR CROSS-ROLE 🗄️ | ✅ ❌ |
TC-076 | Print Labels 🏷️ | Print individual/collection/all | Semua labels tercetak 🖨️ | ADM, LAB, PHLEB | ✅ ❌ |
TC-077 | Edit Comment ✏️ | Edit comment di dashboard | Comment berubah tersimpan 💾 | SU | ✅ ❌ |

## 📋 Next Plan 📋

ID | Judul Test Case | Langkah Utama | Expected Result | Role | Hasil | Issue/Jawaban
--- | --- | --- | --- | --- | --- | ---
NP-001 | Collect Sample 🧪 | Buka dialog sample → Collect | STATUS=1, COLLECTIONDATE & USERID diset ✅ | SU, ADM, LAB | ✅ ❌ |
NP-002 | Un-Collect Sample ↩️ | Buka dialog sample → Un-Collect | STATUS di-reset, audit log tercatat 📝 | SU, ADM, LAB | ✅ ❌ |
NP-004 | Sample Collection Buttons Enabled ✅ | Buka dialog sample | Tombol Collect/Un-Coll/Un-Recv enabled 🔘 | ADMIN | ✅ ❌ |