mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-03-15 16:41:11 -07:00
[feat]: Add /extensions restart command (#12739)
This commit is contained in:
@@ -169,4 +169,27 @@ describe('SimpleExtensionLoader', () => {
|
||||
},
|
||||
);
|
||||
});
|
||||
|
||||
describe('restartExtension', () => {
|
||||
it('should stop and then start the extension', async () => {
|
||||
const loader = new TestingSimpleExtensionLoader([activeExtension]);
|
||||
vi.spyOn(loader, 'stopExtension');
|
||||
vi.spyOn(loader, 'startExtension');
|
||||
await loader.start(mockConfig);
|
||||
await loader.restartExtension(activeExtension);
|
||||
expect(loader.stopExtension).toHaveBeenCalledWith(activeExtension);
|
||||
expect(loader.startExtension).toHaveBeenCalledWith(activeExtension);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
// Adding these overrides allows us to access the protected members.
|
||||
class TestingSimpleExtensionLoader extends SimpleExtensionLoader {
|
||||
override async startExtension(extension: GeminiCLIExtension): Promise<void> {
|
||||
await super.startExtension(extension);
|
||||
}
|
||||
|
||||
override async stopExtension(extension: GeminiCLIExtension): Promise<void> {
|
||||
await super.stopExtension(extension);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -200,6 +200,11 @@ export abstract class ExtensionLoader {
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
async restartExtension(extension: GeminiCLIExtension): Promise<void> {
|
||||
await this.stopExtension(extension);
|
||||
await this.startExtension(extension);
|
||||
}
|
||||
}
|
||||
|
||||
export interface ExtensionEvents {
|
||||
|
||||
Reference in New Issue
Block a user