diff --git a/app/Entities/Users/User.php b/app/Entities/Users/User.php index 183a6a3..c1f4d38 100644 --- a/app/Entities/Users/User.php +++ b/app/Entities/Users/User.php @@ -11,8 +11,8 @@ class User extends Authenticatable { use Notifiable, PresentableTrait; - protected $fillable = ['name', 'email', 'password']; - protected $hidden = ['password', 'remember_token', 'api_token']; + protected $fillable = ['name', 'email', 'password']; + protected $hidden = ['password', 'remember_token', 'api_token']; protected $presenter = UserPresenter::class; public function setPasswordAttribute($value) @@ -41,10 +41,16 @@ class User extends Authenticatable * @param string $role * @return mixed */ - public function assignRole($role) + public function assignRole($roleName) { - $roleId = Role::whereName($role)->firstOrFail()->id; - return $this->roles()->attach($roleId); + $role = Role::firstOrNew(['name' => $roleName]); + + if ($role->exists == false) { + $role->label = ucwords($roleName); + $role->save(); + } + + return $this->roles()->attach($role); } /** @@ -71,7 +77,7 @@ class User extends Authenticatable return $this->roles->contains('name', $role); } - return !!$role->intersect($this->roles)->count(); + return ! ! $role->intersect($this->roles)->count(); } public function hasRoles(array $roleNameArray) diff --git a/database/seeds/DatabaseSeeder.php b/database/seeds/DatabaseSeeder.php index a896d9c..879683b 100644 --- a/database/seeds/DatabaseSeeder.php +++ b/database/seeds/DatabaseSeeder.php @@ -1,6 +1,5 @@ call(UserRolesPermissionsTableSeeder::class); - $this->call(UsersTableSeeder::class); - $this->call(UsersRoleTableSeeder::class); - Model::reguard(); + // } } diff --git a/database/seeds/UserRolesPermissionsTableSeeder.php b/database/seeds/UserRolesPermissionsTableSeeder.php deleted file mode 100644 index d6b60a6..0000000 --- a/database/seeds/UserRolesPermissionsTableSeeder.php +++ /dev/null @@ -1,22 +0,0 @@ -tableToSeed)->truncate(); - DB::table($this->tableToSeed)->insert([ - ['type' => 0, 'name' => 'admin', 'label' => 'Admin'], - ['type' => 0, 'name' => 'worker', 'label' => 'Worker'], - ]); - } -} diff --git a/database/seeds/UsersRoleTableSeeder.php b/database/seeds/UsersRoleTableSeeder.php deleted file mode 100644 index efdbf1e..0000000 --- a/database/seeds/UsersRoleTableSeeder.php +++ /dev/null @@ -1,22 +0,0 @@ -tableToSeed)->truncate(); - DB::table($this->tableToSeed)->insert([ - ['user_id' => 1, 'role_id' => 1], - ['user_id' => 2, 'role_id' => 2], - ]); - } -} diff --git a/database/seeds/UsersTableSeeder.php b/database/seeds/UsersTableSeeder.php deleted file mode 100644 index bff3ece..0000000 --- a/database/seeds/UsersTableSeeder.php +++ /dev/null @@ -1,36 +0,0 @@ -tableToSeed)->truncate(); - DB::table($this->tableToSeed)->insert([ - [ - 'name' => 'Administrator', - 'email' => 'admin@app.dev', - 'password' => bcrypt('admin'), - 'remember_token' => str_random(10), - 'created_at' => date('Y-m-d H:i:s'), - 'updated_at' => date('Y-m-d H:i:s'), - ], - [ - 'name' => 'Customer', - 'email' => 'member@app.dev', - 'password' => bcrypt('member'), - 'remember_token' => str_random(10), - 'created_at' => date('Y-m-d H:i:s'), - 'updated_at' => date('Y-m-d H:i:s'), - ] - ]); - } -} diff --git a/tests/Feature/Auth/MemberRegistrationTest.php b/tests/Feature/Auth/MemberRegistrationTest.php index bb8d54c..9543098 100644 --- a/tests/Feature/Auth/MemberRegistrationTest.php +++ b/tests/Feature/Auth/MemberRegistrationTest.php @@ -2,6 +2,7 @@ namespace Tests\Feature\Auth; +use App\Entities\Users\User; use Tests\TestCase; class MemberRegistrationTest extends TestCase @@ -9,12 +10,14 @@ class MemberRegistrationTest extends TestCase /** @test */ public function registration_validation() { + factory(User::class)->create(['email' => 'member@app.dev']); + $this->visit(route('auth.register')); $this->submitForm(trans('auth.register'), [ - 'name' => '', - 'email' => 'member@app.dev', - 'password' => '', + 'name' => '', + 'email' => 'member@app.dev', + 'password' => '', 'password_confirmation' => '', ]); @@ -25,9 +28,9 @@ class MemberRegistrationTest extends TestCase $this->see('Konfirmasi password harus diisi.'); $this->submitForm(trans('auth.register'), [ - 'name' => 'Nama Member', - 'email' => 'email', - 'password' => 'password', + 'name' => 'Nama Member', + 'email' => 'email', + 'password' => 'password', 'password_confirmation' => 'password..', ]); @@ -41,9 +44,9 @@ class MemberRegistrationTest extends TestCase { $this->visit(route('auth.register')); $this->submitForm(trans('auth.register'), [ - 'name' => 'Nama Member', - 'email' => 'email@mail.com', - 'password' => 'password.111', + 'name' => 'Nama Member', + 'email' => 'email@mail.com', + 'password' => 'password.111', 'password_confirmation' => 'password.111', ]); $this->seePageIs(route('home')); diff --git a/tests/Feature/ManageUsersTest.php b/tests/Feature/ManageUsersTest.php index 748d684..576d5f9 100644 --- a/tests/Feature/ManageUsersTest.php +++ b/tests/Feature/ManageUsersTest.php @@ -7,6 +7,16 @@ use Tests\TestCase; class ManageUsersTest extends TestCase { + public function setUp() + { + parent::setUp(); + + \DB::table('roles_permissions')->insert([ + ['type' => 0, 'name' => 'admin', 'label' => 'Admin'], + ['type' => 0, 'name' => 'worker', 'label' => 'Worker'], + ]); + } + /** @test */ public function admin_can_insert_new_user() { diff --git a/tests/Traits/DatabaseMigrateSeeds.php b/tests/Traits/DatabaseMigrateSeeds.php index de59cd9..cc6642b 100644 --- a/tests/Traits/DatabaseMigrateSeeds.php +++ b/tests/Traits/DatabaseMigrateSeeds.php @@ -14,7 +14,7 @@ trait DatabaseMigrateSeeds public function runDatabaseMigrateSeeds() { $this->artisan('migrate'); - $this->artisan('db:seed'); + // $this->artisan('db:seed'); $this->app[Kernel::class]->setArtisan(null); } diff --git a/tests/Unit/Models/UserTest.php b/tests/Unit/Models/UserTest.php index c992975..23ed9f8 100644 --- a/tests/Unit/Models/UserTest.php +++ b/tests/Unit/Models/UserTest.php @@ -55,6 +55,6 @@ class UserTest extends TestCase $user = factory(User::class)->create(); $user->assignRole('worker'); - $this->assertCount(2, User::orderBy('name')->hasRoles(['worker'])->get()); + $this->assertCount(1, User::orderBy('name')->hasRoles(['worker'])->get()); } }