Supertest · Test Database และ Module Boundary
Test Database Environment
จัดการ DATABASE_URL_TEST และ environment เฉพาะของ E2E
กำหนด environment สำหรับ E2E
ให้ E2E โหลด environment ที่ระบุชัด เช่น `.env.test` หรือ environment ที่ CI inject เข้ามา จุดสำคัญคือ application และ Prisma client ต้องอ่าน `DATABASE_URL_TEST` เดียวกัน ไม่ใช่คนละค่าโดยไม่รู้ตัว
ตัวอย่าง test environmentbash
อย่า commit password จริง; ใช้ placeholder หรือ secret manager ตาม workflow
ตรวจ environment ก่อนเปิด app
guard สำหรับ test databaseTS
guard ที่ดี fail เร็วและบอกวิธีแก้ ไม่ปล่อยให้ test เขียนผิด database ก่อนค่อยรู้ตัว
กฎสำคัญ
portable
environment ต้องอ่านได้ใน CI
local file กับ CI secret อาจมีที่มาต่างกัน แต่ชื่อและความหมายของค่าเดียวกันควรคงที่
secret
อย่า log URL พร้อม credential
debug เฉพาะ host/database name ที่ mask แล้วเมื่อจำเป็น