<?php

declare(strict_types=1);

use App\Filament\Resources\BackupSetResource;
use App\Models\BackupSet;
use App\Models\OperationRun;
use App\Support\OperationCatalog;
use App\Support\OperationRunLinks;

it('renders backup set related context with the source operation label and id', function (): void {
    [$user, $tenant] = createUserWithTenant(role: 'owner');
    $this->actingAs($user);

    $backupSet = BackupSet::factory()->for($tenant)->create([
        'name' => 'Nightly backup',
    ]);

    $run = OperationRun::factory()->for($tenant)->create([
        'workspace_id' => (int) $tenant->workspace_id,
        'type' => 'backup_set.update',
        'context' => [
            'backup_set_id' => (int) $backupSet->getKey(),
        ],
    ]);

    $this->get(BackupSetResource::getUrl('view', ['record' => $backupSet], tenant: $tenant))
        ->assertOk()
        ->assertSee(OperationCatalog::label((string) $run->type))
        ->assertSee(OperationRunLinks::identifier($run))
        ->assertSee(OperationRunLinks::openLabel())
        ->assertDontSee('Run #'.$run->getKey());
});
