<?php

declare(strict_types=1);

use App\Filament\Resources\PolicyVersionResource;
use App\Models\ManagedEnvironment;
use App\Models\Policy;
use App\Models\PolicyVersion;
use App\Support\Workspaces\WorkspaceContext;
use Filament\Facades\Filament;

it('disables policy-version global search explicitly for the rollout', function (): void {
    $property = new \ReflectionProperty(PolicyVersionResource::class, 'isGloballySearchable');
    $property->setAccessible(true);

    expect($property->getValue())->toBeFalse();
});

it('returns no policy-version global-search results even with a remembered canonical admin tenant', function (): void {
    $tenant = ManagedEnvironment::factory()->create();
    [$user, $tenant] = createUserWithTenant(tenant: $tenant, role: 'owner');

    $policy = Policy::factory()->for($tenant)->create();

    PolicyVersion::factory()->for($tenant)->for($policy)->create([
        'version_number' => 7,
    ]);

    $this->actingAs($user);
    Filament::setCurrentPanel('admin');
    Filament::setTenant(null, true);
    Filament::bootCurrentPanel();

    session()->put(WorkspaceContext::SESSION_KEY, (int) $tenant->workspace_id);
    session()->put(WorkspaceContext::LAST_ENVIRONMENT_IDS_SESSION_KEY, [
        (string) $tenant->workspace_id => (int) $tenant->getKey(),
    ]);

    expect(PolicyVersionResource::getGlobalSearchResults('7'))
        ->toHaveCount(0);
});
