<?php

declare(strict_types=1);

use App\Support\References\ReferenceResolutionState;
use App\Support\References\ReferenceStatePresenter;

it('maps reference states to badge vocabulary', function (ReferenceResolutionState $state, string $label, string $color): void {
    $badge = app(ReferenceStatePresenter::class)->badgeSpec($state);

    expect($badge->label)->toBe($label)
        ->and($badge->color)->toBe($color);
})->with([
    [ReferenceResolutionState::Resolved, 'Resolved', 'success'],
    [ReferenceResolutionState::PartiallyResolved, 'Partially linked', 'warning'],
    [ReferenceResolutionState::Unresolved, 'Unresolved', 'gray'],
    [ReferenceResolutionState::DeletedOrMissing, 'Missing', 'gray'],
    [ReferenceResolutionState::Inaccessible, 'Access denied', 'danger'],
    [ReferenceResolutionState::ExternalLimitedContext, 'Provider-only', 'info'],
]);
