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([