You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
26 lines
718 B
26 lines
718 B
<?php
|
|
|
|
use App\Domains\Identity\Actions\AccessControl\UpdateUserRole;
|
|
use App\Domains\Identity\Models\Role;
|
|
use App\Domains\Identity\Models\User;
|
|
use Illuminate\Foundation\Testing\RefreshDatabase;
|
|
|
|
uses(RefreshDatabase::class);
|
|
|
|
test('it can sync user roles', function () {
|
|
// Setup
|
|
$user = User::factory()->create();
|
|
$role1 = Role::create(['name' => 'Role 1', 'guard_name' => 'web']);
|
|
$role2 = Role::create(['name' => 'Role 2', 'guard_name' => 'web']);
|
|
|
|
$user->assignRole($role1);
|
|
|
|
$action = new UpdateUserRole();
|
|
|
|
// Execute
|
|
$action->execute($user, ['Role 2']);
|
|
|
|
// Assert
|
|
expect($user->hasRole('Role 1'))->toBeFalse()
|
|
->and($user->hasRole('Role 2'))->toBeTrue();
|
|
});
|
|
|