Codeception / module-rest

REST module for Codeception
MIT License
54 stars 27 forks source link

Is it possible to type-check the root? #14

Open igorsantos07 opened 4 years ago

igorsantos07 commented 4 years ago

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.