'Status', 'value' => 'Completed', 'badge' => [ 'label' => 'Completed', 'color' => 'success', ], ]))->toBeNull(); }); it('suppresses boolean fact values when the badge carries the same enabled state', function (): void { expect(FactPresentation::value([ 'label' => 'Security enabled', 'value' => 'Yes', 'badge' => [ 'label' => 'Enabled', 'color' => 'success', ], ]))->toBeNull(); expect(FactPresentation::value([ 'label' => 'Mail enabled', 'value' => 'No', 'badge' => [ 'label' => 'Disabled', 'color' => 'gray', ], ]))->toBeNull(); }); it('keeps the fact value when it adds context beyond the badge label', function (): void { expect(FactPresentation::value([ 'label' => 'Completed', 'value' => 'Completed 2 minutes ago', 'badge' => [ 'label' => 'Completed', 'color' => 'success', ], ]))->toBe('Completed 2 minutes ago'); }); it('renders shared header facts without duplicating text already carried by a badge', function (): void { $html = view('filament.infolists.entries.enterprise-detail.header', [ 'header' => [ 'title' => 'Backup detail', 'statusBadges' => [], 'primaryActions' => [], 'keyFacts' => [[ 'label' => 'Status', 'value' => 'Completed', 'badge' => [ 'label' => 'Completed', 'color' => 'success', ], ]], ], ])->render(); expect(substr_count($html, 'Completed'))->toBe(1); }); it('renders shared section facts without duplicating text already carried by a badge', function (): void { $html = view('filament.infolists.entries.enterprise-detail.section-items', [ 'items' => [[ 'label' => 'Status', 'value' => 'Completed', 'badge' => [ 'label' => 'Completed', 'color' => 'success', ], ]], ])->render(); expect(substr_count($html, 'Completed'))->toBe(1); }); it('renders boolean facts without showing both yes-no text and enabled-disabled badges', function (): void { $html = view('filament.infolists.entries.enterprise-detail.section-items', [ 'items' => [ [ 'label' => 'Security enabled', 'value' => 'Yes', 'badge' => [ 'label' => 'Enabled', 'color' => 'success', ], ], [ 'label' => 'Mail enabled', 'value' => 'No', 'badge' => [ 'label' => 'Disabled', 'color' => 'gray', ], ], ], ])->render(); expect($html)->not->toContain('>Yes') ->and($html)->not->toContain('>No') ->and(substr_count($html, 'Enabled'))->toBe(1) ->and(substr_count($html, 'Disabled'))->toBe(1); });