mirror of
https://github.com/QwenLM/qwen-code.git
synced 2025-12-21 01:07:46 +00:00
Add support for VSCode-like editors (#5699)
Co-authored-by: Jacob Richman <jacob314@gmail.com>
This commit is contained in:
@@ -24,9 +24,17 @@ describe('ide-installer', () => {
|
||||
expect(installer).toBeInstanceOf(Object);
|
||||
});
|
||||
|
||||
it('should return null for an unknown IDE', () => {
|
||||
it('should return an OpenVSXInstaller for "vscodium"', () => {
|
||||
const installer = getIdeInstaller(DetectedIde.VSCodium);
|
||||
expect(installer).not.toBeNull();
|
||||
expect(installer).toBeInstanceOf(Object);
|
||||
});
|
||||
|
||||
it('should return a DefaultIDEInstaller for an unknown IDE', () => {
|
||||
const installer = getIdeInstaller('unknown' as DetectedIde);
|
||||
expect(installer).toBeNull();
|
||||
// Assuming DefaultIDEInstaller is the fallback
|
||||
expect(installer).not.toBeNull();
|
||||
expect(installer).toBeInstanceOf(Object);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -59,4 +67,44 @@ describe('ide-installer', () => {
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('OpenVSXInstaller', () => {
|
||||
let installer: IdeInstaller;
|
||||
|
||||
beforeEach(() => {
|
||||
installer = getIdeInstaller(DetectedIde.VSCodium)!;
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
vi.restoreAllMocks();
|
||||
});
|
||||
|
||||
describe('install', () => {
|
||||
it('should call execSync with the correct command and return success', async () => {
|
||||
const execSyncSpy = vi
|
||||
.spyOn(child_process, 'execSync')
|
||||
.mockImplementation(() => '');
|
||||
const result = await installer.install();
|
||||
expect(execSyncSpy).toHaveBeenCalledWith(
|
||||
'npx ovsx get google.gemini-cli-vscode-ide-companion',
|
||||
{ stdio: 'pipe' },
|
||||
);
|
||||
expect(result.success).toBe(true);
|
||||
expect(result.message).toContain(
|
||||
'VS Code companion extension was installed successfully from OpenVSX',
|
||||
);
|
||||
});
|
||||
|
||||
it('should return a failure message on failed installation', async () => {
|
||||
vi.spyOn(child_process, 'execSync').mockImplementation(() => {
|
||||
throw new Error('Command failed');
|
||||
});
|
||||
const result = await installer.install();
|
||||
expect(result.success).toBe(false);
|
||||
expect(result.message).toContain(
|
||||
'Failed to install VS Code companion extension from OpenVSX',
|
||||
);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user