File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 99use Filament \Resources \Resource ;
1010use Filament \Tables ;
1111use Filament \Tables \Table ;
12+ use Illuminate \Database \Eloquent \Builder ;
1213
1314class PluginSalesResource extends Resource
1415{
@@ -71,19 +72,19 @@ public static function table(Table $table): Table
7172 ->filters ([
7273 Tables \Filters \SelectFilter::make ('user_id ' )
7374 ->label ('User ' )
74- ->relationship ('user ' , 'email ' )
75+ ->relationship ('user ' , 'email ' , fn ( Builder $ query ) => $ query -> whereNotNull ( ' email ' ) )
7576 ->searchable ()
7677 ->preload (),
7778
7879 Tables \Filters \SelectFilter::make ('plugin_id ' )
7980 ->label ('Plugin ' )
80- ->relationship ('plugin ' , 'name ' )
81+ ->relationship ('plugin ' , 'name ' , fn ( Builder $ query ) => $ query -> whereNotNull ( ' name ' ) )
8182 ->searchable ()
8283 ->preload (),
8384
8485 Tables \Filters \SelectFilter::make ('plugin_bundle_id ' )
8586 ->label ('Bundle ' )
86- ->relationship ('pluginBundle ' , 'name ' )
87+ ->relationship ('pluginBundle ' , 'name ' , fn ( Builder $ query ) => $ query -> whereNotNull ( ' name ' ) )
8788 ->searchable ()
8889 ->preload (),
8990
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ namespace Tests \Feature \Filament ;
4+
5+ use App \Filament \Resources \PluginSalesResource \Pages \ListPluginSales ;
6+ use App \Models \Plugin ;
7+ use App \Models \PluginLicense ;
8+ use App \Models \User ;
9+ use Illuminate \Foundation \Testing \RefreshDatabase ;
10+ use Livewire \Livewire ;
11+ use Tests \TestCase ;
12+
13+ class PluginSalesResourceTest extends TestCase
14+ {
15+ use RefreshDatabase;
16+
17+ private User $ admin ;
18+
19+ protected function setUp (): void
20+ {
21+ parent ::setUp ();
22+
23+ $ this ->admin = User::factory ()->create (['email ' => 'admin@test.com ' ]);
24+ config (['filament.users ' => ['admin@test.com ' ]]);
25+ }
26+
27+ public function test_plugin_sales_page_renders_when_plugin_has_null_name (): void
28+ {
29+ $ pluginWithName = Plugin::factory ()->approved ()->create (['name ' => 'acme/camera-123 ' ]);
30+ $ pluginWithoutName = Plugin::factory ()->approved ()->create (['name ' => null ]);
31+
32+ PluginLicense::factory ()->create (['plugin_id ' => $ pluginWithName ->id ]);
33+ PluginLicense::factory ()->create (['plugin_id ' => $ pluginWithoutName ->id ]);
34+
35+ Livewire::actingAs ($ this ->admin )
36+ ->test (ListPluginSales::class)
37+ ->assertSuccessful ();
38+ }
39+
40+ public function test_plugin_sales_page_renders_successfully (): void
41+ {
42+ PluginLicense::factory ()->count (3 )->create ();
43+
44+ Livewire::actingAs ($ this ->admin )
45+ ->test (ListPluginSales::class)
46+ ->assertSuccessful ();
47+ }
48+ }
You can’t perform that action at this time.
0 commit comments