This repository was archived by the owner on Mar 12, 2025. It is now read-only.
This repository was archived by the owner on Mar 12, 2025. It is now read-only.
JsonContains mismatches nested sequential array #61
Open
Description
Hi,
I'm not sure if it's a bug or expected behaviour.
This example matches correctly:
<?php
$actualJson = [
'foo' => [
'bar' => ['cat', 'dog']
]
];
$expectedJson = ['cat', 'dog'];
(new JsonContains($expectedJson))->evaluate(json_encode($actualJson));
// success
While this example fails - it can not match a sequential array when it's inside of another sequential array:
<?php
$actualJson = [
'foo' => [
['cat', 'dog']
]
];
$expectedJson = ['cat', 'dog'];
(new JsonContains($expectedJson))->evaluate(json_encode($actualJson));
// failed
There is a workaround to wrap the expected value in an array one more time, but still looks weird that it does not work in the example above.
<?php
$actualJson = [
'foo' => [
['some noise'],
['cat', 'dog'],
['some noise'],
]
];
$expectedJson = [['cat', 'dog']];
(new JsonContains($expectedJson))->evaluate(json_encode($actualJson));
// success
Metadata
Metadata
Assignees
Labels
No labels