Dalam sistem e-commerce, status pesanan mengikuti diagram Finite State Machine (FSM) yang ketat. Sebagai QA Engineer / Backend Test Engineer, Anda bertugas membuat API validator transition status order dan menangani skenario illegal transition.
Endpoint:
POST /orders/transition
Status yang valid:
CREATED → transisi ke: PAID atau CANCELLEDPAID → transisi ke: PROCESSING atau CANCELLEDPROCESSING → transisi ke: SHIPPEDSHIPPED → transisi ke: DELIVEREDDELIVERED / CANCELLED → Terminal state (tidak bisa transisi lagi ke mana pun).{
"currentStatus": "PAID",
"targetStatus": "PROCESSING"
}
{
"allowed": true,
"message": "Transition from PAID to PROCESSING is valid"
}
{
"allowed": false,
"message": "Illegal transition from CANCELLED to SHIPPED"
}
currentStatus atau targetStatus kosong → HTTP 400 "currentStatus and targetStatus are required".HTTP 400 "Unknown status provided".currentStatus ke targetStatus diizinkan menurut aturan FSM.
HTTP 200 dengan allowed: true.HTTP 400 dengan allowed: false.Integration Testing vs Contract Testing (Pact) Di bagian komentar kode solusi Anda, jelaskan perbedaan strategi Integration Testing vs Consumer-Driven Contract Testing (Pact) dalam menguji interaksi antar microservice.