From d11ac9240c45afae635c2930e777451ac106fcaa Mon Sep 17 00:00:00 2001 From: James Collins Date: Fri, 24 Mar 2023 08:59:15 +1000 Subject: [PATCH] added custom provider for min username length for faker --- composer.json | 3 ++- database/factories/UserFactory.php | 14 +++++++++----- faker/provider/CustomInternetProvider.php | 16 ++++++++++++++++ 3 files changed, 27 insertions(+), 6 deletions(-) create mode 100644 faker/provider/CustomInternetProvider.php diff --git a/composer.json b/composer.json index 1e9d3a0..8fc9264 100644 --- a/composer.json +++ b/composer.json @@ -41,7 +41,8 @@ }, "autoload-dev": { "psr-4": { - "Tests\\": "tests/" + "Tests\\": "tests/", + "Faker\\": "faker/" } }, "scripts": { diff --git a/database/factories/UserFactory.php b/database/factories/UserFactory.php index 08b27b6..065d051 100644 --- a/database/factories/UserFactory.php +++ b/database/factories/UserFactory.php @@ -2,6 +2,7 @@ namespace Database\Factories; +use Faker\Provider\CustomInternetProvider; use Illuminate\Database\Eloquent\Factories\Factory; use Illuminate\Support\Str; @@ -17,13 +18,16 @@ class UserFactory extends Factory */ public function definition() { + $faker = \Faker\Factory::create(); + $faker->addProvider(new CustomInternetProvider($faker)); + return [ - 'username' => fake()->unique()->userName(), - 'first_name' => fake()->firstName(), - 'last_name' => fake()->lastName(), - 'email' => fake()->safeEmail(), + 'username' => $faker->unique()->userNameWithMinLength(6), + 'first_name' => $faker->firstName(), + 'last_name' => $faker->lastName(), + 'email' => $faker->safeEmail(), 'email_verified_at' => now(), - 'phone' => fake()->phoneNumber(), + 'phone' => $faker->phoneNumber(), 'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password 'remember_token' => Str::random(10), ]; diff --git a/faker/provider/CustomInternetProvider.php b/faker/provider/CustomInternetProvider.php new file mode 100644 index 0000000..2594fc2 --- /dev/null +++ b/faker/provider/CustomInternetProvider.php @@ -0,0 +1,16 @@ +userName(); + while (strlen($username) < $minLength) { + $username .= $this->randomNumber(); + } + return $username; + } +}