Browse Source

Add user roles relation test

pull/1/head
Nafies Luthfi 8 years ago
parent
commit
28bc2602ae
  1. 13
      app/Entities/Users/User.php
  2. 42
      tests/Unit/Models/UserTest.php

13
app/Entities/Users/User.php

@ -49,6 +49,19 @@ class User extends Authenticatable
} }
/** /**
* Remove the given role from the user.
*
* @param string $role
* @return mixed
*/
public function removeRole($role)
{
return $this->roles()->detach(
Role::whereName($role)->firstOrFail()
);
}
/**
* Determine if the user has the given role. * Determine if the user has the given role.
* *
* @param mixed $role * @param mixed $role

42
tests/Unit/Models/UserTest.php

@ -16,4 +16,46 @@ class UserTest extends TestCase
'target' => '_blank' 'target' => '_blank'
]), $user->nameLink()); ]), $user->nameLink());
} }
/** @test */
public function it_can_assigned_to_a_role()
{
$user = factory(User::class)->create();
$user->assignRole('admin');
$this->assertTrue($user->hasRole('admin'));
}
/** @test */
public function it_has_many_roles()
{
$user = factory(User::class)->create();
$user->assignRole('admin');
$user->assignRole('worker');
$this->assertTrue($user->hasRoles(['admin', 'worker']));
}
/** @test */
public function it_can_be_removed_from_a_role()
{
$user = factory(User::class)->create();
$user->assignRole('admin');
$user->assignRole('worker');
$this->assertTrue($user->hasRoles(['admin', 'worker']));
$user->removeRole('worker');
$this->assertFalse($user->fresh()->hasRole('worker'));
}
/** @test */
public function it_can_queried_by_roles()
{
$user = factory(User::class)->create();
$user->assignRole('vendor');
$user->assignRole('worker');
$this->assertCount(1, User::orderBy('name')->hasRoles(['vendor', 'worker'])->get());
}
} }
Loading…
Cancel
Save