add role permission logic

This commit is contained in:
root
2026-03-10 17:11:48 -04:00
parent abebe0d9c0
commit c235fd2170
40 changed files with 1896 additions and 838 deletions
@@ -0,0 +1,24 @@
<?php
namespace Tests\Unit\Resources\Roles;
use App\Http\Resources\Roles\PermissionResource;
use Tests\TestCase;
class PermissionResourceTest extends TestCase
{
public function test_resource_shape(): void
{
$resource = new PermissionResource([
'id' => 1,
'name' => 'manage_roles',
'description' => 'Manage roles',
]);
$payload = $resource->toArray(request());
$this->assertArrayHasKey('id', $payload);
$this->assertArrayHasKey('name', $payload);
$this->assertArrayHasKey('description', $payload);
}
}
@@ -0,0 +1,25 @@
<?php
namespace Tests\Unit\Resources\Roles;
use App\Http\Resources\Roles\RolePermissionResource;
use Tests\TestCase;
class RolePermissionResourceTest extends TestCase
{
public function test_resource_shape(): void
{
$resource = new RolePermissionResource([
'id' => 1,
'name' => 'manage_roles',
'can_create' => 1,
'can_read' => 0,
]);
$payload = $resource->toArray(request());
$this->assertArrayHasKey('permission_id', $payload);
$this->assertArrayHasKey('can_create', $payload);
$this->assertArrayHasKey('can_read', $payload);
}
}
@@ -0,0 +1,29 @@
<?php
namespace Tests\Unit\Resources\Roles;
use App\Http\Resources\Roles\RoleResource;
use Tests\TestCase;
class RoleResourceTest extends TestCase
{
public function test_resource_shape(): void
{
$resource = new RoleResource([
'id' => 1,
'name' => 'admin',
'slug' => 'admin',
'description' => 'Admin',
'dashboard_route' => 'administrator/administratordashboard',
'priority' => 1,
'is_active' => 1,
]);
$payload = $resource->toArray(request());
$this->assertArrayHasKey('id', $payload);
$this->assertArrayHasKey('name', $payload);
$this->assertArrayHasKey('slug', $payload);
$this->assertArrayHasKey('dashboard_route', $payload);
}
}
@@ -0,0 +1,26 @@
<?php
namespace Tests\Unit\Resources\Roles;
use App\Http\Resources\Roles\UserWithRolesResource;
use Tests\TestCase;
class UserWithRolesResourceTest extends TestCase
{
public function test_resource_shape(): void
{
$resource = new UserWithRolesResource([
'id' => 1,
'firstname' => 'Admin',
'lastname' => 'User',
'email' => 'admin@example.com',
'account_id' => 'A1',
'roles' => 'admin,teacher',
]);
$payload = $resource->toArray(request());
$this->assertArrayHasKey('roles', $payload);
$this->assertCount(2, $payload['roles']);
}
}