# Task ID: 66 **Title:** Add unit tests for LLM prompt selection **Status:** done **Dependencies:** 46 ✓ **Priority:** high **Description:** Create unit tests for the LLM-based prompt selection service covering LLM interactions, fallback behavior, and priority 10 handling. **Details:** 1. Add tests in `/src/mcplocal/tests/services/llm-prompt-selector.test.ts`: ```typescript describe('LlmPromptSelectorService', () => { describe('priority 10 handling', () => { it('always includes priority 10 prompts', async () => { const result = await selector.selectPrompts(['unrelated'], promptIndex); expect(result.priority10).toContain(priority10Prompt); }); }); describe('LLM selection', () => { it('sends tags and index to heavy LLM', async () => { await selector.selectPrompts(['zigbee', 'mqtt'], promptIndex); expect(mockLlm.complete).toHaveBeenCalledWith( expect.stringContaining('zigbee') ); }); it('parses LLM response correctly', async () => { mockLlm.complete.mockResolvedValue( '[{"name": "prompt1", "reason": "relevant"}]' ); const result = await selector.selectPrompts(['test'], promptIndex); expect(result.selected[0].name).toBe('prompt1'); }); }); describe('fallback behavior', () => { it('falls back to tag matcher on LLM error', async () => { ... }); it('falls back on LLM timeout', async () => { ... }); it('falls back when no LLM available', async () => { ... }); }); describe('summary generation', () => { it('generates missing summaries with fast LLM', async () => { ... }); }); }); ``` **Test Strategy:** This task IS the test implementation. Verify: - Priority 10 tests pass - LLM interaction tests use proper mocks - Fallback tests cover all error scenarios - Summary generation tests pass - Response parsing handles edge cases