-
Notifications
You must be signed in to change notification settings - Fork 29
Open
Description
What are you trying to achieve?
Trying to use seeResponseMatchesJsonType on a response from multiple arrays of arrays
What do you get instead?
After several iterations I get an error
1) testCest: Test Get the SUSPENDED Venues!
Test tests/api/testCest.php:suspendedVenues
Step See response matches json type {"businessHourID":"integer","workingDay":"string","specialHourDate":"string|null","fromTime":"string|null","toTime":"string|null","isClosed":"boolean"},"$..businessHours[22]"
Fail Key `businessHourID` doesn't exist in []Provide test source code if related
The code I use is
// businessHours array from the venue payload
public static $businessHoursArrayResponse = [
'businessHourID' => 'integer',
'workingDay' => 'string',
'specialHourDate' => 'string|null',
'fromTime' => 'string|null',
'toTime' => 'string|null',
'isClosed' => 'boolean'
];
...
$businessHoursArray = $I->grabDataFromResponseByJsonPath('$..businessHours.*');
for ($i=0; $i < count($businessHoursArray); $i++){
if (!empty($businessHoursArray[$i])) {
$I->seeResponseMatchesJsonType(self::$businessHoursArrayResponse, '$..businessHours['.$i.']');
}
}var_dump($businessHoursArray) prints an array of 53 valid arrays no missing keys or anything.
Details
- Codeception version: v4.1.20
- PHP Version: 7.2.24
- Operating System: Ubuntu
- Installation type: Phar
- List of installed packages (
composer show) - Suite configuration:
actor: ApiTester
modules:
enabled:
- Asserts
- Helper\Api
- REST:
depends: PhpBrowser
url: '****'
part: Json
curl:
CURLOPT_RETURNTRANSFER: trueMetadata
Metadata
Assignees
Labels
No labels