Supertest · Todo CRUD E2E
Update ด้วย PUT
ทดสอบการแทนค่าทั้ง resource ตาม contract
PUT คือ full replacement ตาม contract
ก่อนทดสอบ PUT ให้สร้าง resource เดิม แล้วส่ง representation ที่ครบตาม contract การตรวจที่สำคัญคือ field ที่ส่งใหม่ถูกบันทึก และ field ที่ contract ถือว่าเป็นส่วนหนึ่งของ resource ไม่หายโดยไม่ตั้งใจ
PUT full updateTS
PUT failure cases ต้องมี resource context
| case | Arrange | expected |
|---|---|---|
| valid replacement | สร้าง Todo ก่อน | 200 และค่าถูกแทน |
| invalid body | ส่ง title ว่างหรือ field ผิด | 400 |
| missing id | ใช้ id ที่ไม่มี | 404 |
| duplicate title | มี Todo ชื่อเดียวกันอยู่แล้ว | 409 ถ้า contract บังคับ unique |
i
PUT กับ PATCH ต้องไม่ใช้ test เดียวกัน
แยก test intent เพื่อให้เห็นว่ากำลังพิสูจน์ full replacement หรือ partial update ไม่ใช่แค่ endpoint ที่มี method ต่างกัน