summaryrefslogtreecommitdiff
path: root/packages/cli/src/config/extension.test.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/cli/src/config/extension.test.ts')
-rw-r--r--packages/cli/src/config/extension.test.ts42
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,