Test Flows — flow ทดสอบทุกแบบ
8 scenarios สำหรับทดสอบครอบคลุมทั้งระบบ
Flow A — Happy Path (ลูกค้า → ผู้ขาย → ส่งของ → จบ)
A1. ลูกค้าซื้อ + อัปโหลดสลิป
- เปิด incognito →
http://localhost:3001 - สมัครสมาชิก หรือ login
customer@example.com/Customer1234! - กดเข้า “เสื้อผ้า” → เลือกสินค้า
- เลือก option (size/color) + จำนวน
- เพิ่มลงตะกร้า
- ไป /cart → ดำเนินการชำระเงิน
- /checkout — เลือกที่อยู่ + วิธีจ่าย “โอน + อัปโหลดสลิป”
- ยืนยันคำสั่งซื้อ
- /payment/[orderNo] → อัปโหลดรูปอะไรก็ได้เป็น “สลิป”
- รอ redirect ไป /orders/[id] → สถานะ “รอตรวจสอบสลิป”
✅ เช็คได้:
- ออเดอร์ถูกสร้าง
- สต๊อกลด
- ไฟล์สลิปขึ้น
ecommerce-api/uploads/
A2. ผู้ขายตรวจ + ยืนยัน
- window ใหม่ (ปกติ ไม่ incognito) → /store/login
- Login
admin@lumora.shop - /store/orders?status=waiting_payment_review
- เปิดออเดอร์ที่เพิ่งสร้าง → ดูสลิป
- ยืนยันการชำระเงิน → สถานะ
paid
A3. เตรียมของ + ส่ง
ต่อในหน้าเดิม:
- เริ่มเตรียมสินค้า →
preparing - พร้อมจัดส่ง →
ready_to_ship - จัดส่งแล้ว + ใส่ tracking →
shipping - ส่งถึงแล้ว →
delivered
A4. ลูกค้ายืนยันรับ
- กลับ window ลูกค้า → /orders/[id]
- ยืนยันได้รับสินค้าแล้ว →
completed
✅ Flow A สำเร็จ — end-to-end
Flow B — ปฏิเสธสลิป
- ทำ A1 ใหม่
- ใน admin → กด “ปฏิเสธสลิป” → ใส่เหตุผล “ยอดเงินไม่ตรง”
- ลูกค้าเห็นสถานะกลายเป็น “ปฏิเสธ”
- ลูกค้าสามารถอัปโหลดสลิปใหม่ได้
Flow C — ยกเลิกออเดอร์
- ทำ A1 ถึงข้อ 9 (สร้างออเดอร์เสร็จ)
- /orders/[id] → ปุ่ม “ยกเลิกคำสั่งซื้อ” (ล่างขวา)
- ยืนยัน → สถานะ
cancelled - ตรวจใน admin: สต๊อกสินค้าคืนกลับมาแล้ว
Flow D — เก็บปลายทาง (COD)
- ลูกค้าสมัคร / login
- ตะกร้า → checkout → เลือก “เก็บเงินปลายทาง”
- ยืนยัน → ไป /orders/[id] เลย (ไม่ผ่าน /payment)
- สถานะเริ่มต้น
confirmed - ผู้ขายดำเนินการ: preparing → ship → delivered
- ลูกค้ายืนยันรับ → จ่ายเงินสดตอนรับ
Flow E — ใช้คูปอง
- ใส่ของในตะกร้ายอด ≥ ฿500
- /checkout → ในช่องคูปอง พิมพ์
WELCOME10 - กด “ใช้” → preview ลดราคา 10%
- ยืนยันคำสั่งซื้อ
- ตรวจ /orders/[id] — discount แสดง
ลอง edge cases:
- ✓ พิมพ์ code ผิด → error “คูปองไม่ถูกต้อง”
- ✓ ยอดน้อยกว่าขั้นต่ำ → error “ขั้นต่ำ ฿500”
- ✓ ใช้ code ที่หมดอายุ → error
Flow F — Search + Filter
- /products → พิมพ์ keyword ในช่องค้น
- ลอง sort:
- ใหม่ล่าสุด
- ราคาต่ำ → สูง
- ราคาสูง → ต่ำ
- ชื่อ A-Z
- Filter หมวด — ลอง “เสื้อผ้า” / “รองเท้า”
- ลอง URL share —
?search=shirt&sort=price_ascตรงทุก state
Flow G — Wishlist Sync
- login ลูกค้า A บนเว็บ
- กด ♥ บน product card 3 ชิ้น
- /wishlist → เห็น 3 ชิ้น
- ลองบนแอปมือถือ (ถ้ารัน expo): login บัญชีเดียวกัน → wishlist sync มา
- ลบ 1 ชิ้นในแอป → กลับเว็บ → refresh /wishlist → ลดเหลือ 2
Flow H — สิทธิ์ Staff vs Manager vs Owner
Staff (staff@lumora.shop)
- ✓ /store/orders ดู + จัดการได้
- ✓ /store/products แก้ได้
- ✗ /store/settings ถูกซ่อน
- ✗ /store/staffs ถูกซ่อน
- ✗ /store/reports ถูกซ่อน
- ลอง access /store/settings โดยตรง → redirect /store/dashboard
Manager (manager@lumora.shop)
- ✓ ทุกอย่างยกเว้น…
- ✗ /store/staffs ไม่เห็น
- ✗ ลบสินค้าได้ไหม? ✓ ได้
Owner (admin@lumora.shop)
- ✓ ทุกอย่าง ทั้งหมด
Test Checklist รวม
ก่อนตัดสินใจซื้อ — ทดสอบให้ครบ:
- [ ] Flow A ครบ (สร้าง → ตรวจ → ส่ง → รับ)
- [ ] Flow B (ปฏิเสธสลิป)
- [ ] Flow C (ยกเลิก + สต๊อกคืน)
- [ ] Flow D (COD)
- [ ] Flow E (คูปอง 3 cases)
- [ ] Flow F (search + filter + sort)
- [ ] Flow G (sync เว็บ-แอป)
- [ ] Flow H (3 role permissions)
- [ ] ทดสอบบน mobile browser (responsive)
- [ ] ทดสอบ Light/Dark (ปัจจุบัน light only)
- [ ] ทดสอบสลับภาษา TH ↔ EN
- [ ] รัน Lighthouse score → Performance ≥ 90
- [ ] ทดลอง API บน Swagger (
/docsของ api)
ขั้นต่อไป
- ทดลอง API → 05 — API Testing
- ดู feature checklist เปรียบเทียบ → 06 — Checklist
