My main intent is to make sure the response contains the number of elements I expect.
My current flow is to grab the json_decoded response and use PHPUnit asserts for that... but it seems suboptimal.
Then I decided to see the JsonType checker, but even by adding a custom filter (for array/string length) it doesn't really help as I can't type-check the actual root as an array - just its entries.
Unfortunately, the API I'm testing doesn't have a root key (i.e. $.data), the list is directly returned (e.g. [ { user_id: x }, { user_id: y } ]).
I see I can't use the JsonType matcher by design, and changing that could be a breaking change, or an extra argument... Doesn't seem the best?
I wonder if this is such an edge case that I should only care to write something on my own, or if I could submit a PR of something like seeJsonResponseLengthIs(int $number). It would check the response is an indexed array, and then count it.
My main intent is to make sure the response contains the number of elements I expect.
My current flow is to grab the json_decoded response and use PHPUnit asserts for that... but it seems suboptimal. Then I decided to see the JsonType checker, but even by adding a custom filter (for array/string length) it doesn't really help as I can't type-check the actual root as an array - just its entries.
Unfortunately, the API I'm testing doesn't have a root key (i.e.
$.data
), the list is directly returned (e.g.[ { user_id: x }, { user_id: y } ]
).I see I can't use the JsonType matcher by design, and changing that could be a breaking change, or an extra argument... Doesn't seem the best? I wonder if this is such an edge case that I should only care to write something on my own, or if I could submit a PR of something like
seeJsonResponseLengthIs(int $number)
. It would check the response is an indexed array, and then count it.