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

Commit ffef754

Browse files
Merge pull request #311 from CodeWithDennis/more-tests-and-minor-fix
More tests and minor fix
2 parents c3bec6c + ac924ca commit ffef754

File tree

13 files changed

+116
-22
lines changed

13 files changed

+116
-22
lines changed
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
it('can render `:dataset` column', function (string $column): void {
22
livewire({{ $getPageClass('index') }}::class)
33
->assertCanRenderTableColumn($column);
4-
})->with([@foreach ($getResourceTableVisibleColumnKeys() as $column)'{{ $column }}',@endforeach]);
4+
})->with([@foreach ($getResourceTableDefaultVisibleColumnKeys() as $column)'{{ $column }}',@endforeach]);
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
it('cannot render `:dataset` column', function (string $column): void {
22
livewire({{ $getPageClass('index') }}::class)
33
->assertCanNotRenderTableColumn($column);
4-
})->with([@foreach ($getResourceHiddenTableColumnKeys() as $column)'{{ $column }}',@endforeach]);
4+
})->with([@foreach ($getResourceTableDefaultHiddenColumnKeys() as $column)'{{ $column }}',@endforeach]);
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
it('has `:dataset` column', function (string $column): void {
2+
livewire({{ $getPageClass('index') }}::class)
3+
->assertTableColumnExists($column);
4+
})->with([@foreach ($getResourceTableColumnKeys() as $column)'{{ $column }}',@endforeach]);
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
it('hides `:dataset` column', function (string $column): void {
2+
livewire({{ $getPageClass('index') }}::class)
3+
->assertTableColumnHidden($column);
4+
})->with([@foreach ($getResourceHiddenTableColumnKeys() as $column)'{{ $column }}',@endforeach]);
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
it('shows `:dataset` column', function (string $column): void {
2+
livewire({{ $getPageClass('index') }}::class)
3+
->assertTableColumnVisible($column);
4+
})->with([@foreach ($getResourceTableVisibleColumnKeys() as $column)'{{ $column }}',@endforeach]);

src/Commands/FilamentTestsCommand.php

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@
1111
use CodeWithDennis\FilamentTests\TestRenderers\Resources\Pages\Index\CanNotRenderColumnTest;
1212
use CodeWithDennis\FilamentTests\TestRenderers\Resources\Pages\Index\CanRenderColumnTest;
1313
use CodeWithDennis\FilamentTests\TestRenderers\Resources\Pages\Index\CanRenderIndexPageTest;
14+
use CodeWithDennis\FilamentTests\TestRenderers\Resources\Pages\Index\HasColumnTest;
15+
use CodeWithDennis\FilamentTests\TestRenderers\Resources\Pages\Index\HidesColumnTest;
16+
use CodeWithDennis\FilamentTests\TestRenderers\Resources\Pages\Index\ShowsColumnTest;
1417
use CodeWithDennis\FilamentTests\TestRenderers\Resources\Pages\View\CanRenderViewPageTest;
1518
use Illuminate\Console\Command;
1619

@@ -31,9 +34,7 @@ public function handle(): void
3134
$this->resources = $this->askUserToSelectResourcesFromTheSelectedPanels();
3235

3336
$this->generateTests();
34-
3537
$this->showGenerationSummary();
36-
3738
$this->runPintOnGeneratedTests();
3839
}
3940

@@ -45,11 +46,14 @@ protected function getRenderers(): array
4546
return [
4647
BeforeEach::class,
4748
CanRenderIndexPageTest::class,
48-
CanRenderColumnTest::class,
49-
CanNotRenderColumnTest::class,
5049
CanRenderCreatePageTest::class,
5150
CanRenderEditPageTest::class,
5251
CanRenderViewPageTest::class,
52+
CanRenderColumnTest::class,
53+
CanNotRenderColumnTest::class,
54+
HasColumnTest::class,
55+
ShowsColumnTest::class,
56+
HidesColumnTest::class,
5357
];
5458
}
5559
}

src/Concerns/InteractsWithResources.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
use CodeWithDennis\FilamentTests\Concerns\Resources\InteractsWithSchemas;
88
use CodeWithDennis\FilamentTests\Concerns\Resources\InteractsWithTables;
99
use ReflectionClass;
10+
use ReflectionException;
1011

