Supertest · JWT Authentication และ Request State
Login และ Capture JWT
login ผ่าน HTTP แล้วเก็บ access token สำหรับ request ถัดไป
Login ผ่าน HTTP แล้วเก็บ access token
วิธีที่ใกล้ client จริงคือ login ผ่าน endpoint แล้วใช้ token ที่ server ออกให้ ไม่สร้าง JWT ด้วย secret ใน test เพราะจะข้ามการพิสูจน์ login, password check และ token response contract
ตรวจ login response ก่อนนำ token ไปใช้กับ request ถัดไป
token เป็นผลลัพธ์จาก flow ก่อนหน้า
เมื่อ test ต้องใช้ token ให้สร้าง helper ระดับ test เช่น `loginAsUser()` ที่คืน token และ user id การวาง helper หลังจากผู้เรียนเห็น flow เต็มแล้วช่วยลดการ copy/paste โดยไม่ซ่อนขั้นตอนสำคัญ
กฎสำคัญ
assert login ก่อนใช้ token
ถ้า login ได้ 401 แล้ว test protected route ต่อด้วย token ที่ undefined failure จะชี้ผิดจุด
อย่า decode token เพื่อทดแทน API behavior
การอ่าน payload ของ JWT อาจเป็น unit check ของ token แต่ E2E ควรพิสูจน์ว่า server ยอมรับ token จริง