Supertest · Test Database และ Module Boundary
Workshop: Persistence Boundary
พิสูจน์ HTTP flow ที่อ่านและเขียน PostgreSQL พร้อม isolation
Workshop: Persistence Boundary
ออกแบบ E2E flow ที่ใช้ PostgreSQL test database จริง ขณะเดียวกันแยก external dependency ที่ไม่ควรเรียกจริง และทำให้ test reset ได้อย่างปลอดภัย
Labโจทย์ + เฉลย
ประกอบ persistence boundary
วางลำดับ setup และ cleanup สำหรับ suite ที่ create Todo ผ่าน HTTP แล้วอ่านกลับจาก database
งานที่ต้องทำ
- กำหนด `DATABASE_URL_TEST` ให้ชี้ dedicated database
- รัน migration ก่อนเปิด suite
- ล้าง Todo และ user state ก่อน test ที่ต้องการ isolation
- ใช้ `app.getHttpServer()` ยิง POST แล้ว GET resource เดิมกลับมา
- override เฉพาะ mailer หรือ external provider ที่ไม่ควรเรียกจริง
ลองทำด้วยตัวเองก่อน แล้วค่อยเปิดเฉลยเพื่อเทียบแนวคิดและรายละเอียด