label)->toBe('Pending') ->and($pending->color)->toBe('warning'); $expiring = BadgeCatalog::spec(BadgeDomain::FindingExceptionStatus, FindingException::STATUS_EXPIRING); expect($expiring->label)->toBe('Expiring') ->and($expiring->color)->toBe('warning'); $expired = BadgeCatalog::spec(BadgeDomain::FindingExceptionStatus, FindingException::STATUS_EXPIRED); expect($expired->label)->toBe('Expired') ->and($expired->color)->toBe('danger'); $revoked = BadgeCatalog::spec(BadgeDomain::FindingExceptionStatus, FindingException::STATUS_REVOKED); expect($revoked->label)->toBe('Revoked') ->and($revoked->color)->toBe('danger'); }); it('maps governance validity states to canonical badge semantics', function (): void { $valid = BadgeCatalog::spec(BadgeDomain::FindingRiskGovernanceValidity, FindingException::VALIDITY_VALID); expect($valid->label)->toBe('Valid') ->and($valid->color)->toBe('success'); $expiring = BadgeCatalog::spec(BadgeDomain::FindingRiskGovernanceValidity, FindingException::VALIDITY_EXPIRING); expect($expiring->label)->toBe('Expiring') ->and($expiring->color)->toBe('warning'); $expired = BadgeCatalog::spec(BadgeDomain::FindingRiskGovernanceValidity, FindingException::VALIDITY_EXPIRED); expect($expired->label)->toBe('Expired') ->and($expired->color)->toBe('danger'); $missingSupport = BadgeCatalog::spec(BadgeDomain::FindingRiskGovernanceValidity, FindingException::VALIDITY_MISSING_SUPPORT); expect($missingSupport->label)->toBe('Missing support') ->and($missingSupport->color)->toBe('gray'); });