48 lines
1.9 KiB
PHP
48 lines
1.9 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
use App\Filament\Widgets\ManagedEnvironment\ManagedEnvironmentTriageArrivalContinuity;
|
|
use App\Support\BackupHealth\TenantBackupHealthAssessment;
|
|
use App\Support\PortfolioTriage\PortfolioArrivalContextToken;
|
|
use App\Support\Workspaces\WorkspaceContext;
|
|
use Livewire\Livewire;
|
|
use Tests\Feature\Concerns\BuildsPortfolioTriageFixtures;
|
|
|
|
uses(BuildsPortfolioTriageFixtures::class);
|
|
|
|
it('uses the widget record context when Filament tenant context is missing', function (): void {
|
|
[$user, $tenant] = $this->makePortfolioTriageActor('Record context tenant', workspaceRole: 'owner');
|
|
|
|
$this->seedPortfolioBackupConcern($tenant, TenantBackupHealthAssessment::POSTURE_STALE);
|
|
|
|
$this->actingAs($user);
|
|
session()->put(WorkspaceContext::SESSION_KEY, (int) $tenant->workspace_id);
|
|
|
|
setAdminPanelContext(null);
|
|
request()->attributes->remove('portfolio_triage.arrival_context');
|
|
|
|
$arrivalState = [
|
|
'sourceSurface' => PortfolioArrivalContextToken::SOURCE_TENANT_REGISTRY,
|
|
'tenantRouteKey' => (string) $tenant->external_id,
|
|
'workspaceId' => (int) $tenant->workspace_id,
|
|
'concernFamily' => PortfolioArrivalContextToken::FAMILY_BACKUP_HEALTH,
|
|
'concernState' => TenantBackupHealthAssessment::POSTURE_STALE,
|
|
'concernReason' => TenantBackupHealthAssessment::REASON_LATEST_BACKUP_STALE,
|
|
];
|
|
|
|
$component = Livewire::withQueryParams([
|
|
PortfolioArrivalContextToken::QUERY_PARAMETER => PortfolioArrivalContextToken::encode($arrivalState),
|
|
])->actingAs($user)->test(ManagedEnvironmentTriageArrivalContinuity::class, [
|
|
'record' => $tenant,
|
|
]);
|
|
|
|
$instance = $component->instance();
|
|
|
|
$method = new ReflectionMethod($instance, 'getViewData');
|
|
$method->setAccessible(true);
|
|
$viewData = $method->invoke($instance);
|
|
|
|
expect($viewData['context'] ?? null)->not->toBeNull();
|
|
});
|