added custom provider for min username length for faker

This commit is contained in:
2023-03-24 08:59:15 +10:00
parent 7c9f901a7a
commit d11ac9240c
3 changed files with 27 additions and 6 deletions

View File

@@ -41,7 +41,8 @@
}, },
"autoload-dev": { "autoload-dev": {
"psr-4": { "psr-4": {
"Tests\\": "tests/" "Tests\\": "tests/",
"Faker\\": "faker/"
} }
}, },
"scripts": { "scripts": {

View File

@@ -2,6 +2,7 @@
namespace Database\Factories; namespace Database\Factories;
use Faker\Provider\CustomInternetProvider;
use Illuminate\Database\Eloquent\Factories\Factory; use Illuminate\Database\Eloquent\Factories\Factory;
use Illuminate\Support\Str; use Illuminate\Support\Str;
@@ -17,13 +18,16 @@ class UserFactory extends Factory
*/ */
public function definition() public function definition()
{ {
$faker = \Faker\Factory::create();
$faker->addProvider(new CustomInternetProvider($faker));
return [ return [
'username' => fake()->unique()->userName(), 'username' => $faker->unique()->userNameWithMinLength(6),
'first_name' => fake()->firstName(), 'first_name' => $faker->firstName(),
'last_name' => fake()->lastName(), 'last_name' => $faker->lastName(),
'email' => fake()->safeEmail(), 'email' => $faker->safeEmail(),
'email_verified_at' => now(), 'email_verified_at' => now(),
'phone' => fake()->phoneNumber(), 'phone' => $faker->phoneNumber(),
'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password 'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password
'remember_token' => Str::random(10), 'remember_token' => Str::random(10),
]; ];

View File

@@ -0,0 +1,16 @@
<?php
namespace Faker\Provider;
use Faker\Provider\Internet as BaseInternet;
class CustomInternetProvider extends BaseInternet
{
public function userNameWithMinLength($minLength = 6)
{
$username = $this->userName();
while (strlen($username) < $minLength) {
$username .= $this->randomNumber();
}
return $username;
}
}