diff --git a/app/Filament/Resources/FailedJobsResource.php b/app/Filament/Resources/FailedJobResource.php similarity index 94% rename from app/Filament/Resources/FailedJobsResource.php rename to app/Filament/Resources/FailedJobResource.php index e552d59e..8b33a28a 100644 --- a/app/Filament/Resources/FailedJobsResource.php +++ b/app/Filament/Resources/FailedJobResource.php @@ -4,7 +4,8 @@ declare(strict_types=1); namespace App\Filament\Resources; -use App\Filament\Resources\FailedJobsResource\ListFailedJobs; +use App\Filament\Resources\FailedJobResource\Pages\ListFailedJobs; +use App\Filament\Resources\FailedJobResource\Pages\ViewFailedJobs; use App\Models\FailedJob; use Filament\Forms\Components\Textarea; use Filament\Forms\Components\TextInput; @@ -24,7 +25,7 @@ use Novadaemon\FilamentPrettyJson\PrettyJson; /** * @source https://gitlab.com/amvisor/filament-failed-jobs */ -class FailedJobsResource extends Resource +class FailedJobResource extends Resource { protected static ?string $model = FailedJob::class; @@ -107,6 +108,8 @@ class FailedJobsResource extends Resource { return [ 'index' => ListFailedJobs::route('/'), + 'view' => ViewFailedJobs::route('/{record}'), + ]; } } diff --git a/app/Filament/Resources/FailedJobsResource/ListFailedJobs.php b/app/Filament/Resources/FailedJobResource/Pages/ListFailedJobs.php similarity index 88% rename from app/Filament/Resources/FailedJobsResource/ListFailedJobs.php rename to app/Filament/Resources/FailedJobResource/Pages/ListFailedJobs.php index f992fba1..c9cae25c 100644 --- a/app/Filament/Resources/FailedJobsResource/ListFailedJobs.php +++ b/app/Filament/Resources/FailedJobResource/Pages/ListFailedJobs.php @@ -2,9 +2,9 @@ declare(strict_types=1); -namespace App\Filament\Resources\FailedJobsResource; +namespace App\Filament\Resources\FailedJobResource\Pages; -use App\Filament\Resources\FailedJobsResource; +use App\Filament\Resources\FailedJobResource; use App\Models\FailedJob; use Filament\Notifications\Notification; use Filament\Pages\Actions\Action; @@ -13,7 +13,7 @@ use Illuminate\Support\Facades\Artisan; class ListFailedJobs extends ListRecords { - protected static string $resource = FailedJobsResource::class; + protected static string $resource = FailedJobResource::class; public function getHeaderActions(): array { diff --git a/app/Filament/Resources/FailedJobResource/Pages/ViewFailedJobs.php b/app/Filament/Resources/FailedJobResource/Pages/ViewFailedJobs.php new file mode 100644 index 00000000..6bb78f54 --- /dev/null +++ b/app/Filament/Resources/FailedJobResource/Pages/ViewFailedJobs.php @@ -0,0 +1,13 @@ +withPersonalOrganization()->create([ + 'email' => 'admin@example.com', + ]); + + $this->actingAs($user); + } + + public function test_can_list_failed_jobs(): void + { + // Arrange + $failedJobs = FailedJob::factory()->createMany(5); + + // Act + $response = Livewire::test(FailedJobResource\Pages\ListFailedJobs::class); + + // Assert + $response->assertSuccessful(); + $response->assertCanSeeTableRecords($failedJobs); + } + + public function test_can_see_view_page_of_failed_job(): void + { + // Arrange + $failedJob = FailedJob::factory()->create(); + + // Act + $response = Livewire::test(ViewFailedJobs::class, ['record' => $failedJob->getKey()]); + + // Assert + $response->assertSuccessful(); + } +}