Visitar URL original
test: share in-memory file service setup by dmitrivMS · Pull Request #345072 · microsoft/vscode · GitHub
Skip to content

test: share in-memory file service setup - #345072

Merged
Dmitriy Vasyura (dmitrivMS) merged 3 commits into
mainfrom
agents/reuse-in-memory-file-service
Oct 30, 2026
Merged

Dmitriy Vasyura (dmitrivMS) merged 3 commits into
mainfrom
agents/reuse-in-memory-file-service

Conversation

@dmitrivMS

@dmitrivMS Dmitriy Vasyura (dmitrivMS) commented Oct 29, 2026 •

Copy link
Copy Markdown
Collaborator
  • Move createInMemoryFileService from Claude-specific node test utilities into the shared platform file-test utilities.
  • Preserve the inmemory default, support an explicit scheme, and accept an add-only disposable owner. Each call still creates an isolated service/provider and registers all resources for cleanup in the same order.
  • Replace 168 repeated setup blocks and update the helper's 10 existing callers. Keep custom loggers, externally used providers, and integration-only setups explicit.
  • Preserve existing assertions and test names. No production changes or helper-only test suite are added.

The change removes 190 net lines across 68 files. Maintenance cleanup; no linked issue.

Move the in-memory file service factory into shared platform test utilities and reuse it across equivalent setups. Preserve each scheme and disposal owner, and retain the existing inmemory default for current callers.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI balanced review requested due to automatic review settings October 29, 2026 20:45
@dmitrivMS Dmitriy Vasyura (dmitrivMS) added the debt Code quality issues label Oct 29, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

No active review issues remain for the shared test-helper refactor.

No open issues 🎉

What changed in this PR

This PR centralizes in-memory file-service setup in VS Code’s shared platform test utilities, reducing duplicated test scaffolding without changing production code or existing assertions.

Changes:

  • Moves createInMemoryFileService out of Claude-specific utilities, preserving isolated instances and cleanup order while supporting explicit schemes and add-only disposable owners.
  • Replaces repeated setup blocks and redirects existing callers to the shared helper.
  • Keeps specialized providers, custom loggers, and integration setups explicit.

No actionable findings remain. Reported validation covers Windows; two rendering failures were also reproduced on the baseline. Non-Windows, integration, and smoke suites were not run.

