create(['name' => 'Alpha Tenant']); [$user, $tenantA] = createUserWithTenant(tenant: $tenantA, role: 'owner'); $tenantB = Tenant::factory()->create([ 'workspace_id' => (int) $tenantA->workspace_id, 'name' => 'Beta Tenant', ]); createUserWithTenant(tenant: $tenantB, user: $user, role: 'readonly'); $tenantC = Tenant::factory()->create([ 'workspace_id' => (int) $tenantA->workspace_id, 'name' => 'Gamma Tenant', ]); $foreignOwner = User::factory()->create(); createUserWithTenant(tenant: $tenantC, user: $foreignOwner, role: 'owner'); $reviewA = composeTenantReviewForTest($tenantA, $user); $reviewB = composeTenantReviewForTest($tenantB, $user); $reviewC = composeTenantReviewForTest($tenantC, $foreignOwner); $this->actingAs($user); setAdminPanelContext(); session()->put(WorkspaceContext::SESSION_KEY, (int) $tenantA->workspace_id); Livewire::actingAs($user) ->test(ReviewRegister::class) ->assertCanSeeTableRecords([$reviewA, $reviewB]) ->assertCanNotSeeTableRecords([$reviewC]) ->filterTable('tenant_id', (string) $tenantB->getKey()) ->assertCanSeeTableRecords([$reviewB]) ->assertCanNotSeeTableRecords([$reviewA, $reviewC]); }); it('shows a single clear-filters empty-state action when no review rows match the current register view', function (): void { [$user, $tenant] = createUserWithTenant(role: 'owner'); $review = composeTenantReviewForTest($tenant, $user); $this->actingAs($user); setAdminPanelContext(); session()->put(WorkspaceContext::SESSION_KEY, (int) $tenant->workspace_id); Livewire::actingAs($user) ->test(ReviewRegister::class) ->searchTable('no-such-review-row') ->assertCanNotSeeTableRecords([$review]) ->assertTableEmptyStateActionsExistInOrder(['clear_filters_empty']) ->assertSee('No review records match this view') ->assertSee('Clear filters'); });