mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-05-13 05:12:55 -07:00
Don't log an error about invalid extensions when passing "-e none" (#10203)
This commit is contained in:
@@ -9,6 +9,7 @@ import fs from 'node:fs';
|
|||||||
import os from 'node:os';
|
import os from 'node:os';
|
||||||
import { afterEach, beforeEach, describe, expect, it } from 'vitest';
|
import { afterEach, beforeEach, describe, expect, it } from 'vitest';
|
||||||
import { ExtensionEnablementManager, Override } from './extensionEnablement.js';
|
import { ExtensionEnablementManager, Override } from './extensionEnablement.js';
|
||||||
|
import type { Extension } from '../extension.js';
|
||||||
|
|
||||||
// Helper to create a temporary directory for testing
|
// Helper to create a temporary directory for testing
|
||||||
function createTestDir() {
|
function createTestDir() {
|
||||||
@@ -225,6 +226,63 @@ describe('ExtensionEnablementManager', () => {
|
|||||||
true,
|
true,
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe('validateExtensionOverrides', () => {
|
||||||
|
let consoleErrorSpy: ReturnType<typeof vi.spyOn>;
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
consoleErrorSpy = vi.spyOn(console, 'error').mockImplementation(() => {});
|
||||||
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
consoleErrorSpy.mockRestore();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should not log an error if enabledExtensionNamesOverride is empty', () => {
|
||||||
|
const manager = new ExtensionEnablementManager(configDir, []);
|
||||||
|
manager.validateExtensionOverrides([]);
|
||||||
|
expect(consoleErrorSpy).not.toHaveBeenCalled();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should not log an error if all enabledExtensionNamesOverride are valid', () => {
|
||||||
|
const manager = new ExtensionEnablementManager(configDir, [
|
||||||
|
'ext-one',
|
||||||
|
'ext-two',
|
||||||
|
]);
|
||||||
|
const extensions = [
|
||||||
|
{ config: { name: 'ext-one' } },
|
||||||
|
{ config: { name: 'ext-two' } },
|
||||||
|
] as Extension[];
|
||||||
|
manager.validateExtensionOverrides(extensions);
|
||||||
|
expect(consoleErrorSpy).not.toHaveBeenCalled();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should log an error for each invalid extension name in enabledExtensionNamesOverride', () => {
|
||||||
|
const manager = new ExtensionEnablementManager(configDir, [
|
||||||
|
'ext-one',
|
||||||
|
'ext-invalid',
|
||||||
|
'ext-another-invalid',
|
||||||
|
]);
|
||||||
|
const extensions = [
|
||||||
|
{ config: { name: 'ext-one' } },
|
||||||
|
{ config: { name: 'ext-two' } },
|
||||||
|
] as Extension[];
|
||||||
|
manager.validateExtensionOverrides(extensions);
|
||||||
|
expect(consoleErrorSpy).toHaveBeenCalledTimes(2);
|
||||||
|
expect(consoleErrorSpy).toHaveBeenCalledWith(
|
||||||
|
'Extension not found: ext-invalid',
|
||||||
|
);
|
||||||
|
expect(consoleErrorSpy).toHaveBeenCalledWith(
|
||||||
|
'Extension not found: ext-another-invalid',
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should not log an error if "none" is in enabledExtensionNamesOverride', () => {
|
||||||
|
const manager = new ExtensionEnablementManager(configDir, ['none']);
|
||||||
|
manager.validateExtensionOverrides([]);
|
||||||
|
expect(consoleErrorSpy).not.toHaveBeenCalled();
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('Override', () => {
|
describe('Override', () => {
|
||||||
|
|||||||
@@ -121,6 +121,7 @@ export class ExtensionEnablementManager {
|
|||||||
|
|
||||||
validateExtensionOverrides(extensions: Extension[]) {
|
validateExtensionOverrides(extensions: Extension[]) {
|
||||||
for (const name of this.enabledExtensionNamesOverride) {
|
for (const name of this.enabledExtensionNamesOverride) {
|
||||||
|
if (name === 'none') continue;
|
||||||
if (
|
if (
|
||||||
!extensions.some(
|
!extensions.some(
|
||||||
(ext) => ext.config.name.toLowerCase() === name.toLowerCase(),
|
(ext) => ext.config.name.toLowerCase() === name.toLowerCase(),
|
||||||
|
|||||||
Reference in New Issue
Block a user