Supertest · สร้าง E2E Test Harness
สร้าง Nest Application
แปลง TestingModule เป็น INestApplication สำหรับ HTTP-level test
เปลี่ยน TestingModule เป็น Nest application
TestingModule เป็น dependency container ที่ compile แล้ว แต่ยังไม่ใช่ HTTP application เราต้องเรียก `createNestApplication()` เพื่อสร้าง runtime ที่มี adapter, middleware, pipes และ route ให้ Supertest ยิงได้
สร้าง INestApplicationTS
หลังบรรทัดนี้ยังต้องเรียก `app.init()` ก่อนส่ง request
เปิด runtime behavior ที่ต้องการทดสอบ
Harness baselineTS
baseline นี้รวม module, application, validation และ lifecycle ไว้ด้วยกัน
กฎสำคัญ
lifecycle
ใช้ app ตัวเดียวตลอด suite
สร้าง app ใน beforeAll แล้วใช้ server เดิมใน test หลายข้อ ลดเวลาและทำให้ setup อ่านง่าย
runtime
เปิด global behavior ให้เหมือน runtime
เช่น ValidationPipe หรือ prefix ที่ production ใช้ เพื่อไม่ให้ E2E ผ่านเพราะ setup แตกต่างจากแอปจริง