presseportale/tests/Feature/Auth/UserAccessTest.php
Kevin Adametz 5b8bdf4182
Some checks are pending
linter / quality (push) Waiting to run
tests / ci (push) Waiting to run
12-05-2026 Frontend dev
2026-05-12 18:32:33 +02:00

66 lines
2 KiB
PHP

<?php
use App\Models\User;
use Database\Seeders\RolesAndPermissionsSeeder;
use Tests\TestCase;
test('active admin and editor users can access admin area', function () {
/** @var TestCase $this */
$this->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();
});