31 lines
1.4 KiB
PHP
31 lines
1.4 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
use App\Models\TenantTriageReview;
|
|
use App\Support\Badges\BadgeCatalog;
|
|
use App\Support\Badges\BadgeDomain;
|
|
|
|
it('maps triage review states to centralized badge semantics', function (): void {
|
|
$notReviewed = BadgeCatalog::spec(BadgeDomain::TenantTriageReviewState, TenantTriageReview::DERIVED_STATE_NOT_REVIEWED);
|
|
$reviewed = BadgeCatalog::spec(BadgeDomain::TenantTriageReviewState, TenantTriageReview::STATE_REVIEWED);
|
|
$followUpNeeded = BadgeCatalog::spec(BadgeDomain::TenantTriageReviewState, TenantTriageReview::STATE_FOLLOW_UP_NEEDED);
|
|
$changedSinceReview = BadgeCatalog::spec(BadgeDomain::TenantTriageReviewState, TenantTriageReview::DERIVED_STATE_CHANGED_SINCE_REVIEW);
|
|
|
|
expect($notReviewed->label)->toBe('Not reviewed')
|
|
->and($notReviewed->color)->toBe('gray')
|
|
->and($reviewed->label)->toBe('Reviewed')
|
|
->and($reviewed->color)->toBe('success')
|
|
->and($followUpNeeded->label)->toBe('Follow-up needed')
|
|
->and($followUpNeeded->color)->toBe('danger')
|
|
->and($changedSinceReview->label)->toBe('Changed since review')
|
|
->and($changedSinceReview->color)->toBe('warning');
|
|
});
|
|
|
|
it('falls back to the unknown badge semantics for invalid review states', function (): void {
|
|
$unknown = BadgeCatalog::spec(BadgeDomain::TenantTriageReviewState, 'invalid_state');
|
|
|
|
expect($unknown->label)->toBe('Unknown')
|
|
->and($unknown->color)->toBe('gray');
|
|
});
|