diff --git a/packages/Webkul/Customer/src/Database/Factories/CustomerAddressFactory.php b/packages/Webkul/Customer/src/Database/Factories/CustomerAddressFactory.php new file mode 100644 index 000000000..98427224e --- /dev/null +++ b/packages/Webkul/Customer/src/Database/Factories/CustomerAddressFactory.php @@ -0,0 +1,28 @@ +define(CustomerAddress::class, function (Faker $faker) { + $now = date("Y-m-d H:i:s"); + return [ + 'customer_id' => function() { + return factory(Customer::class)->create()->id; + }, + 'address1' => $faker->streetAddress, + 'country' => $faker->countryCode, + 'state' => $faker->state, + 'city' => $faker->city, + 'postcode' => $faker->postcode, + 'phone' => $faker->e164PhoneNumber, + 'default_address' => 1, + 'created_at' => $now, + 'updated_at' => $now, + ]; +}); + + + diff --git a/packages/Webkul/Customer/src/Database/Factories/CustomerFactory.php b/packages/Webkul/Customer/src/Database/Factories/CustomerFactory.php new file mode 100644 index 000000000..7622b20dc --- /dev/null +++ b/packages/Webkul/Customer/src/Database/Factories/CustomerFactory.php @@ -0,0 +1,35 @@ +define(Customer::class, function (Faker $faker) { + $now = date("Y-m-d H:i:s"); + $gender = array_rand(['male', 'female', 'other']); + $password = $faker->password; + return [ + 'first_name' => $faker->firstName($gender), + 'last_name' => $faker->lastName, + 'gender' => ucfirst($gender), + 'email' => $faker->email, + 'status' => 1, + 'password' => Hash::make($password), + 'customer_group_id' => 2, + 'is_verified' => 1, + 'created_at' => $now, + 'updated_at' => $now, + 'notes' => json_encode(array('plain_password' => $password)), + ]; +}); + +$factory->state(Customer::class, 'male', [ + 'gender' => 'Male', +]); +$factory->state(Customer::class, 'female', [ + 'gender' => 'Female', +]); + + diff --git a/packages/Webkul/Customer/src/Providers/CustomerServiceProvider.php b/packages/Webkul/Customer/src/Providers/CustomerServiceProvider.php index 7311c808c..440fd4eaa 100755 --- a/packages/Webkul/Customer/src/Providers/CustomerServiceProvider.php +++ b/packages/Webkul/Customer/src/Providers/CustomerServiceProvider.php @@ -5,6 +5,7 @@ namespace Webkul\Customer\Providers; use Illuminate\Support\ServiceProvider; use Illuminate\Routing\Router; use Webkul\Customer\Http\Middleware\RedirectIfNotCustomer; +use Illuminate\Database\Eloquent\Factory as EloquentFactory; class CustomerServiceProvider extends ServiceProvider { @@ -15,5 +16,27 @@ class CustomerServiceProvider extends ServiceProvider $this->loadTranslationsFrom(__DIR__ . '/../Resources/lang', 'customer'); $this->loadMigrationsFrom(__DIR__ . '/../Database/Migrations'); + + $this->registerEloquentFactoriesFrom(__DIR__ . '/../Database/Factories'); + } + + /** + * Register services. + * + * @return void + */ + public function register(): void + { + } + + /** + * Register factories. + * + * @param string $path + * @return void + */ + protected function registerEloquentFactoriesFrom($path): void + { + $this->app->make(EloquentFactory::class)->load($path); } } diff --git a/tests/functional/Customer/CustomerCest.php b/tests/functional/Customer/CustomerCest.php index f6b77dd56..098e2c5a6 100644 --- a/tests/functional/Customer/CustomerCest.php +++ b/tests/functional/Customer/CustomerCest.php @@ -80,8 +80,8 @@ class CustomerCest $I->seeInSource('Address have been successfully added.'); $I->seeRecord(CustomerAddress::class, [ - 'company_name' => $fields['company'], - 'address1' => $fields['address1'], + 'company_name' => $fields['company_name'], + 'address1' => $fields['address1[]'], 'country' => $fields['country'], 'state' => $fields['state'], 'city' => $fields['city'],