1112
trait InteractsWithResources
1213
{
@@ -15,6 +16,7 @@ trait InteractsWithResources
1516
use InteractsWithSchemas;
1617
use InteractsWithTables;
1718

19+
/** @throws ReflectionException */
1820
protected function getPrivateProperty(object $object, string $property): mixed
1921
{
2022
$reflection = new ReflectionClass($object);

src/Concerns/Resources/InteractsWithTables.php

Lines changed: 42 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -17,42 +17,70 @@ public function getResourceTable(): Table
1717
));
1818
}
1919

20+
private function getResourceTableColumnKeysFrom(Collection $columns): array
21+
{
22+
return $columns
23+
->map(fn (Column $column): string => $column->getName())
24+
->filter()
25+
->values()
26+
->all();
27+
}
28+
2029
public function getResourceTableColumns(): Collection
2130
{
2231
return collect($this->getResourceTable()->getColumns());
2332
}
2433

25-
public function getResourceVisibleTableColumns(): Collection
34+
public function getResourceTableColumnKeys(): array
35+
{
36+
return $this->getResourceTableColumnKeysFrom($this->getResourceTableColumns());
37+
}
38+
39+
public function getResourceTableDefaultVisibleColumns(): Collection
40+
{
41+
return $this->getResourceTableColumns()
42+
->filter(fn (Column $column): bool => $column->isVisible() && ! $column->isToggledHiddenByDefault());
43+
}
44+
45+
public function getResourceTableDefaultVisibleColumnKeys(): array
46+
{
47+
return $this->getResourceTableColumnKeysFrom($this->getResourceTableDefaultVisibleColumns());
48+
}
49+
50+
public function getResourceTableDefaultHiddenColumns(): Collection
51+
{
52+
return $this->getResourceTableColumns()
53+
->filter(fn (Column $column): bool => ! $column->isVisible() || $column->isToggledHiddenByDefault());
54+
}
55+
56+
public function getResourceTableDefaultHiddenColumnKeys(): array
57+
{
58+
return $this->getResourceTableColumnKeysFrom($this->getResourceTableDefaultHiddenColumns());
59+
}
60+
61+
public function getResourceTableVisibleColumns(): Collection
2662
{
2763
return $this->getResourceTableColumns()
2864
->filter(fn (Column $column): bool => $column->isVisible());
2965
}
3066

3167
public function getResourceTableVisibleColumnKeys(): array
3268
{
33-
return $this->getResourceVisibleTableColumns()
34-
->map(fn (Column $column): string => $column->getName())
35-
->filter()
36-
->values()
37-
->all();
69+
return $this->getResourceTableColumnKeysFrom($this->getResourceTableVisibleColumns());
3870
}
3971

40-
public function getResourceHiddenTableColumns(): Collection
72+
public function getResourceTableHiddenColumns(): Collection
4173
{
4274
return $this->getResourceTableColumns()
4375
->filter(fn (Column $column): bool => $column->isHidden());
4476
}
4577

46-
public function getResourceHiddenTableColumnKeys(): array
78+
public function getResourceTableHiddenColumnKeys(): array
4779
{
48-
return $this->getResourceHiddenTableColumns()
49-
->map(fn (Column $column): string => $column->getName())
50-
->filter()
51-
->values()
52-
->all();
80+
return $this->getResourceTableColumnKeysFrom($this->getResourceTableHiddenColumns());
5381
}
5482

55-
public function getResourceSortableTableColumns(): Collection
83+
public function getResourceTableSortableColumns(): Collection
5684
{
5785
return $this->getResourceTableColumns()
5886
->filter(fn (Column $column): bool => $column->isSortable());

src/TestRenderers/Resources/Pages/Index/CanNotRenderColumnTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,6 @@ class CanNotRenderColumnTest extends BaseTest
1111
public function getShouldRender(): bool
1212
{
1313
return $this->hasPage('index')
14-
&& $this->getResourceHiddenTableColumns()->isNotEmpty();
14+
&& $this->getResourceTableDefaultHiddenColumns()->isNotEmpty();
1515
}
1616
}

src/TestRenderers/Resources/Pages/Index/CanRenderColumnTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,6 @@ class CanRenderColumnTest extends BaseTest
1111
public function getShouldRender(): bool
1212
{
1313
return $this->hasPage('index')
14-
&& $this->getResourceVisibleTableColumns()->isNotEmpty();
14+
&& $this->getResourceTableDefaultVisibleColumns()->isNotEmpty();
1515
}
1616
}

0 commit comments

Comments
 (0)