# Test Cases (กรณีทดสอบ) ## 1. การยืนยันตัวตน (Authentication) | TC ID | คำอธิบาย | ข้อมูลที่ใช้ทดสอบ | ผลลัพธ์ที่คาดหวัง | |---|---|---|---| | TC-AUTH-01 | เข้าสู่ระบบด้วยข้อมูลที่ถูกต้อง | Username=admin, Pass=1234 | เข้าสู่หน้า Dashboard สำเร็จ, มีชื่อแสดง | | TC-AUTH-02 | เข้าสู่ระบบด้วยรหัสผ่านผิด | Username=admin, Pass=wrong | กลับไปหน้า Login, แสดงข้อความ "ชื่อผู้ใช้งานหรือรหัสผ่านไม่ถูกต้อง" | | TC-AUTH-03 | ตรวจสอบ CSRF ในหน้า Login | (ยิง POST ผ่าน Postman ไม่มี CSRF) | ถูกปฏิเสธ (403 Forbidden) | ## 2. การขอเดินทาง (Trip Request) | TC ID | คำอธิบาย | ข้อมูลที่ใช้ทดสอบ | ผลลัพธ์ที่คาดหวัง | |---|---|---|---| | TC-TRIP-01 | สร้างคำขอเดินทางครบถ้วน | กรอกครบทุกฟิลด์ | บันทึกลง DB สถานะ "Pending", Redirect ไปหน้าแรกพร้อมขึ้นแจ้งเตือนสำเร็จ | | TC-TRIP-02 | สร้างคำขอโดยไม่กรอกฟิลด์จำเป็น | เว้นว่าง "สถานที่" | กลับไปหน้าฟอร์มเดิม แสดงข้อความเตือนให้กรอกครบถ้วน | ## 3. การอนุมัติ (Workflow) | TC ID | คำอธิบาย | ข้อมูลที่ใช้ทดสอบ | ผลลัพธ์ที่คาดหวัง | |---|---|---|---| | TC-APP-01 | ผู้อนุมัติเข้าดูรายการ | Login ด้วยบัญชีผู้อนุมัติ | เห็นรายการที่ร้องขอจากพนักงานในตาราง "รอพิจารณา" | | TC-APP-02 | อนุมัติรายการ (Approve) | กดปุ่ม "อนุมัติ" พร้อมคอมเมนต์ | สถานะใน `trip_requests` และ `trip_approvals` เปลี่ยนเป็น Approved, บันทึก Audit Log | | TC-APP-03 | ไม่อนุมัติรายการ (Reject) | กดปุ่ม "ไม่อนุมัติ" | สถานะเปลี่ยนเป็น Rejected | ## 4. Google Sheets & PDF Designer | TC ID | คำอธิบาย | ข้อมูลที่ใช้ทดสอบ | ผลลัพธ์ที่คาดหวัง | |---|---|---|---| | TC-INT-01 | ทดสอบหน้าตั้งค่า Sheet | กรอกข้อมูล Spreadsheet ID | บันทึกข้อมูลตั้งค่าสำเร็จ และดึงข้อมูล JSON มาแสดงผลเบื้องต้นได้ | | TC-INT-02 | ลากวางฟิลด์ลง PDF | ลาก "{fullname}" ไปยัง Canvas | Canvas รับ Object และบันทึกพิกัด X, Y กลับมาได้ | | TC-INT-03 | ตรวจสอบ XSS | พิมพ์ `` ในช่อง Sheet Name | หน้าจอแสดงโค้ดเป็น Text ธรรมดา ไม่เกิด Alert |