create(['external_id' => 'tenant-a']); $user = User::factory()->create(); $this->actingAs($user) ->get("/admin/t/{$tenant->external_id}") ->assertNotFound(); }); it('allows members to access the tenant dashboard route', function () { [$user, $tenant] = createUserWithTenant(role: 'readonly'); $this->actingAs($user) ->get("/admin/t/{$tenant->external_id}") ->assertSuccessful(); }); it('enforces panel boundary semantics between workspace routes and tenant routes', function () { [$user, $tenant] = createUserWithTenant(role: 'readonly'); $otherTenant = Tenant::factory()->create([ 'workspace_id' => (int) $tenant->workspace_id, 'external_id' => 'boundary-tenant-b', ]); $this->actingAs($user) ->withSession([WorkspaceContext::SESSION_KEY => (int) $tenant->workspace_id]) ->get("/admin/tenants/{$tenant->external_id}") ->assertSuccessful(); $this->actingAs($user) ->withSession([WorkspaceContext::SESSION_KEY => (int) $tenant->workspace_id]) ->get("/admin/t/{$otherTenant->external_id}") ->assertNotFound(); });