Files
Wian Drs 1e80be180e
tests / ci (push) Has been cancelled
Initial commit device-management
2026-08-25 09:42:00 +07:00

39 lines
1.2 KiB
PHP

<?php
namespace Tests\Feature;
use App\Models\Tenant;
use App\Models\User;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Spatie\Permission\Models\Permission;
use Spatie\Permission\Models\Role;
use Tests\TestCase;
class PermissionTest extends TestCase
{
use RefreshDatabase;
public function test_role_assignments_are_tenant_scoped(): void
{
$tenantA = Tenant::factory()->create();
$tenantB = Tenant::factory()->create();
$userA = User::factory()->for($tenantA)->create();
$userB = User::factory()->for($tenantB)->create();
$permission = Permission::create(['name' => 'device.view', 'guard_name' => 'web']);
setPermissionsTeamId($tenantA->id);
$roleA = Role::create(['name' => 'NOC', 'guard_name' => 'web']);
$roleA->givePermissionTo($permission);
$userA->assignRole($roleA);
setPermissionsTeamId($tenantB->id);
$roleB = Role::create(['name' => 'NOC', 'guard_name' => 'web']);
$userB->assignRole($roleB);
setPermissionsTeamId($tenantA->id);
$this->assertTrue($userA->fresh()->can('device.view'));
setPermissionsTeamId($tenantB->id);
$this->assertFalse($userB->fresh()->can('device.view'));
}
}