mirror of
https://github.com/QwenLM/qwen-code.git
synced 2026-04-29 20:20:57 +00:00
Add --allowed_mcp_server_names flag (#3464)
This commit is contained in:
parent
355fb4ac67
commit
229ae03631
2 changed files with 96 additions and 1 deletions
|
|
@ -478,3 +478,80 @@ describe('mergeExcludeTools', () => {
|
|||
expect(settings).toEqual(originalSettings);
|
||||
});
|
||||
});
|
||||
|
||||
describe('loadCliConfig with allowed_mcp_server_names', () => {
|
||||
const originalArgv = process.argv;
|
||||
const originalEnv = { ...process.env };
|
||||
|
||||
beforeEach(() => {
|
||||
vi.resetAllMocks();
|
||||
vi.mocked(os.homedir).mockReturnValue('/mock/home/user');
|
||||
process.env.GEMINI_API_KEY = 'test-api-key';
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
process.argv = originalArgv;
|
||||
process.env = originalEnv;
|
||||
vi.restoreAllMocks();
|
||||
});
|
||||
|
||||
const baseSettings: Settings = {
|
||||
mcpServers: {
|
||||
server1: { url: 'http://localhost:8080' },
|
||||
server2: { url: 'http://localhost:8081' },
|
||||
server3: { url: 'http://localhost:8082' },
|
||||
},
|
||||
};
|
||||
|
||||
it('should allow all MCP servers if the flag is not provided', async () => {
|
||||
process.argv = ['node', 'script.js'];
|
||||
const config = await loadCliConfig(baseSettings, [], 'test-session');
|
||||
expect(config.getMcpServers()).toEqual(baseSettings.mcpServers);
|
||||
});
|
||||
|
||||
it('should allow only the specified MCP server', async () => {
|
||||
process.argv = [
|
||||
'node',
|
||||
'script.js',
|
||||
'--allowed_mcp_server_names',
|
||||
'server1',
|
||||
];
|
||||
const config = await loadCliConfig(baseSettings, [], 'test-session');
|
||||
expect(config.getMcpServers()).toEqual({
|
||||
server1: { url: 'http://localhost:8080' },
|
||||
});
|
||||
});
|
||||
|
||||
it('should allow multiple specified MCP servers', async () => {
|
||||
process.argv = [
|
||||
'node',
|
||||
'script.js',
|
||||
'--allowed_mcp_server_names',
|
||||
'server1,server3',
|
||||
];
|
||||
const config = await loadCliConfig(baseSettings, [], 'test-session');
|
||||
expect(config.getMcpServers()).toEqual({
|
||||
server1: { url: 'http://localhost:8080' },
|
||||
server3: { url: 'http://localhost:8082' },
|
||||
});
|
||||
});
|
||||
|
||||
it('should handle server names that do not exist', async () => {
|
||||
process.argv = [
|
||||
'node',
|
||||
'script.js',
|
||||
'--allowed_mcp_server_names',
|
||||
'server1,server4',
|
||||
];
|
||||
const config = await loadCliConfig(baseSettings, [], 'test-session');
|
||||
expect(config.getMcpServers()).toEqual({
|
||||
server1: { url: 'http://localhost:8080' },
|
||||
});
|
||||
});
|
||||
|
||||
it('should allow all MCP servers if the flag is an empty string', async () => {
|
||||
process.argv = ['node', 'script.js', '--allowed_mcp_server_names', ''];
|
||||
const config = await loadCliConfig(baseSettings, [], 'test-session');
|
||||
expect(config.getMcpServers()).toEqual(baseSettings.mcpServers);
|
||||
});
|
||||
});
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue