<?php

declare(strict_types=1);

use App\Support\Badges\BadgeCatalog;
use App\Support\Badges\BadgeDomain;

it('maps baseline snapshot fidelity states through the shared badge catalog', function (): void {
    $full = BadgeCatalog::spec(BadgeDomain::BaselineSnapshotFidelity, 'full');
    $referenceOnly = BadgeCatalog::spec(BadgeDomain::BaselineSnapshotFidelity, 'reference_only');
    $unsupported = BadgeCatalog::spec(BadgeDomain::BaselineSnapshotFidelity, 'unsupported');

    expect($full->label)->toBe('Detailed evidence')
        ->and($full->color)->toBe('success')
        ->and($referenceOnly->label)->toBe('Metadata only')
        ->and($referenceOnly->color)->toBe('info')
        ->and($unsupported->label)->toBe('Support limited')
        ->and($unsupported->color)->toBe('gray');
});

it('maps baseline snapshot gap states through the shared badge catalog', function (): void {
    $clear = BadgeCatalog::spec(BadgeDomain::BaselineSnapshotGapStatus, 'clear');
    $present = BadgeCatalog::spec(BadgeDomain::BaselineSnapshotGapStatus, 'gaps_present');

    expect($clear->label)->toBe('No follow-up needed')
        ->and($clear->color)->toBe('success')
        ->and($present->label)->toBe('Coverage gaps need review')
        ->and($present->color)->toBe('warning');
});