File Description
src/​vs/​workbench/​services/​userDataProfile/​test/​browser/​snippetsResource.test.ts Uses shared setup for snippet resources.
src/​vs/​workbench/​services/​policies/​test/​browser/​multiplexPolicyService.test.ts Uses shared setup for policy files.
src/​vs/​workbench/​services/​extensions/​test/​browser/​extensionStorageMigration.test.ts Simplifies migration filesystem setup.
src/​vs/​workbench/​contrib/​mediaPreview/​test/​common/​mediaPreview.test.ts Shares Git-scheme setup; retains the additional provider.
src/​vs/​workbench/​contrib/​mcp/​test/​browser/​mcpWorkbenchService.test.ts Simplifies persisted-server test setup.
src/​vs/​workbench/​contrib/​chat/​test/​common/​chatService/​chatService.test.ts Shares filesystem setup for persistence tests.
src/​vs/​workbench/​contrib/​chat/​test/​browser/​widget/​chatContentParts/​chatResourceGroupWidget.test.ts Simplifies generated-image saving setup.
src/​vs/​workbench/​contrib/​chat/​test/​browser/​widget/​chatContentParts/​chatMarkdownContentPart.test.ts Uses shared setup with the Agent Host scheme.
src/​vs/​workbench/​contrib/​chat/​test/​browser/​pluginGitCommandService.test.ts Shares plugin Git filesystem setup.
src/​vs/​workbench/​contrib/​chat/​test/​browser/​exportAgentHostDebugLogs.test.ts Shares log-file setup while retaining additional providers.
src/​vs/​workbench/​contrib/​chat/​test/​browser/​chatEditing/​chatEditingSessionStorage.test.ts Uses the workspace-storage scheme with shared setup.
src/​vs/​workbench/​contrib/​chat/​test/​browser/​aiCustomization/​embeddedAgentPluginDetail.test.ts Simplifies marketplace plugin filesystem setup.
src/​vs/​workbench/​contrib/​chat/​test/​browser/​aiCustomization/​customizationMigrationServiceImpl.test.ts Shares migration setup across filesystem schemes.
src/​vs/​workbench/​contrib/​chat/​test/​browser/​aiCustomization/​customizationMigration.test.ts Replaces repeated migration filesystem construction.
src/​vs/​workbench/​contrib/​chat/​test/​browser/​aiCustomization/​aiCustomizationManagementEditor.test.ts Shares backup and recovery test setup.
src/​vs/​workbench/​contrib/​chat/​test/​browser/​agentSessions/​agentCustomizationItemProvider.test.ts Shares synced-customization filesystem setup.
src/​vs/​workbench/​contrib/​chat/​test/​browser/​agentHostUsageSidecar.test.ts Simplifies usage-recorder filesystem setup.
src/​vs/​workbench/​contrib/​chat/​test/​browser/​agentHostCustomizationSidecar.test.ts Delegates its local factory to the shared helper.
src/​vs/​workbench/​contrib/​chat/​test/​browser/​agentHostChatDebugProvider.test.ts Shares debug-provider filesystem setup.
src/​vs/​workbench/​contrib/​chat/​test/​browser/​agentHost/​agentCustomizationContentExpander.test.ts Simplifies content-expander fixture setup.
src/​vs/​workbench/​contrib/​chat/​test/​browser/​actions/​createPluginAction.test.ts Shares plugin-writing and marketplace setup.
src/​vs/​sessions/​contrib/​providers/​remoteAgentHost/​test/​browser/​connectionDiagnosticsService.test.ts Uses shared setup with the test scheme.
src/​vs/​sessions/​contrib/​providers/​remoteAgentHost/​test/​browser/​connectionDiagnosticsLogs.test.ts Simplifies diagnostic-log filesystem setup.
src/​vs/​sessions/​contrib/​onboardingTours/​test/​browser/​gitHubRepositoryResolver.test.ts Shares Git configuration fixture setup.
src/​vs/​platform/​mcp/​test/​common/​mcpManagementService.test.ts Shares MCP management filesystem setup.
src/​vs/​platform/​files/​test/​common/​inMemoryFileService.ts Adds the reusable, scheme-configurable test factory.
src/​vs/​platform/​extensionManagement/​test/​common/​extensionGalleryService.test.ts Shares machine-ID filesystem setup.
src/​vs/​platform/​configuration/​test/​common/​policyConfiguration.test.ts Simplifies policy configuration setup.
src/​vs/​platform/​configuration/​test/​common/​configurationService.test.ts Shares settings filesystem setup.
src/​vs/​platform/​agentPlugins/​test/​common/​pluginParsers.test.ts Replaces repeated parser fixture setup.
src/​vs/​platform/​agentHost/​test/​node/​shared/​editSurvivalReporter.test.ts Shares setup and uses Schemas.file.
src/​vs/​platform/​agentHost/​test/​node/​sessionDataService.test.ts Simplifies session-data fixture setup.
src/​vs/​platform/​agentHost/​test/​node/​sessionCustomizationDiscovery.test.ts Shares customization discovery setup.
src/​vs/​platform/​agentHost/​test/​node/​fileEditTracker.test.ts Shares setup and uses Schemas.file.
src/​vs/​platform/​agentHost/​test/​node/​customizations/​workspaceDirectoryHasHooks.test.ts Imports the relocated shared factory.
src/​vs/​platform/​agentHost/​test/​node/​customizations/​scan/​claudeRuleScan.test.ts Redirects the factory import for rule scans.
src/​vs/​platform/​agentHost/​test/​node/​customizations/​scan/​claudeNativePluginScan.test.ts Redirects the factory import for plugin scans.
src/​vs/​platform/​agentHost/​test/​node/​customizations/​scan/​claudeMcpScan.test.ts Redirects the factory import for MCP scans.
src/​vs/​platform/​agentHost/​test/​node/​customizations/​scan/​claudeHookScan.test.ts Redirects the factory import for hook scans.
src/​vs/​platform/​agentHost/​test/​node/​customizations/​scan/​claudeAgentSkillScan.test.ts Redirects the factory import for agent and skill scans.
src/​vs/​platform/​agentHost/​test/​node/​customizations/​claudeSessionCustomizationDiscovery.test.ts Imports the relocated shared factory.
src/​vs/​platform/​agentHost/​test/​node/​customizations/​claudeMultiRootCustomizationDiscovery.test.ts Imports the relocated shared factory.
src/​vs/​platform/​agentHost/​test/​node/​customizations/​claudeFolderPickerCriteria.test.ts Imports the relocated shared factory.
src/​vs/​platform/​agentHost/​test/​node/​customizations/​claudeCustomizationTestUtils.ts Removes the moved factory and its unused imports.
src/​vs/​platform/​agentHost/​test/​node/​customizations/​claudeCommandSlashCompletion.test.ts Imports the relocated shared factory.
src/​vs/​platform/​agentHost/​test/​node/​copilotPluginConverters.test.ts Simplifies plugin-converter fixture setup.
src/​vs/​platform/​agentHost/​test/​node/​copilotGeneratedImages.test.ts Delegates image filesystem setup to the helper.
src/​vs/​platform/​agentHost/​test/​node/​copilotAgent.test.ts Replaces repeated filesystem setup throughout agent tests.
src/​vs/​platform/​agentHost/​test/​node/​codex/​codexRolloutMetadata.test.ts Delegates its local factory to the shared helper.
src/​vs/​platform/​agentHost/​test/​node/​codex/​codexFolderPickerCriteria.test.ts Simplifies hook-discovery fixture setup.
src/​vs/​platform/​agentHost/​test/​node/​codex/​codexCustomizations.test.ts Shares workspace customization fixture setup.
src/​vs/​platform/​agentHost/​test/​node/​codex/​codexClientCustomizations.test.ts Simplifies client customization setup.
src/​vs/​platform/​agentHost/​test/​node/​claudeTerminalOutput.test.ts Shares harness filesystem setup using Schemas.file.
src/​vs/​platform/​agentHost/​test/​node/​claudeSdkPipeline.test.ts Shares pipeline filesystem setup using Schemas.file.
src/​vs/​platform/​agentHost/​test/​node/​claudeFileEditObserver.test.ts Simplifies observer harness filesystem setup.
src/​vs/​platform/​agentHost/​test/​node/​claudeAgent.test.ts Shares agent-context and customization setup.
src/​vs/​platform/​agentHost/​test/​node/​agentSideEffects.test.ts Shares suite and turn-test filesystem setup.
src/​vs/​platform/​agentHost/​test/​node/​agentServiceChatProviders.test.ts Simplifies chat-provider fixture setup.
src/​vs/​platform/​agentHost/​test/​node/​agentService.test.ts Shares dispatcher and scratch-folder fixture setup.
src/​vs/​platform/​agentHost/​test/​node/​agentHostResourceProviders.test.ts Simplifies resource-provider fixture setup.
src/​vs/​platform/​agentHost/​test/​node/​agentHostDiscardChangesOperationHandler.test.ts Shares the discard-handler harness filesystem.
src/​vs/​platform/​agentHost/​test/​node/​agentHostAutomationService.test.ts Shares file setup; retains the client-scheme provider.
src/​vs/​platform/​agentHost/​test/​node/​agentHostAutomationCustomizations.test.ts Shares file setup; retains the client-scheme provider.
src/​vs/​platform/​agentHost/​test/​node/​agentHostAttachmentMigration.test.ts Simplifies attachment migration setup.
src/​vs/​platform/​agentHost/​test/​node/​agentEditAttributionService.test.ts Replaces repeated attribution-test filesystem setup.
src/​vs/​platform/​agentHost/​test/​common/​ahpJsonlLogger.test.ts Shares logging-test filesystem setup.
src/​vs/​platform/​agentHost/​test/​browser/​webPubSubRelayTransport.test.ts Simplifies transcript-redaction filesystem setup.
src/​vs/​platform/​agentHost/​test/​browser/​agentHostIpcChannelTransport.test.ts Simplifies frame-logging filesystem setup.

