<?php

declare(strict_types=1);

use App\Models\OperationRun;
use App\Support\Workspaces\WorkspaceContext;

it('surfaces stale and reconciled lifecycle counts in operations monitoring', function (): void {
    [$user, $tenant] = createUserWithTenant(role: 'owner');

    OperationRun::factory()->create([
        'managed_environment_id' => (int) $tenant->getKey(),
        'workspace_id' => (int) $tenant->workspace_id,
        'type' => 'policy.sync',
        'status' => 'running',
        'outcome' => 'pending',
        'started_at' => now()->subMinutes(20),
        'created_at' => now()->subMinutes(20),
    ]);

    OperationRun::factory()->create([
        'managed_environment_id' => (int) $tenant->getKey(),
        'workspace_id' => (int) $tenant->workspace_id,
        'type' => 'restore.execute',
        'status' => 'completed',
        'outcome' => 'failed',
        'context' => [
            'reason_code' => 'run.adapter_out_of_sync',
            'reconciliation' => [
                'reconciled_at' => now()->toIso8601String(),
                'reason' => 'run.adapter_out_of_sync',
                'reason_code' => 'run.adapter_out_of_sync',
                'source' => 'adapter_reconciler',
            ],
        ],
    ]);

    $this->actingAs($user)
        ->withSession([WorkspaceContext::SESSION_KEY => (int) $tenant->workspace_id])
        ->get(\App\Support\OperationRunLinks::index())
        ->assertOk()
        ->assertSee('1 active operation(s) are beyond their lifecycle window and belong in the stale-attention view.')
        ->assertSee('1 operation(s) already carry reconciled stale lineage and belong in terminal follow-up.');
});
