Skip to content

Commit 52f2320

Browse files
committed
Fix failing test
1 parent b2c21d1 commit 52f2320

File tree

5 files changed

+20
-11
lines changed

5 files changed

+20
-11
lines changed

src/lib/FakerStubResolver.php

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -325,11 +325,15 @@ private function fakeForArray(SpecObjectInterface $property, int $count = 4): st
325325
*/
326326
public function fakeForObject(SpecObjectInterface $items): string
327327
{
328+
if (!$items->properties) {
329+
return $this->arbitraryArray();
330+
}
331+
328332
$props = '[' . PHP_EOL;
329333
$cs = new ComponentSchema($items, 'unnamed');
330334
$dbModels = (new AttributeResolver('unnamed', $cs, new JunctionSchemas([])))->resolve();
331335

332-
foreach ($items->properties ?? [] as $name => $prop) {
336+
foreach ($items->properties as $name => $prop) {
333337
/** @var SpecObjectInterface $prop */
334338

335339
if ($prop->properties) { // object
@@ -342,6 +346,7 @@ public function fakeForObject(SpecObjectInterface $items): string
342346

343347
$props .= '\'' . $name . '\' => ' . $result . ',' . PHP_EOL;
344348
}
349+
345350
$props .= ']';
346351

347352
return $props;

tests/fixtures/blog.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,9 +117,11 @@
117117
->setDescription('The User')
118118
->setFakerStub('$faker->randomElement(\app\models\User::find()->select("id")->column())'),
119119
'message' => (new Attribute('message', ['phpType' => 'array', 'dbType' => 'json', 'xDbType' => 'json']))
120-
->setRequired()->setDefault([])->setFakerStub('["a" => "b"]'),
120+
->setRequired()->setDefault([])->setFakerStub('$faker->words()'),
121121
'meta_data' => (new Attribute('meta_data', ['phpType' => 'array', 'dbType' => 'json', 'xDbType' => 'json']))
122-
->setDefault([])->setFakerStub('[]'),
122+
->setDefault([])->setFakerStub('array_map(function () use ($faker, $uniqueFaker) {
123+
return $faker->words();
124+
}, range(1, 4))'),
123125
'created_at' => (new Attribute('created_at',['phpType' => 'int', 'dbType' => 'integer']))
124126
->setRequired()->setFakerStub('$faker->unixTime'),
125127
],

tests/specs/blog/models/CommentFaker.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,10 @@ public function generateModel($attributes = [])
3232
//$model->id = $uniqueFaker->numberBetween(0, 1000000);
3333
$model->post_id = $faker->randomElement(\app\models\Post::find()->select("id")->column());
3434
$model->author_id = $faker->randomElement(\app\models\User::find()->select("id")->column());
35-
$model->message = ["a" => "b"];
36-
$model->meta_data = [];
35+
$model->message = $faker->words();
36+
$model->meta_data = array_map(function () use ($faker, $uniqueFaker) {
37+
return $faker->words();
38+
}, range(1, 4));
3739
$model->created_at = $faker->unixTime;
3840
if (!is_callable($attributes)) {
3941
$model->setAttributes($attributes, false);

tests/specs/menu/models/MenuFaker.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@ public function generateModel($attributes = [])
3232
//$model->id = $uniqueFaker->numberBetween(0, 1000000);
3333
$model->name = substr($faker->text(100), 0, 100);
3434
$model->parent_id = $faker->randomElement(\app\models\Menu::find()->select("id")->column());
35-
$model->args = [];
36-
$model->kwargs = [];
35+
$model->args = $faker->words();
36+
$model->kwargs = $faker->words();
3737
if (!is_callable($attributes)) {
3838
$model->setAttributes($attributes, false);
3939
} else {

tests/specs/postgres_custom/models/CustomFaker.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,10 @@ public function generateModel($attributes = [])
3131
$model = new Custom();
3232
//$model->id = $uniqueFaker->numberBetween(0, 1000000);
3333
$model->num = $faker->numberBetween(0, 1000000);
34-
$model->json1 = [];
35-
$model->json2 = [];
36-
$model->json3 = [];
37-
$model->json4 = [];
34+
$model->json1 = $faker->words();
35+
$model->json2 = $faker->words();
36+
$model->json3 = $faker->words();
37+
$model->json4 = $faker->words();
3838
$model->status = $faker->randomElement(['active','draft']);
3939
$model->status_x = $faker->randomElement(['active','draft']);
4040
if (!is_callable($attributes)) {

0 commit comments

Comments
 (0)