43 lines
1.1 KiB
PHP
43 lines
1.1 KiB
PHP
<?php
|
|
|
|
namespace Tests\Unit\Services\Auth;
|
|
|
|
use App\Services\Auth\PermissionCheckService;
|
|
use Illuminate\Foundation\Testing\RefreshDatabase;
|
|
use Illuminate\Support\Facades\DB;
|
|
use Tests\TestCase;
|
|
|
|
class PermissionCheckServiceTest extends TestCase
|
|
{
|
|
use RefreshDatabase;
|
|
|
|
public function test_has_permission_returns_true_when_assigned(): void
|
|
{
|
|
$permissionId = DB::table('permissions')->insertGetId([
|
|
'name' => 'edit_students',
|
|
'description' => 'Edit students',
|
|
]);
|
|
|
|
$roleId = DB::table('roles')->insertGetId([
|
|
'name' => 'admin',
|
|
'priority' => 1,
|
|
]);
|
|
|
|
DB::table('user_roles')->insert([
|
|
'user_id' => 10,
|
|
'role_id' => $roleId,
|
|
]);
|
|
|
|
DB::table('role_permissions')->insert([
|
|
'role_id' => $roleId,
|
|
'permission_id' => $permissionId,
|
|
'can_read' => 1,
|
|
]);
|
|
|
|
$service = new PermissionCheckService();
|
|
|
|
$this->assertTrue($service->hasPermission(10, 'edit_students'));
|
|
$this->assertFalse($service->hasPermission(10, 'missing_perm'));
|
|
}
|
|
}
|