From 9998a3e1c86e2518c54a19c7ed126bd315cea734 Mon Sep 17 00:00:00 2001 From: Ovidiu U Date: Sat, 4 Apr 2026 14:14:35 +0100 Subject: [PATCH] fix: improve errors_only filter and add view page test Co-Authored-By: Claude Sonnet 4.6 --- app/Filament/Resources/ApiLogResource.php | 4 ++-- tests/Feature/Admin/ApiLogResourceTest.php | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/app/Filament/Resources/ApiLogResource.php b/app/Filament/Resources/ApiLogResource.php index 33f5394..01f6fe4 100644 --- a/app/Filament/Resources/ApiLogResource.php +++ b/app/Filament/Resources/ApiLogResource.php @@ -79,6 +79,7 @@ class ApiLogResource extends Resource ->label('Errors only') ->query(fn (Builder $query) => $query->where( fn (Builder $q) => $q->where('status_code', '>=', 400) + ->orWhereNull('status_code') ->orWhereNotNull('error') )), Filter::make('created_at') @@ -94,8 +95,7 @@ class ApiLogResource extends Resource ]) ->recordActions([ ViewAction::make(), - ]) - ->toolbarActions([]); + ]); } public static function infolist(Schema $schema): Schema diff --git a/tests/Feature/Admin/ApiLogResourceTest.php b/tests/Feature/Admin/ApiLogResourceTest.php index 4035f80..50da82d 100644 --- a/tests/Feature/Admin/ApiLogResourceTest.php +++ b/tests/Feature/Admin/ApiLogResourceTest.php @@ -1,6 +1,7 @@ assertCanSeeTableRecords([$err]) ->assertCanNotSeeTableRecords([$ok]); }); + +it('renders the view page for a log', function () { + $log = ApiLog::factory()->create(); + + Livewire::test(ViewApiLog::class, ['record' => $log->id]) + ->assertOk(); +}); + +it('filters to errors only including null status codes', function () { + $ok = ApiLog::factory()->create(['status_code' => 200, 'error' => null]); + $err4xx = ApiLog::factory()->failed()->create(['status_code' => 429, 'error' => 'Too many requests']); + $errNull = ApiLog::factory()->create(['status_code' => null, 'error' => 'Connection timeout']); + + Livewire::test(ListApiLogs::class) + ->filterTable('errors_only') + ->assertCanSeeTableRecords([$err4xx, $errNull]) + ->assertCanNotSeeTableRecords([$ok]); +});