Tentu! Menguji sistem secara menyeluruh di *server lokal/staging* sangat penting sebelum sistem ini benar-benar diaktifkan untuk seluruh guru di sekolah.
Berikut adalah panduan skenario uji coba (UAT - *User Acceptance Testing*) yang sebaiknya Anda lakukan untuk memastikan semua logika filter yang kita buat berjalan sempurna:
### 1. Skenario Normal (KBM Berjalan Biasa)
* **Belum Mengisi Jurnal:** Biarkan satu guru yang sudah selesai jam mengajarnya tidak mengisi jurnal. Pastikan nama guru tersebut muncul di `reminder_manual.php` dan skrip CLI mencatatnya sebagai penerima pesan.
* **Sudah Mengisi Jurnal:** Simulasikan guru tersebut mengisi jurnal (entri data ke tabel `{local_jurnalmengajar}`). Pastikan namanya **hilang** dari daftar `reminder_manual.php` dan CLI tidak lagi memprosesnya.
### 2. Skenario "Jam Tidak Belajar" (Kegiatan Global)
* **Persiapan:** Masukkan data di `kegiatan_add.php`. Pilih **Tanggal hari ini**, centang **Pilih Semua Kelas**, dan masukkan Jam Ke: `1, 2`.
* **Ekspektasi (Hasil yang Diharapkan):**
* Semua guru yang mengajar di jam ke-1 dan ke-2 pada hari ini **tidak muncul** di halaman reminder.
* Guru yang mengajar mulai jam ke-3 ke atas harus **tetap muncul** di halaman reminder jika mereka belum mengisi jurnal (setelah jam ke-3 terlewat).
### 3. Skenario "Jam Tidak Belajar" (Kegiatan Spesifik Per Kelas)
* **Persiapan:** Hapus data kegiatan sebelumnya. Buat data baru: Pilih **Tanggal hari ini**, centang **hanya satu kelas** (misal: Kelas IX-A), dan masukkan Jam Ke: `3, 4`.
* **Ekspektasi:**
* Guru yang mengajar Kelas IX-A pada jam ke-3 dan 4 **tidak dinotifikasi**.
* Namun, jika ada guru lain yang mengajar di Kelas IX-B pada jam ke-3 dan 4, guru tersebut **tetap mendapat notifikasi** (namanya muncul di halaman reminder).
### 4. Skenario Filter Blok Jam Berurutan (Mencegah Spam)
* **Persiapan:** Pastikan ada guru yang jadwal mengajarnya berurutan di kelas yang sama, misalnya jam ke `1, 2, 3`.
* **Ekspektasi:**
* Saat waktu *real-time* baru menunjukkan selesainya jam ke-1 atau ke-2, guru ini **tidak boleh** masuk ke daftar reminder.
* Guru ini baru boleh muncul di daftar reminder setelah waktu selesainya **jam ke-3** terlewati.
### 5. Skenario Guru Tidak Hadir
* **Persiapan:** Tandai satu orang guru sebagai "Tidak Hadir" pada hari ini di sistem Moodle Anda (sesuai fungsi `jurnalmengajar_get_status_takhadir`).
* **Ekspektasi:** Meskipun jam mengajarnya sudah lewat, nama guru tersebut tidak akan masuk ke dalam target penerima pesan WhatsApp. (Namanya hanya akan muncul di bagian bawah pada ringkasan **Preview Rekap Admin**).
### 6. Skenario Mode Rekap Malam (Admin)
* **Persiapan:** Pada skrip CLI (`notif_jurnal.php`), ubah sementara atau jalankan *script* pada jam yang melewati batas `$jamrekap` (misal 19:50).
* **Ekspektasi:** Sistem tidak lagi mengirim pesan tunggal ke masing-masing guru, melainkan menyatukan datanya dan hanya mengirim satu pesan rekapitulasi panjang kepada nomor Admin.
---
**Tips Tambahan untuk Uji Coba:**
Gunakan opsi `--dry-run` saat mengeksekusi skrip CLI di server untuk sekadar melihat *log* (hasil teks) tanpa benar-benar memotong kuota pengiriman WhatsApp Anda.
Apakah Anda membutuhkan cara cepat untuk memanipulasi waktu (jam) pada *server lokal* Anda, sehingga Anda tidak perlu repot menunggu jam pelajaran benar-benar habis saat melakukan simulasi ini?
0 comments:
Post a Comment