From d88fb9d0809f4a05aebcf45800acb445587b2c8b Mon Sep 17 00:00:00 2001 From: Jay Hemnani <193022578+jayhemnani9910@users.noreply.github.com> Date: Mon, 2 Nov 2026 04:30:45 +0530 Subject: [PATCH] Count every open incident in the dashboard's Incidents badge --- src/Filament/Resources/Incidents/IncidentResource.php | 3 +-- .../Filament/Resources/IncidentResourceTest.php | 10 ++++++++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/Filament/Resources/Incidents/IncidentResource.php b/src/Filament/Resources/Incidents/IncidentResource.php index b04bbd6a..0f07716a 100644 --- a/src/Filament/Resources/Incidents/IncidentResource.php +++ b/src/Filament/Resources/Incidents/IncidentResource.php @@ -16,7 +16,6 @@ use Cachet\Filament\Resources\Updates\RelationManagers\UpdatesRelationManager; use Cachet\Models\Incident; use Cachet\Settings\MailSettings; -use Cachet\Status; use Filament\Actions\Action; use Filament\Actions\BulkActionGroup; use Filament\Actions\DeleteAction; @@ -311,7 +310,7 @@ public static function getEloquentQuery(): Builder public static function getNavigationBadge(): ?string { - return (string) (int) app(Status::class)->incidents()->unresolved; + return (string) Incident::query()->unresolved()->count(); } public static function getNavigationBadgeColor(): string diff --git a/tests/Feature/Filament/Resources/IncidentResourceTest.php b/tests/Feature/Filament/Resources/IncidentResourceTest.php index 92b5dca8..5cc2b2f1 100644 --- a/tests/Feature/Filament/Resources/IncidentResourceTest.php +++ b/tests/Feature/Filament/Resources/IncidentResourceTest.php @@ -6,6 +6,7 @@ use Cachet\Enums\IncidentStatusEnum; use Cachet\Enums\ResourceVisibilityEnum; use Cachet\Filament\Components\ComponentOptions; +use Cachet\Filament\Resources\Incidents\IncidentResource; use Cachet\Filament\Resources\Incidents\Pages\CreateIncident; use Cachet\Filament\Resources\Incidents\Pages\EditIncident; use Cachet\Filament\Resources\Incidents\Pages\ListIncidents; @@ -29,6 +30,15 @@ actingAs(User::factory()->create(['is_admin' => true])); }); +it('counts every open incident in the navigation badge', function () { + Incident::factory()->create(['status' => IncidentStatusEnum::investigating, 'visible' => ResourceVisibilityEnum::authenticated]); + Incident::factory()->create(['status' => IncidentStatusEnum::identified, 'visible' => ResourceVisibilityEnum::hidden]); + Incident::factory()->create(['status' => IncidentStatusEnum::fixed, 'visible' => ResourceVisibilityEnum::guest]); + + expect(IncidentResource::getNavigationBadge())->toBe('2') + ->and(IncidentResource::getNavigationBadgeColor())->toBe('danger'); +}); + it('can create, reload, edit and clear a private note on a public incident', function () { livewire(CreateIncident::class) ->fillForm([