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. * 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..2af2b654e 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()); @@ -22,21 +23,21 @@ 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)->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