TenantAtlas/tests/Feature/Filament/WorkspaceOverviewPermissionVisibilityTest.php
2026-03-09 22:52:00 +01:00

27 lines
996 B
PHP

<?php
declare(strict_types=1);
use App\Models\Tenant;
use App\Support\Workspaces\WorkspaceOverviewBuilder;
it('keeps switch workspace visible while hiding manage workspaces and unauthorized tenant counts for readonly members', function (): void {
$tenantA = Tenant::factory()->create(['status' => 'active']);
[$user, $tenantA] = createUserWithTenant($tenantA, role: 'owner', workspaceRole: 'readonly');
Tenant::factory()->create([
'status' => 'active',
'workspace_id' => (int) $tenantA->workspace_id,
'name' => 'Inaccessible Tenant',
]);
$workspace = $tenantA->workspace()->firstOrFail();
$overview = app(WorkspaceOverviewBuilder::class)->build($workspace, $user);
$quickActionKeys = collect($overview['quick_actions'])->pluck('key')->all();
expect($overview['accessible_tenant_count'])->toBe(1)
->and($quickActionKeys)->toContain('switch_workspace')
->and($quickActionKeys)->not->toContain('manage_workspaces');
});