This repository was archived by the owner on Mar 12, 2025. It is now read-only.
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 Reactions are currently unavailable
Hi,
I'm not sure if it's a bug or expected behaviour.
This example matches correctly:
While this example fails - it can not match a sequential array when it's inside of another sequential array:
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.