diff options
Diffstat (limited to 'packages/cli/src/ui/commands')
| -rw-r--r-- | packages/cli/src/ui/commands/aboutCommand.test.ts | 34 | ||||
| -rw-r--r-- | packages/cli/src/ui/commands/aboutCommand.ts | 4 |
2 files changed, 38 insertions, 0 deletions
diff --git a/packages/cli/src/ui/commands/aboutCommand.test.ts b/packages/cli/src/ui/commands/aboutCommand.test.ts index 43cd59ec..27e96755 100644 --- a/packages/cli/src/ui/commands/aboutCommand.test.ts +++ b/packages/cli/src/ui/commands/aboutCommand.test.ts @@ -11,6 +11,8 @@ import { createMockCommandContext } from '../../test-utils/mockCommandContext.js import * as versionUtils from '../../utils/version.js'; import { MessageType } from '../types.js'; +import { IdeClient } from '../../../../core/src/ide/ide-client.js'; + vi.mock('../../utils/version.js', () => ({ getCliVersion: vi.fn(), })); @@ -25,6 +27,7 @@ describe('aboutCommand', () => { services: { config: { getModel: vi.fn(), + getIdeClient: vi.fn(), }, settings: { merged: { @@ -45,6 +48,9 @@ describe('aboutCommand', () => { Object.defineProperty(process, 'platform', { value: 'test-os', }); + vi.spyOn(mockContext.services.config!, 'getIdeClient').mockReturnValue({ + getDetectedIdeDisplayName: vi.fn().mockReturnValue('test-ide'), + } as Partial<IdeClient> as IdeClient); }); afterEach(() => { @@ -78,6 +84,7 @@ describe('aboutCommand', () => { modelVersion: 'test-model', selectedAuthType: 'test-auth', gcpProject: 'test-gcp-project', + ideClient: 'test-ide', }, expect.any(Number), ); @@ -115,4 +122,31 @@ describe('aboutCommand', () => { expect.any(Number), ); }); + + it('should not show ide client when it is not detected', async () => { + vi.spyOn(mockContext.services.config!, 'getIdeClient').mockReturnValue({ + getDetectedIdeDisplayName: vi.fn().mockReturnValue(undefined), + } as Partial<IdeClient> as IdeClient); + + process.env.SANDBOX = ''; + if (!aboutCommand.action) { + throw new Error('The about command must have an action.'); + } + + await aboutCommand.action(mockContext, ''); + + expect(mockContext.ui.addItem).toHaveBeenCalledWith( + expect.objectContaining({ + type: MessageType.ABOUT, + cliVersion: 'test-version', + osVersion: 'test-os', + sandboxEnv: 'no sandbox', + modelVersion: 'test-model', + selectedAuthType: 'test-auth', + gcpProject: 'test-gcp-project', + ideClient: '', + }), + expect.any(Number), + ); + }); }); diff --git a/packages/cli/src/ui/commands/aboutCommand.ts b/packages/cli/src/ui/commands/aboutCommand.ts index 18a82682..47b1b495 100644 --- a/packages/cli/src/ui/commands/aboutCommand.ts +++ b/packages/cli/src/ui/commands/aboutCommand.ts @@ -28,6 +28,9 @@ export const aboutCommand: SlashCommand = { const selectedAuthType = context.services.settings.merged.selectedAuthType || ''; const gcpProject = process.env.GOOGLE_CLOUD_PROJECT || ''; + const ideClient = + context.services.config?.getIdeClient()?.getDetectedIdeDisplayName() || + ''; const aboutItem: Omit<HistoryItemAbout, 'id'> = { type: MessageType.ABOUT, @@ -37,6 +40,7 @@ export const aboutCommand: SlashCommand = { modelVersion, selectedAuthType, gcpProject, + ideClient, }; context.ui.addItem(aboutItem, Date.now()); |
