fix: allow MCP prompts with spaces in name (#12910)

Co-authored-by: Abhi <43648792+abhipatel12@users.noreply.github.com>
This commit is contained in:
Jack Wotherspoon
2025-11-19 09:44:30 -05:00
committed by GitHub
parent 1e8ae5b9d7
commit 61f0f3c243
2 changed files with 36 additions and 1 deletions
@@ -175,6 +175,40 @@ describe('McpPromptLoader', () => {
expect(commands[0].kind).toBe(CommandKind.MCP_PROMPT);
});
it('should sanitize prompt names by replacing spaces with hyphens', async () => {
const mockPromptWithSpaces = {
...mockPrompt,
name: 'Prompt Name',
};
vi.spyOn(cliCore, 'getMCPServerPrompts').mockReturnValue([
mockPromptWithSpaces,
]);
const loader = new McpPromptLoader(mockConfigWithPrompts);
const commands = await loader.loadCommands(new AbortController().signal);
expect(commands).toHaveLength(1);
expect(commands[0].name).toBe('Prompt-Name');
expect(commands[0].kind).toBe(CommandKind.MCP_PROMPT);
});
it('should trim whitespace from prompt names before sanitizing', async () => {
const mockPromptWithWhitespace = {
...mockPrompt,
name: ' Prompt Name ',
};
vi.spyOn(cliCore, 'getMCPServerPrompts').mockReturnValue([
mockPromptWithWhitespace,
]);
const loader = new McpPromptLoader(mockConfigWithPrompts);
const commands = await loader.loadCommands(new AbortController().signal);
expect(commands).toHaveLength(1);
expect(commands[0].name).toBe('Prompt-Name');
expect(commands[0].kind).toBe(CommandKind.MCP_PROMPT);
});
it('should handle prompt invocation successfully', async () => {
const loader = new McpPromptLoader(mockConfigWithPrompts);
const commands = await loader.loadCommands(new AbortController().signal);