Skip to content
This repository was archived by the owner on Feb 14, 2026. It is now read-only.

Commit cc61e8f

Browse files
committed
Add 'can load the page' test
1 parent 629d6d7 commit cc61e8f

File tree

5 files changed

+56
-11
lines changed

5 files changed

+56
-11
lines changed
Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
1+
use function Pest\Laravel\actingAs;
12
use function Pest\Livewire\livewire;
23

34
beforeEach(function () {
4-
//
5+
$user = {{ $getAuthenticatableModel() }}::factory()->create();
6+
7+
actingAs($user);
58
});
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
it('can load the index page', function (): void {
2+
${{ $getResourceModelNamePlural() }} = {{ $getResourceModel() }}::factory(5)->create();
3+
4+
livewire({{ $getPageClass('index') }}::class)
5+
->assertCanSeeTableRecords(${{ $getResourceModelNamePlural() }});
6+
});

src/Commands/FilamentTestsCommand.php

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,11 @@
22

33
namespace CodeWithDennis\FilamentTests\Commands;
44

5-
use App\Filament\Resources\Users\UserResource;
5+
use App\Filament\Resources\Users\ProductResource;
66
use CodeWithDennis\FilamentTests\TestRenderers\BeforeEach;
77
use CodeWithDennis\FilamentTests\TestRenderers\Resources\Pages\Create\CanRenderCreatePageTest;
88
use CodeWithDennis\FilamentTests\TestRenderers\Resources\Pages\Edit\CanRenderEditPageTest;
9+
use CodeWithDennis\FilamentTests\TestRenderers\Resources\Pages\Index\CanLoadIndexPageTest;
910
use CodeWithDennis\FilamentTests\TestRenderers\Resources\Pages\Index\CanRenderIndexPageTest;
1011
use Filament\Facades\Filament;
1112
use Illuminate\Console\Command;
@@ -38,15 +39,15 @@ public function __construct(
3839

3940
public function handle(): void
4041
{
41-
// $this->panels = $this->askUserToSelectPanels();
42-
// $this->resources = $this->askUserToSelectWhichResourcesFromTheSelectedPanel();
43-
44-
$this->panels = collect(['admin']);
45-
$this->resources = collect([
46-
'admin' => [
47-
UserResource::class,
48-
],
49-
]);
42+
$this->panels = $this->askUserToSelectPanels();
43+
$this->resources = $this->askUserToSelectWhichResourcesFromTheSelectedPanel();
44+
45+
// $this->panels = collect(['admin']);
46+
// $this->resources = collect([
47+
// 'admin' => [
48+
// ProductResource::class,
49+
// ],
50+
// ]);
5051

5152
foreach ($this->resources as $resourceClasses) {
5253
foreach ($resourceClasses as $resourceClass) {
@@ -74,7 +75,11 @@ protected function renderTestsForResource(string $resourceClass): string
7475
return implode("\n\n", [
7576
'<?php',
7677
BeforeEach::build($resourceClass)->render(),
78+
79+
// Index Page
7780
CanRenderIndexPageTest::build($resourceClass)->render(),
81+
CanLoadIndexPageTest::build($resourceClass)->render(),
82+
7883
// CanRenderCreatePageTest::build($resourceClass)->render(),
7984
// CanRenderEditPageTest::build($resourceClass)->render(),
8085
]);

src/Concerns/Resources/InteractsWithModels.php

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,24 @@
44

55
trait InteractsWithModels
66
{
7+
// TODO: configurable
8+
public function getAuthenticatableModel(): ?string
9+
{
10+
return 'App\Models\User';
11+
}
12+
713
public function getResourceModel(): ?string
814
{
915
return $this->getResource()->getModel();
1016
}
17+
18+
public function getResourceModelName(): ?string
19+
{
20+
return str(class_basename($this->getResource()->getModel()))->camel();
21+
}
22+
23+
public function getResourceModelNamePlural(): ?string
24+
{
25+
return str($this->getResourceModelName())->plural();
26+
}
1127
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?php
2+
3+
namespace CodeWithDennis\FilamentTests\TestRenderers\Resources\Pages\Index;
4+
5+
use CodeWithDennis\FilamentTests\TestRenderers\BaseTest;
6+
7+
class CanLoadIndexPageTest extends BaseTest
8+
{
9+
public ?string $view = 'filament-tests::resources.pages.index.can-load-index-page';
10+
11+
public function getShouldRender(): bool
12+
{
13+
return $this->hasPage('index');
14+
}
15+
}

0 commit comments

Comments
 (0)