PASS  a wrong password -> 422, errors.email
PASS  no token -> 401 with a message
PASS  POST /api/tokens -> 201, a token for a cashier
PASS  GET /api/services -> 200, S0001 first, 8000 per kg
PASS  POST /api/customers -> 201, phone kept as digits only
PASS  the same phone again -> 422, errors.phone
PASS  POST /api/orders -> 201, total 34000 (3 kg + pickup), queued
PASS  times are YYYY-MM-DDTHH:MM:SS, finished_at is null
PASS  a bad order -> 422, all of its errors at once
PASS  queued -> departed skips a step: 422, errors.status
PASS  queued -> finished: 200, finished_at set
PASS  finished -> departed before payment: 422, errors.status
PASS  paying more than the balance -> 422, errors.amount
PASS  paying the balance -> 201, balance 0, payments[0].method qris
PASS  finished -> departed after payment: 200
PASS  a departed order is closed: 409 with a message
PASS  GET /api/orders?status=departed -> 200, data[] and meta
PASS  GET /api/orders/999999 -> 404 with a message
PASS  GET /api/reports/daily -> 200, the counts add up
PASS  a cashier deletes a customer -> 403 with a message
PASS  the owner logs in -> 201, role owner
PASS  the owner deletes a customer with orders -> 409
PASS  the owner deletes a customer without orders -> 204
PASS  DELETE /api/tokens/current -> 204
PASS  the old token no longer works -> 401

25 passed, 0 failed
