Ss/fix ext (#12540)

Co-authored-by: gemini-cli-robot <gemini-cli-robot@google.com>
This commit is contained in:
shishu314
2025-11-04 15:01:30 -05:00
committed by GitHub
parent f796650122
commit 75c2769b32
+33 -32
View File
@@ -4,49 +4,50 @@
* SPDX-License-Identifier: Apache-2.0 * SPDX-License-Identifier: Apache-2.0
*/ */
import { expect, test } from 'vitest'; import { describe, expect, it } from 'vitest';
import { TestRig } from './test-helper.js'; import { TestRig } from './test-helper.js';
import { writeFileSync } from 'node:fs'; import { writeFileSync } from 'node:fs';
import { join } from 'node:path'; import { join } from 'node:path';
const extension = `{ const extension = `{
"name": "test-extension", "name": "test-extension-install",
"version": "0.0.1" "version": "0.0.1"
}`; }`;
const extensionUpdate = `{ const extensionUpdate = `{
"name": "test-extension", "name": "test-extension-install",
"version": "0.0.2" "version": "0.0.2"
}`; }`;
test('installs a local extension, verifies a command, and updates it', async () => { describe('extension install', () => {
const rig = new TestRig(); it('installs a local extension, verifies a command, and updates it', async () => {
rig.setup('extension install test'); const rig = new TestRig();
const testServerPath = join(rig.testDir!, 'gemini-extension.json'); rig.setup('extension install test');
writeFileSync(testServerPath, extension); const testServerPath = join(rig.testDir!, 'gemini-extension.json');
try { writeFileSync(testServerPath, extension);
await rig.runCommand(['extensions', 'uninstall', 'test-extension']); try {
} catch { const result = await rig.runCommand(
/* empty */ ['extensions', 'install', `${rig.testDir!}`],
} { stdin: 'y\n' },
);
expect(result).toContain('test-extension-install');
const result = await rig.runCommand( const listResult = await rig.runCommand(['extensions', 'list']);
['extensions', 'install', `${rig.testDir!}`], expect(listResult).toContain('test-extension-install');
{ stdin: 'y\n' }, writeFileSync(testServerPath, extensionUpdate);
); const updateResult = await rig.runCommand([
expect(result).toContain('test-extension'); 'extensions',
'update',
const listResult = await rig.runCommand(['extensions', 'list']); `test-extension-install`,
expect(listResult).toContain('test-extension'); ]);
writeFileSync(testServerPath, extensionUpdate); expect(updateResult).toContain('0.0.2');
const updateResult = await rig.runCommand([ } finally {
'extensions', await rig.runCommand([
'update', 'extensions',
`test-extension`, 'uninstall',
]); 'test-extension-install',
expect(updateResult).toContain('0.0.2'); ]);
await rig.cleanup();
await rig.runCommand(['extensions', 'uninstall', 'test-extension']); }
});
await rig.cleanup();
}); });