From 8a7de1bc59f5c8a3255fdcc7ef919f7be9c264da Mon Sep 17 00:00:00 2001 From: Andries Mooij Date: Tue, 29 Nov 2022 09:58:45 +0100 Subject: [PATCH 1/4] Add createOneQuietly --- stubs/Factory.stub | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/stubs/Factory.stub b/stubs/Factory.stub index f592c57b2..156fbd2d2 100644 --- a/stubs/Factory.stub +++ b/stubs/Factory.stub @@ -30,6 +30,14 @@ class Factory */ public function createOne($attributes = []) {} + /** + * Create a single model and persist it to the database. + * + * @param array, mixed> $attributes + * @return TModel + */ + public function createOneQuietly($attributes = []) {} + /** * Create a collection of models and persist them to the database. * From 2bb02dc19e062f0d3d699c5f8a1c93578ac0534e Mon Sep 17 00:00:00 2001 From: Andries Mooij Date: Tue, 29 Nov 2022 10:11:27 +0100 Subject: [PATCH 2/4] Add tests --- tests/Features/ReturnTypes/ModelFactory.php | 5 +++++ tests/Type/data/model-factories.php | 1 + 2 files changed, 6 insertions(+) diff --git a/tests/Features/ReturnTypes/ModelFactory.php b/tests/Features/ReturnTypes/ModelFactory.php index 48c6bdef8..2bb83e0e6 100644 --- a/tests/Features/ReturnTypes/ModelFactory.php +++ b/tests/Features/ReturnTypes/ModelFactory.php @@ -85,6 +85,11 @@ public function testCreateOne(): Post return Post::factory()->createOne(); } + public function testCreateOneQuietly(): Post + { + return Post::factory()->createOneQuietly(); + } + /** @phpstan-return Collection */ public function testCreateMany(): Collection { diff --git a/tests/Type/data/model-factories.php b/tests/Type/data/model-factories.php index 4e894fa1e..d347d497e 100644 --- a/tests/Type/data/model-factories.php +++ b/tests/Type/data/model-factories.php @@ -8,6 +8,7 @@ assertType('Database\Factories\UserFactory', User::factory()); assertType('Database\Factories\UserFactory', User::factory()->new()); assertType('App\User', User::factory()->createOne()); +assertType('App\User', User::factory()->createOneQuietly()); assertType('Illuminate\Database\Eloquent\Collection', User::factory()->createMany([])); assertType('App\User', User::factory()->makeOne()); From fb4cf865bf7b220f3b514154fe1ed1144acf1d94 Mon Sep 17 00:00:00 2001 From: Andries Mooij Date: Tue, 29 Nov 2022 13:43:16 +0100 Subject: [PATCH 3/4] Add additional tests --- tests/Type/data/model-factories.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tests/Type/data/model-factories.php b/tests/Type/data/model-factories.php index d347d497e..de6da10b3 100644 --- a/tests/Type/data/model-factories.php +++ b/tests/Type/data/model-factories.php @@ -23,21 +23,26 @@ assertType('Illuminate\Database\Eloquent\Collection', User::factory(2)->create()); assertType('Illuminate\Database\Eloquent\Collection', User::factory(2)->createQuietly()); assertType('Illuminate\Database\Eloquent\Collection', User::factory(2)->make()); +assertType('App\User', User::factory(2)->createOneQuietly()); assertType('Illuminate\Database\Eloquent\Collection', User::factory()->count(1)->create()); assertType('Illuminate\Database\Eloquent\Collection', User::factory()->count(1)->createQuietly()); assertType('Illuminate\Database\Eloquent\Collection', User::factory()->count(1)->make()); +assertType('App\User', User::factory()->count(2)->createOneQuietly()); assertType('App\User', User::factory(2)->count(null)->create()); assertType('App\User', User::factory(2)->count(null)->createQuietly()); +assertType('App\User', User::factory(2)->count(null)->createOneQuietly()); assertType('App\User', User::factory(2)->count(null)->make()); assertType('App\User', User::factory(2)->count(null)->create()); assertType('App\User', User::factory(2)->count(null)->createQuietly()); +assertType('App\User', User::factory(2)->count(null)->createOneQuietly()); assertType('App\User', User::factory(2)->count(null)->make()); assertType('App\User', User::factory(2)->state(['foo'])->count(null)->create()); assertType('App\User', User::factory(2)->state(['foo'])->count(null)->createQuietly()); +assertType('App\User', User::factory(2)->state(['foo'])->count(null)->createOneQuietly()); assertType('App\User', User::factory(2)->state(['foo'])->count(null)->make()); function foo(?int $foo): void From 2baf30b7e3237515ca50d839dd784ff7daec13d1 Mon Sep 17 00:00:00 2001 From: Andries Mooij Date: Wed, 30 Nov 2022 11:39:09 +0100 Subject: [PATCH 4/4] Remove duplicated tests --- tests/Type/data/model-factories.php | 5 ----- 1 file changed, 5 deletions(-) diff --git a/tests/Type/data/model-factories.php b/tests/Type/data/model-factories.php index de6da10b3..2af2b654e 100644 --- a/tests/Type/data/model-factories.php +++ b/tests/Type/data/model-factories.php @@ -35,11 +35,6 @@ assertType('App\User', User::factory(2)->count(null)->createOneQuietly()); assertType('App\User', User::factory(2)->count(null)->make()); -assertType('App\User', User::factory(2)->count(null)->create()); -assertType('App\User', User::factory(2)->count(null)->createQuietly()); -assertType('App\User', User::factory(2)->count(null)->createOneQuietly()); -assertType('App\User', User::factory(2)->count(null)->make()); - assertType('App\User', User::factory(2)->state(['foo'])->count(null)->create()); assertType('App\User', User::factory(2)->state(['foo'])->count(null)->createQuietly()); assertType('App\User', User::factory(2)->state(['foo'])->count(null)->createOneQuietly());