Supertest · NestJS Validation และ Error
Body Validation
ตรวจ payload ที่ผ่านและไม่ผ่าน DTO validation
ทดสอบ body ที่ผ่านและไม่ผ่าน DTO
Body validation คือด่านแรกที่รับประกันว่า create หรือ update ได้ข้อมูลที่มีรูปแบบถูกต้อง เราควรมีอย่างน้อย happy path, required field ที่หาย, ค่าไม่ถูกชนิด และค่าที่อยู่นอก constraint
ตรวจผลที่ caller เห็น ไม่ตรวจ decorator ตรง ๆ
E2E test ไม่จำเป็นต้อง assert ว่า DTO มี `@IsNotEmpty()` อยู่จริง สิ่งที่ควรพิสูจน์คือ payload ว่างถูกปฏิเสธด้วย status และ error shape ที่ client ใช้ได้ การเปลี่ยน decorator แต่คง behavior เดิมไม่ควรทำให้ test ที่ดี fail
กฎสำคัญ
coverage
happy path ต้องมีคู่กับ failure path
validation test ที่มีแต่ input ผิดอาจไม่ยืนยันว่า payload ปกติยังผ่าน
shape
message array ต้องตรวจอย่างระวัง
ตรวจชนิดหรือข้อความสำคัญที่ stable แทนการบังคับลำดับของทุกข้อความ