Supertest · JWT Authentication และ Request State
Ownership State
ตรวจว่าผู้ใช้หนึ่งไม่สามารถเข้าถึง Todo ของอีกผู้ใช้ได้
Identity ไม่ได้แปลว่าเป็นเจ้าของทุก resource
ผู้ใช้ที่ login สำเร็จอาจยังไม่มีสิทธิ์อ่านหรือแก้ Todo ของ user อื่น Ownership test ต้องเตรียม user สองคนและ resource ที่ผูกกับคนหนึ่ง จากนั้นส่ง request ด้วย token ของอีกคน
ทดสอบ resource boundary ไม่ใช่แค่ role
| กรณี | token | expected |
|---|---|---|
| เจ้าของ resource | owner | 200 |
| ผู้ใช้อื่น | authenticated other user | 403 |
| ไม่มี identity | ไม่มี token | 401 |
| id ไม่มีอยู่ | valid user | 404 ตาม resource contract |
i
ownership ต้อง reset ทุก test
ถ้า Todo ของ owner ถูกสร้างค้างจาก test ก่อนหน้า ผลลัพธ์อาจทำให้ user อื่นผ่านหรือ fail ด้วยเหตุผลผิด