Added tests for FailedJobResource and renamed to singular

This commit is contained in:
Constantin Graf
2024-07-18 13:17:00 +02:00
committed by Constantin Graf
parent 8db0a7d25e
commit 63323d86c3
6 changed files with 77 additions and 5 deletions

View File

@@ -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}'),
];
}
}

View File

@@ -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
{

View File

@@ -0,0 +1,13 @@
<?php
declare(strict_types=1);
namespace App\Filament\Resources\FailedJobResource\Pages;
use App\Filament\Resources\FailedJobResource;
use Filament\Resources\Pages\ViewRecord;
class ViewFailedJobs extends ViewRecord
{
protected static string $resource = FailedJobResource::class;
}

View File

@@ -4,6 +4,7 @@ declare(strict_types=1);
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Carbon;
@@ -15,6 +16,8 @@ use Illuminate\Support\Carbon;
*/
class FailedJob extends Model
{
use HasFactory;
/**
* Indicates if the model should be timestamped.
*

Binary file not shown.

View File

@@ -0,0 +1,53 @@
<?php
declare(strict_types=1);
namespace Tests\Unit\Filament;
use App\Filament\Resources\FailedJobResource;
use App\Filament\Resources\FailedJobResource\Pages\ViewFailedJobs;
use App\Models\FailedJob;
use App\Models\User;
use Illuminate\Support\Facades\Config;
use Livewire\Livewire;
use PHPUnit\Framework\Attributes\UsesClass;
#[UsesClass(FailedJobResource::class)]
class FailedJobResourceTest extends FilamentTestCase
{
protected function setUp(): void
{
parent::setUp();
Config::set('auth.super_admins', ['admin@example.com']);
$user = User::factory()->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();
}
}