Review effort: Balanced

@dmitrivMS
Dmitriy Vasyura (dmitrivMS) marked this pull request as ready for review October 29, 2026 23:45
@dmitrivMS
Dmitriy Vasyura (dmitrivMS) marked this pull request as draft October 29, 2026 23:45
Preserve the live chat-owner support from main alongside the shared in-memory filesystem test factory.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@dmitrivMS
Dmitriy Vasyura (dmitrivMS) marked this pull request as ready for review October 30, 2026 00:15
@vs-code-engineering

Copy link
Copy Markdown
Contributor

📬 CODENOTIFY

The following users are being notified based on files changed in this PR:

Ulugbek Abdullaev (@ulugbekna)

Matched files:

  • src/vs/platform/agentHost/test/node/agentHostAutomationCustomizations.test.ts
  • src/vs/platform/agentHost/test/node/agentHostAutomationService.test.ts

Ben Villalobos (@benvillalobos)

Matched files:

  • src/vs/platform/agentHost/test/node/agentHostAutomationCustomizations.test.ts
  • src/vs/platform/agentHost/test/node/agentHostAutomationService.test.ts

@dmitrivMS
Dmitriy Vasyura (dmitrivMS) merged commit 65f7b6c into main Oct 30, 2026
55 checks passed
@dmitrivMS
Dmitriy Vasyura (dmitrivMS) deleted the agents/reuse-in-memory-file-service branch October 30, 2026 00:29
@vs-code-engineering vs-code-engineering Bot added this to the 1.145.0 milestone Oct 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

debt Code quality issues

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants