From e58badf70ea0188eecaa973504ec6d9ac162865d Mon Sep 17 00:00:00 2001 From: myrmidex Date: Sat, 15 Aug 2026 10:07:40 +0200 Subject: [PATCH] 152 - Give factories unique values for constrained columns --- database/factories/FeedFactory.php | 2 +- database/factories/LanguageFactory.php | 4 +++- database/factories/PlatformAccountFactory.php | 2 +- database/factories/PlatformInstanceFactory.php | 4 ++-- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/database/factories/FeedFactory.php b/database/factories/FeedFactory.php index fc0cb805..0d59ef3c 100644 --- a/database/factories/FeedFactory.php +++ b/database/factories/FeedFactory.php @@ -17,7 +17,7 @@ public function definition(): array { return [ 'name' => $this->faker->words(3, true), - 'url' => $this->faker->url(), + 'url' => $this->faker->unique()->url(), 'type' => $this->faker->randomElement(['website', 'rss']), 'provider' => $this->faker->randomElement(['vrt', 'belga']), 'language_id' => null, diff --git a/database/factories/LanguageFactory.php b/database/factories/LanguageFactory.php index c5ea2bf0..e7ece2e3 100644 --- a/database/factories/LanguageFactory.php +++ b/database/factories/LanguageFactory.php @@ -15,7 +15,9 @@ class LanguageFactory extends Factory public function definition(): array { return [ - 'short_code' => $this->faker->unique()->languageCode(), + // Not a real language code: tests hardcode 'en', 'fr', 'nl' and + // others, and faker's pool would collide with them. + 'short_code' => 'x-'.$this->faker->unique()->numerify('####'), 'name' => $this->faker->unique()->word(), 'native_name' => $this->faker->optional()->word(), 'is_active' => true, diff --git a/database/factories/PlatformAccountFactory.php b/database/factories/PlatformAccountFactory.php index 630446ae..92f1f544 100644 --- a/database/factories/PlatformAccountFactory.php +++ b/database/factories/PlatformAccountFactory.php @@ -19,7 +19,7 @@ public function definition(): array return [ 'platform' => PlatformEnum::LEMMY, 'instance_url' => 'https://lemmy.'.$this->faker->domainName(), - 'username' => $this->faker->userName(), + 'username' => $this->faker->unique()->userName(), 'password' => 'test-password', 'settings' => [], 'is_active' => true, diff --git a/database/factories/PlatformInstanceFactory.php b/database/factories/PlatformInstanceFactory.php index 956427d2..dc1a82e6 100644 --- a/database/factories/PlatformInstanceFactory.php +++ b/database/factories/PlatformInstanceFactory.php @@ -17,7 +17,7 @@ public function definition(): array return [ 'platform' => 'lemmy', 'name' => $this->faker->words(2, true), - 'url' => $this->faker->url(), + 'url' => $this->faker->unique()->url(), 'is_active' => true, ]; } @@ -34,7 +34,7 @@ public function lemmy(): static return $this->state(fn (array $attributes) => [ 'platform' => 'lemmy', 'name' => 'Lemmy '.$this->faker->word(), - 'url' => 'https://lemmy.'.$this->faker->domainName(), + 'url' => 'https://lemmy.'.$this->faker->unique()->domainName(), ]); } }