83 lines
2.6 KiB
PHP
83 lines
2.6 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
use App\Filament\System\Pages\Directory\ViewWorkspace;
|
|
use App\Models\PlatformUser;
|
|
use App\Models\Tenant;
|
|
use App\Models\User;
|
|
use App\Models\Workspace;
|
|
use App\Models\WorkspaceMembership;
|
|
use App\Services\Settings\SettingsWriter;
|
|
use App\Support\Auth\PlatformCapabilities;
|
|
|
|
it('renders the read-only workspace entitlement summary on the system workspace detail page', function (): void {
|
|
$workspace = Workspace::factory()->create(['name' => 'Acme Workspace']);
|
|
$manager = User::factory()->create(['name' => 'Workspace Manager']);
|
|
|
|
WorkspaceMembership::factory()->create([
|
|
'workspace_id' => (int) $workspace->getKey(),
|
|
'user_id' => (int) $manager->getKey(),
|
|
'role' => 'manager',
|
|
]);
|
|
|
|
Tenant::factory()->count(2)->create([
|
|
'workspace_id' => (int) $workspace->getKey(),
|
|
'status' => Tenant::STATUS_ACTIVE,
|
|
]);
|
|
|
|
$writer = app(SettingsWriter::class);
|
|
$writer->updateWorkspaceSetting(
|
|
actor: $manager,
|
|
workspace: $workspace,
|
|
domain: 'entitlements',
|
|
key: 'plan_profile',
|
|
value: 'starter',
|
|
);
|
|
$writer->updateWorkspaceSetting(
|
|
actor: $manager,
|
|
workspace: $workspace,
|
|
domain: 'entitlements',
|
|
key: 'managed_tenant_limit_override_value',
|
|
value: 2,
|
|
);
|
|
$writer->updateWorkspaceSetting(
|
|
actor: $manager,
|
|
workspace: $workspace,
|
|
domain: 'entitlements',
|
|
key: 'managed_tenant_limit_override_reason',
|
|
value: 'Pilot workspace',
|
|
);
|
|
$writer->updateWorkspaceSetting(
|
|
actor: $manager,
|
|
workspace: $workspace,
|
|
domain: 'entitlements',
|
|
key: 'review_pack_generation_override_value',
|
|
value: false,
|
|
);
|
|
$writer->updateWorkspaceSetting(
|
|
actor: $manager,
|
|
workspace: $workspace,
|
|
domain: 'entitlements',
|
|
key: 'review_pack_generation_override_reason',
|
|
value: 'Escalation only',
|
|
);
|
|
|
|
$platformUser = PlatformUser::factory()->create([
|
|
'capabilities' => [
|
|
PlatformCapabilities::ACCESS_SYSTEM_PANEL,
|
|
PlatformCapabilities::DIRECTORY_VIEW,
|
|
],
|
|
'is_active' => true,
|
|
]);
|
|
|
|
$this->actingAs($platformUser, 'platform')
|
|
->get(ViewWorkspace::getUrl(panel: 'system', parameters: ['workspace' => $workspace]))
|
|
->assertSuccessful()
|
|
->assertSee('Workspace entitlements')
|
|
->assertSee('Starter')
|
|
->assertSee('Pilot workspace')
|
|
->assertSee('Escalation only')
|
|
->assertSee('workspace override')
|
|
->assertDontSee('Save');
|
|
}); |