
Test resources with multi tenants
- Published: 30 Mar 2024 Updated: 04 May 2024
A starting point for testing filamentPHP with tenant aware resources.

test render tenant owned records
1beforeEach(function ((){
2 $this->company = Club::factory()->create();
3 $this->user = User::factory()->create();
4 $this->user->company()->attach($this->company);
5
6 actingAs($this->user);
7 Filament::setTenant($this->company);
8});
test listing the tenant records only
1use function Pest\Livewire\livewire;
2
3it('can only render tenant owned records', function () {
4 // Edit logic here ??
5 $posts = Post::factory()->count(4)->create();
6 $trashedPosts = Post::factory()
7 ->trashed()
8 ->count(6)
9 ->create();
10
11 livewire(PostResource\Pages\ListPosts::class)
12 ->assertCanSeeTableRecords($posts)
13 ->assertCanNotSeeTableRecords($trashedPosts)
14 ->assertCountTableRecords(4);
15});

Related Tricks:
let users select a color for the panel
when you have a lot of resources, let your users search for what they looking for int he sidebar.
provide a loading indicator for long running operations
add any link or actions to the topbar
how to redirect the user after loging out of filament app