seed(RolesAndPermissionsSeeder::class); $admin = User::factory()->create(['is_active' => true]); $admin->assignRole('admin'); $editor = User::factory()->create(['is_active' => true]); $editor->assignRole('editor'); expect($admin->canAccessAdmin())->toBeTrue(); expect($editor->canAccessAdmin())->toBeTrue(); }); test('inactive users cannot access admin area', function () { /** @var TestCase $this */ $this->seed(RolesAndPermissionsSeeder::class); $admin = User::factory()->create(['is_active' => false]); $admin->assignRole('admin'); expect($admin->canAccessAdmin())->toBeFalse(); }); test('super admin can access admin area without role', function () { $user = User::factory()->create([ 'is_active' => true, 'is_super_admin' => true, ]); expect($user->canAccessAdmin())->toBeTrue(); }); test('active customer and staff users can access customer area', function () { /** @var TestCase $this */ $this->seed(RolesAndPermissionsSeeder::class); $customer = User::factory()->create(['is_active' => true]); $customer->assignRole('customer'); $admin = User::factory()->create(['is_active' => true]); $admin->assignRole('admin'); expect($customer->canAccessCustomer())->toBeTrue(); expect($admin->canAccessCustomer())->toBeTrue(); }); test('api-only and inactive users cannot access customer area', function () { /** @var TestCase $this */ $this->seed(RolesAndPermissionsSeeder::class); $apiOnly = User::factory()->create(['is_active' => true]); $apiOnly->assignRole('api-only'); $inactiveCustomer = User::factory()->create(['is_active' => false]); $inactiveCustomer->assignRole('customer'); expect($apiOnly->canAccessCustomer())->toBeFalse(); expect($inactiveCustomer->canAccessCustomer())->toBeFalse(); });