diff options
Diffstat (limited to 'packages/cli/src/config/extension.test.ts')
| -rw-r--r-- | packages/cli/src/config/extension.test.ts | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/packages/cli/src/config/extension.test.ts b/packages/cli/src/config/extension.test.ts index 7d299c78..ab68e3f5 100644 --- a/packages/cli/src/config/extension.test.ts +++ b/packages/cli/src/config/extension.test.ts @@ -11,6 +11,7 @@ import * as path from 'path'; import { EXTENSIONS_CONFIG_FILENAME, EXTENSIONS_DIRECTORY_NAME, + filterActiveExtensions, loadExtensions, } from './extension.js'; @@ -85,6 +86,47 @@ describe('loadExtensions', () => { }); }); +describe('filterActiveExtensions', () => { + const extensions = [ + { config: { name: 'ext1', version: '1.0.0' }, contextFiles: [] }, + { config: { name: 'ext2', version: '1.0.0' }, contextFiles: [] }, + { config: { name: 'ext3', version: '1.0.0' }, contextFiles: [] }, + ]; + + it('should return all extensions if no enabled extensions are provided', () => { + const activeExtensions = filterActiveExtensions(extensions, []); + expect(activeExtensions).toHaveLength(3); + }); + + it('should return only the enabled extensions', () => { + const activeExtensions = filterActiveExtensions(extensions, [ + 'ext1', + 'ext3', + ]); + expect(activeExtensions).toHaveLength(2); + expect(activeExtensions.some((e) => e.config.name === 'ext1')).toBe(true); + expect(activeExtensions.some((e) => e.config.name === 'ext3')).toBe(true); + }); + + it('should return no extensions when "none" is provided', () => { + const activeExtensions = filterActiveExtensions(extensions, ['none']); + expect(activeExtensions).toHaveLength(0); + }); + + it('should handle case-insensitivity', () => { + const activeExtensions = filterActiveExtensions(extensions, ['EXT1']); + expect(activeExtensions).toHaveLength(1); + expect(activeExtensions[0].config.name).toBe('ext1'); + }); + + it('should log an error for unknown extensions', () => { + const consoleSpy = vi.spyOn(console, 'log').mockImplementation(() => {}); + filterActiveExtensions(extensions, ['ext4']); + expect(consoleSpy).toHaveBeenCalledWith('Extension not found: ext4'); + consoleSpy.mockRestore(); + }); +}); + function createExtension( extensionsDir: string, name: string, |
