import { stringifyVsCodeLmModelSelector, SELECTOR_SEPARATOR } from '../vsCodeSelectorUtils'; import { LanguageModelChatSelector } from 'vscode'; describe('vsCodeSelectorUtils', () => { describe('stringifyVsCodeLmModelSelector', () => { it('should join all defined selector properties with separator', () => { const selector: LanguageModelChatSelector = { vendor: 'test-vendor', family: 'test-family', version: 'v1', id: 'test-id' }; const result = stringifyVsCodeLmModelSelector(selector); expect(result).toBe('test-vendor/test-family/v1/test-id'); }); it('should skip undefined properties', () => { const selector: LanguageModelChatSelector = { vendor: 'test-vendor', family: 'test-family' }; const result = stringifyVsCodeLmModelSelector(selector); expect(result).toBe('test-vendor/test-family'); }); it('should handle empty selector', () => { const selector: LanguageModelChatSelector = {}; const result = stringifyVsCodeLmModelSelector(selector); expect(result).toBe(''); }); it('should handle selector with only one property', () => { const selector: LanguageModelChatSelector = { vendor: 'test-vendor' }; const result = stringifyVsCodeLmModelSelector(selector); expect(result).toBe('test-vendor'); }); }); });