Supertest · Production Workflow และ Capstone
Advanced Request Controls
รู้จัก timeout, redirect และ completion control ที่ใช้เมื่อ request ซับซ้อนขึ้น
ควบคุม request ที่ซับซ้อนขึ้น
เมื่อ request มี redirect, response ช้า หรือ completion callback เราอาจต้องใช้ control ของ Superagent/Supertest เพิ่ม แต่ควรเริ่มจาก chain พื้นฐานก่อนและใช้ option เมื่อมี behavior ที่ต้องพิสูจน์จริง
completion control ต้องมีเหตุผล
| control | ใช้เมื่อ | ข้อควรระวัง |
|---|---|---|
| timeout | ต้องกัน request ค้าง | ไม่ควรใช้กลบ slow dependency ทุกกรณี |
| redirects | API ตั้งใจ redirect | อาจซ่อน status 3xx ที่เป็น contract |
| end(callback) | ต้องใช้ low-level callback API | ต้องจัดการ error/done ให้ครบ |
กฎสำคัญ
semantics
อ่าน API ก่อนเปิด redirect
บาง test ต้อง assert ว่า response เป็น 3xx ไม่ใช่ follow ไปจนกลายเป็น 200
default
ใช้ await เป็น default
รูปแบบ Promise ทำให้ลำดับและ error propagation อ่านง่ายสำหรับบทเรียนหลัก