mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-04-26 21:14:35 -07:00
Ss/fix ext (#12540)
Co-authored-by: gemini-cli-robot <gemini-cli-robot@google.com>
This commit is contained in:
@@ -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();
|
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user