Supertest · NestJS Validation และ Error
Transform, Whitelist และ Forbid
แยกผลของ ValidationPipe options ที่เปลี่ยน request behavior
สาม option ที่เปลี่ยนความหมายของ input
`transform`, `whitelist` และ `forbidNonWhitelisted` ไม่ได้เป็นชื่อที่ใส่ไว้เพื่อความปลอดภัยอย่างเดียว แต่เปลี่ยนสิ่งที่ controller จะได้รับและ status ที่ client เห็น จึงควรมี test ที่แยกผลของแต่ละ policy
อย่าสรุปผล option จากชื่ออย่างเดียว
| configuration | เมื่อมี extra field | คำถามที่ test ควรตอบ |
|---|---|---|
| whitelist เท่านั้น | field อาจถูกตัดออก | controller เห็น payload แบบใด |
| whitelist + forbid | request fail | status และ message เป็นอย่างไร |
| transform | ค่าถูกแปลงตาม rule | service ได้ชนิดที่คาดหรือไม่ |
i
เริ่มจาก bootstrap จริง
ถ้า test setup กับ production bootstrap ใช้ options คนละชุด เรากำลังทดสอบคนละ application