create([ 'status' => 'active', 'name' => 'Alpha Tenant', 'external_id' => 'alpha-tenant', ]); [$user, $tenant] = createUserWithTenant(tenant: $tenant, role: 'readonly'); $snapshot = seedTenantReviewEvidence($tenant); $review = composeTenantReviewForTest($tenant, $user, $snapshot); $review->forceFill([ 'status' => TenantReviewStatus::Published->value, 'generated_at' => now(), 'published_at' => now(), 'published_by_user_id' => (int) $user->getKey(), ])->save(); $this->actingAs($user); Filament::setCurrentPanel('admin'); Filament::setTenant(null, true); Filament::bootCurrentPanel(); session()->put(WorkspaceContext::SESSION_KEY, (int) $tenant->workspace_id); $context = CanonicalNavigationContext::forGovernanceInbox( canonicalRouteName: GovernanceInbox::getRouteName(Filament::getPanel('admin')), tenantId: (int) $tenant->getKey(), familyKey: 'review_follow_up', backLinkUrl: GovernanceInbox::getUrl(panel: 'admin', parameters: [ 'tenant_id' => (string) $tenant->getKey(), 'family' => 'review_follow_up', ]), ); Livewire::withQueryParams(array_replace($context->toQuery(), [ 'tenant' => (string) $tenant->external_id, ])) ->actingAs($user) ->test(CustomerReviewWorkspace::class) ->assertSet('tableFilters.tenant_id.value', (string) $tenant->getKey()) ->assertActionVisible('return_to_governance_inbox') ->assertCanSeeTableRecords([$tenant->fresh()]) ->assertSee(TenantReviewResource::tenantScopedUrl('view', ['record' => $review->fresh()], $tenant), false) ->assertSee(CustomerReviewWorkspace::DETAIL_CONTEXT_QUERY_KEY.'=1', false) ->assertSee('nav%5Bsource_surface%5D=governance.inbox', false) ->assertSee('nav%5Bfamily_key%5D=review_follow_up', false) ->assertDontSee('This workspace decision surface routes you'); });