Codeception / Codeception/module-rest
seeResponseMatchesJsonType issue on multiple arrays of arrays
- Langage dominant
- PHP
- Étoiles
- 60
- Forks
- 30
- Merge moyen
- 22 h 37 min
- PR mergées (30 j)
- 1
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
```bash
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
```php
// 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:
```yml
actor: ApiTester
modules:
enabled:
- Asserts
- Helper\Api
- REST:
depends: PhpBrowser
url: '****'
part: Json
curl:
CURLOPT_RETURNTRANSFER: true
```
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
Piste de recherche
Commencez par le point d’entrée seeResponseMatchesJsonType et reproduisez l’échec de tests/api/testCest.php:suspendedVenues à l’aide des multiples tableaux imbriqués décrits. Suivez la manière dont le résultat de JSONPath '$..businessHours[i]' est vérifié. C’est terminé lorsque des objets d’horaires professionnels valides dans des tableaux imbriqués ne produisent plus d’erreur de clé manquante.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- php
- Domaine
- api, testing
- Type d'issue
- Bug
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100