<?php

declare(strict_types=1);

use App\Filament\Pages\InventoryCoverage;
use App\Filament\Resources\InventoryItemResource;
use App\Models\InventoryItem;
use App\Models\OperationRun;
use Illuminate\Support\Facades\Bus;

it('renders Inventory hub surfaces DB-only (no outbound HTTP, no background work)', function (): void {
    [$user, $tenant] = createUserWithTenant(role: 'owner');

    InventoryItem::factory()->create([
        'managed_environment_id' => $tenant->getKey(),
        'display_name' => 'Item A',
        'policy_type' => 'deviceConfiguration',
        'external_id' => 'item-a',
        'platform' => 'windows',
    ]);

    OperationRun::factory()->create([
        'managed_environment_id' => $tenant->getKey(),
        'workspace_id' => $tenant->workspace_id,
        'type' => 'inventory_sync',
        'status' => 'completed',
        'outcome' => 'succeeded',
        'context' => ['selection_hash' => str_repeat('a', 64)],
        'completed_at' => now(),
    ]);

    $this->actingAs($user);

    Bus::fake();

    assertNoOutboundHttp(function () use ($tenant): void {
        $this->get(InventoryItemResource::getUrl('index', tenant: $tenant))
            ->assertOk()
            ->assertSee('Run Inventory Sync')
            ->assertSee('Item A');

        $this->get(InventoryCoverage::getUrl(tenant: $tenant))
            ->assertOk()
            ->assertSee('ManagedEnvironment coverage truth');
    });

    Bus::assertNothingDispatched();
});
