Skip to content

Commit 9b6d56c

Browse files
Copilotdata-douser
andauthored
fix: populate env cache before folder add in test; re-instantiate provider after mock change
Agent-Logs-Url: https://github.com/advanced-security/codeql-development-mcp-server/sessions/a42c54f5-5445-42e7-bad8-f86e1aa717f7 Co-authored-by: data-douser <70299490+data-douser@users.noreply.github.com>
1 parent a9669d7 commit 9b6d56c

2 files changed

Lines changed: 17 additions & 4 deletions

File tree

extensions/vscode/test/server/mcp-provider.test.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,8 +117,12 @@ describe('McpProvider', () => {
117117
// the definition must still carry a concrete version string so that
118118
// VS Code has a baseline for version comparison. An undefined initial
119119
// version prevents VS Code from detecting changes after requestRestart().
120+
//
121+
// NOTE: McpProvider caches getExtensionVersion() in its constructor, so the
122+
// mock must be configured before constructing the provider.
120123
serverManager.getVersion.mockReturnValue(undefined);
121124
serverManager.getExtensionVersion.mockReturnValue('2.25.1');
125+
provider = new McpProvider(serverManager, envBuilder, logger);
122126

123127
const token = { isCancellationRequested: false, onCancellationRequested: vi.fn() };
124128
const definitions = await provider.provideMcpServerDefinitions(token as any);

extensions/vscode/test/suite/workspace-folder-change.integration.test.ts

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -92,18 +92,27 @@ suite('Workspace Folder Change Tests', () => {
9292
const envBuilder = api.environmentBuilder;
9393
const tempDir = createTempDir('ql-mcp-env-');
9494

95+
// Populate the environment cache before mutating workspace folders.
96+
const envBefore = await envBuilder.build();
97+
const beforeFoldersEnv =
98+
envBefore.CODEQL_MCP_WORKSPACE_FOLDERS?.split(path.delimiter) ?? [];
99+
assert.ok(
100+
!beforeFoldersEnv.includes(tempDir),
101+
`Precondition failed: tempDir ${tempDir} unexpectedly present in CODEQL_MCP_WORKSPACE_FOLDERS before add`,
102+
);
103+
95104
await addWorkspaceFolder(vscode.Uri.file(tempDir));
96105

97106
try {
98-
const env = await envBuilder.build();
107+
const envAfter = await envBuilder.build();
99108
assert.ok(
100-
env.CODEQL_MCP_WORKSPACE_FOLDERS,
109+
envAfter.CODEQL_MCP_WORKSPACE_FOLDERS,
101110
'CODEQL_MCP_WORKSPACE_FOLDERS should be set',
102111
);
103-
const workspaceFoldersEnv = env.CODEQL_MCP_WORKSPACE_FOLDERS.split(path.delimiter);
112+
const workspaceFoldersEnv = envAfter.CODEQL_MCP_WORKSPACE_FOLDERS.split(path.delimiter);
104113
assert.ok(
105114
workspaceFoldersEnv.includes(tempDir),
106-
`CODEQL_MCP_WORKSPACE_FOLDERS should include ${tempDir}: ${env.CODEQL_MCP_WORKSPACE_FOLDERS}`,
115+
`CODEQL_MCP_WORKSPACE_FOLDERS should include ${tempDir}: ${envAfter.CODEQL_MCP_WORKSPACE_FOLDERS}`,
107116
);
108117
} finally {
109118
await removeWorkspaceFolder(tempDir);

0 commit comments

Comments
 (0)