Fix handling of empty settings (#18131)

This commit is contained in:
christine betts
2026-02-03 15:39:20 -05:00
committed by GitHub
parent 2cf3a14439
commit 3e954930f1
9 changed files with 83 additions and 13 deletions
+1 -1
View File
@@ -158,7 +158,7 @@ export interface ExtensionSetting {
export interface ResolvedExtensionSetting {
name: string;
envVar: string;
value: string;
value?: string;
sensitive: boolean;
scope?: 'user' | 'workspace';
source?: string;
@@ -1556,6 +1556,41 @@ describe('mcp-client', () => {
expect(callArgs.env!['GEMINI_CLI_EXT_VAR']).toBe('ext-value');
});
it('should exclude extension settings with undefined values from environment', async () => {
const mockedTransport = vi
.spyOn(SdkClientStdioLib, 'StdioClientTransport')
.mockReturnValue({} as SdkClientStdioLib.StdioClientTransport);
await createTransport(
'test-server',
{
command: 'test-command',
extension: {
name: 'test-ext',
resolvedSettings: [
{
envVar: 'GEMINI_CLI_EXT_VAR',
value: undefined,
sensitive: false,
name: 'ext-setting',
},
],
version: '',
isActive: false,
path: '',
contextFiles: [],
id: '',
},
},
false,
EMPTY_CONFIG,
);
const callArgs = mockedTransport.mock.calls[0][0];
expect(callArgs.env).toBeDefined();
expect(callArgs.env!['GEMINI_CLI_EXT_VAR']).toBeUndefined();
});
describe('useGoogleCredentialProvider', () => {
beforeEach(() => {
// Mock GoogleAuth client
+3 -1
View File
@@ -1948,7 +1948,9 @@ function getExtensionEnvironment(
const env: Record<string, string> = {};
if (extension?.resolvedSettings) {
for (const setting of extension.resolvedSettings) {
env[setting.envVar] = setting.value;
if (setting.value) {
env[setting.envVar] = setting.value;
}
}
}
return env;