actingAs($user) ->withSession([ WorkspaceContext::SESSION_KEY => (int) $tenant->workspace_id, WorkspaceContext::LAST_TENANT_IDS_SESSION_KEY => [ (string) $tenant->workspace_id => (int) $tenant->getKey(), ], ]) ->get('/admin') ->assertOk(); expect($class::shouldRegisterNavigation())->toBeFalse(); })->with('admin hidden navigation classes'); it('registers tenant-sensitive surfaces in the tenant panel navigation', function (string $class): void { [$user, $tenant] = createUserWithTenant(role: 'owner'); $this->actingAs($user) ->withSession([ WorkspaceContext::SESSION_KEY => (int) $tenant->workspace_id, ]) ->get("/admin/t/{$tenant->external_id}") ->assertOk(); expect($class::shouldRegisterNavigation())->toBeTrue(); })->with('tenant visible navigation classes'); it('keeps baseline navigation in the workspace panel and out of the tenant panel', function (): void { [$user, $tenant] = createUserWithTenant(role: 'owner'); $this->actingAs($user) ->withSession([ WorkspaceContext::SESSION_KEY => (int) $tenant->workspace_id, ]) ->get('/admin') ->assertOk(); expect(BaselineProfileResource::shouldRegisterNavigation())->toBeTrue(); expect(BaselineSnapshotResource::shouldRegisterNavigation())->toBeTrue(); $this->actingAs($user) ->withSession([ WorkspaceContext::SESSION_KEY => (int) $tenant->workspace_id, ]) ->get("/admin/t/{$tenant->external_id}") ->assertOk(); expect(BaselineProfileResource::shouldRegisterNavigation())->toBeFalse(); expect(BaselineSnapshotResource::shouldRegisterNavigation())->toBeFalse(); }); it('keeps the workspace panel sidebar free of tenant-sensitive entries even with a remembered tenant', function (): void { [$user, $tenant] = createUserWithTenant(role: 'owner'); $response = $this->actingAs($user) ->withSession([ WorkspaceContext::SESSION_KEY => (int) $tenant->workspace_id, WorkspaceContext::LAST_TENANT_IDS_SESSION_KEY => [ (string) $tenant->workspace_id => (int) $tenant->getKey(), ], ]) ->get('/admin') ->assertOk(); $response->assertDontSee('>Items', false); $response->assertDontSee('>Policies', false); $response->assertDontSee('>Policy Versions', false); $response->assertDontSee('>Backup Schedules', false); $response->assertDontSee('>Backup Sets', false); $response->assertDontSee('>Restore Runs', false); $response->assertDontSee('>Findings', false); });