Supertest · Test Database และ Module Boundary
Migration ก่อนเริ่ม Suite
เตรียม schema ให้ตรงกับ code ก่อนรัน E2E
schema ต้องพร้อมก่อนยิง request
E2E ที่ใช้ Prisma จริงพึ่งพา schema, index และ constraint การรัน migration ก่อน suite ทำให้ database shape ตรงกับ code ที่กำลังทดสอบ และทำให้ failure จาก schema mismatch เกิดก่อน test case ที่อ่านยาก
migration ไม่ใช่ cleanup
| งาน | เป้าหมาย | ความถี่ |
|---|---|---|
| migration | เปลี่ยน schema ให้ตรง code | ก่อน suite หรือเมื่อ schema เปลี่ยน |
| seed | สร้างข้อมูลตั้งต้น | ก่อน test/ก่อนกลุ่มที่ต้องใช้ |
| cleanup | ล้าง rows และ state | ระหว่าง test หรือหลังกรณีตาม policy |
กฎสำคัญ
cost
อย่า reset schema ทุก test โดยไม่จำเป็น
เลือก cleanup strategy ที่เร็วพอและยังให้ test isolation ตามความเสี่ยงจริง
signal
migration ต้อง fail fast
ถ้า schema apply ไม่ผ่าน ให้หยุด suite ไม่ใช่ปล่อยให้หลาย test fail ด้วย error เดียวกัน