mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-05-13 05:12:55 -07:00
restore case insensitivity for extension enablement and add tests (#10249)
This commit is contained in:
@@ -227,6 +227,42 @@ describe('ExtensionEnablementManager', () => {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe('extension overrides (-e <name>)', () => {
|
||||||
|
beforeEach(() => {
|
||||||
|
manager = new ExtensionEnablementManager(configDir, ['ext-test']);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('can enable extensions, case-insensitive', () => {
|
||||||
|
manager.disable('ext-test', true, '/');
|
||||||
|
expect(manager.isEnabled('ext-test', '/')).toBe(true);
|
||||||
|
expect(manager.isEnabled('Ext-Test', '/')).toBe(true);
|
||||||
|
// Double check that it would have been disabled otherwise
|
||||||
|
expect(
|
||||||
|
new ExtensionEnablementManager(configDir).isEnabled('ext-test', '/'),
|
||||||
|
).toBe(false);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('disable all other extensions', () => {
|
||||||
|
manager = new ExtensionEnablementManager(configDir, ['ext-test']);
|
||||||
|
manager.enable('ext-test-2', true, '/');
|
||||||
|
expect(manager.isEnabled('ext-test-2', '/')).toBe(false);
|
||||||
|
// Double check that it would have been enabled otherwise
|
||||||
|
expect(
|
||||||
|
new ExtensionEnablementManager(configDir).isEnabled('ext-test-2', '/'),
|
||||||
|
).toBe(true);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('none disables all extensions', () => {
|
||||||
|
manager = new ExtensionEnablementManager(configDir, ['none']);
|
||||||
|
manager.enable('ext-test', true, '/');
|
||||||
|
expect(manager.isEnabled('ext-test', '/path/to/dir')).toBe(false);
|
||||||
|
// Double check that it would have been enabled otherwise
|
||||||
|
expect(
|
||||||
|
new ExtensionEnablementManager(configDir).isEnabled('ext-test', '/'),
|
||||||
|
).toBe(true);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
describe('validateExtensionOverrides', () => {
|
describe('validateExtensionOverrides', () => {
|
||||||
let consoleErrorSpy: ReturnType<typeof vi.spyOn>;
|
let consoleErrorSpy: ReturnType<typeof vi.spyOn>;
|
||||||
|
|
||||||
|
|||||||
@@ -152,7 +152,11 @@ export class ExtensionEnablementManager {
|
|||||||
|
|
||||||
// If we have explicit overrides, only enable those extensions.
|
// If we have explicit overrides, only enable those extensions.
|
||||||
if (this.enabledExtensionNamesOverride.length > 0) {
|
if (this.enabledExtensionNamesOverride.length > 0) {
|
||||||
return this.enabledExtensionNamesOverride.includes(extensionName);
|
// When checking against overrides ONLY, we use a case insensitive match.
|
||||||
|
// The override names are already lowercased in the constructor.
|
||||||
|
return this.enabledExtensionNamesOverride.includes(
|
||||||
|
extensionName.toLocaleLowerCase(),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Otherwise, we use the configuration settings
|
// Otherwise, we use the configuration settings
|
||||||
|
|||||||
Reference in New Issue
Block a user