presseportale/tests/Unit/PressReleaseStatusBadgeClassTest.php
Kevin Adametz 55d0804917 5.3: PressReleaseStatus::badgeClass() zentralisiert + toten statusColor-Code entfernt
Status-Badge-Farblogik (ok/warn/err/muted) aus 7 divergenten match-Bloecken in eine Enum-Methode gezogen. Archiviert/Entwurf jetzt konsistent 'muted' (grau) auch auf Detail-/Edit-/Log-Seiten (vorher dort 'hub'-Akzent). Toter statusColor-Block (Flux-Farben, nie referenziert) in customer/show entfernt. flux:badge :color in admin/users bleibt bewusst separat (eigenes Farbvokabular, Einzel-Call-Site).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-02 10:36:15 +00:00

20 lines
727 B
PHP

<?php
use App\Enums\PressReleaseStatus;
test('active statuses map to their accent badge class', function () {
expect(PressReleaseStatus::Published->badgeClass())->toBe('ok')
->and(PressReleaseStatus::Review->badgeClass())->toBe('warn')
->and(PressReleaseStatus::Rejected->badgeClass())->toBe('err');
});
test('neutral statuses are muted', function () {
expect(PressReleaseStatus::Draft->badgeClass())->toBe('muted')
->and(PressReleaseStatus::Archived->badgeClass())->toBe('muted');
});
test('every status resolves to a badge class', function () {
foreach (PressReleaseStatus::cases() as $status) {
expect($status->badgeClass())->toBeIn(['ok', 'warn', 'err', 'muted']);
}
});