diff options
| author | Preston Holmes <[email protected]> | 2025-06-27 08:46:27 -0700 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-06-27 15:46:27 +0000 |
| commit | 3aabb940f5b66aaed340d20bf4decfa6c40330cc (patch) | |
| tree | 10e4953a5f2290a43adb14314fe2e95c738cdd1f /packages/cli/src/ui/hooks | |
| parent | 3ebf54f367bb9bf737dc78702186d42501cbc0a6 (diff) | |
Add the current auth method and GCP Project config to the about message (#2112)
Diffstat (limited to 'packages/cli/src/ui/hooks')
| -rw-r--r-- | packages/cli/src/ui/hooks/slashCommandProcessor.test.ts | 83 | ||||
| -rw-r--r-- | packages/cli/src/ui/hooks/slashCommandProcessor.ts | 7 |
2 files changed, 90 insertions, 0 deletions
diff --git a/packages/cli/src/ui/hooks/slashCommandProcessor.test.ts b/packages/cli/src/ui/hooks/slashCommandProcessor.test.ts index 09d2acab..01954670 100644 --- a/packages/cli/src/ui/hooks/slashCommandProcessor.test.ts +++ b/packages/cli/src/ui/hooks/slashCommandProcessor.test.ts @@ -336,6 +336,89 @@ describe('useSlashCommandProcessor', () => { }); }); + describe('/about command', () => { + it('should show the about box with all details including auth and project', async () => { + // Arrange + mockGetCliVersionFn.mockResolvedValue('test-version'); + process.env.SANDBOX = 'gemini-sandbox'; + process.env.GOOGLE_CLOUD_PROJECT = 'test-gcp-project'; + vi.mocked(mockConfig.getModel).mockReturnValue('test-model-from-config'); + + const settings = { + merged: { + selectedAuthType: 'test-auth-type', + contextFileName: 'GEMINI.md', + }, + } as LoadedSettings; + + const { result } = renderHook(() => + useSlashCommandProcessor( + mockConfig, + settings, + [], + mockAddItem, + mockClearItems, + mockLoadHistory, + mockRefreshStatic, + mockSetShowHelp, + mockOnDebugMessage, + mockOpenThemeDialog, + mockOpenAuthDialog, + mockOpenEditorDialog, + mockPerformMemoryRefresh, + mockCorgiMode, + false, + mockSetQuittingMessages, + ), + ); + + // Act + await act(async () => { + await result.current.handleSlashCommand('/about'); + }); + + // Assert + expect(mockAddItem).toHaveBeenCalledTimes(2); // user message + about message + expect(mockAddItem).toHaveBeenNthCalledWith( + 2, + expect.objectContaining({ + type: 'about', + cliVersion: 'test-version', + osVersion: 'test-platform', + sandboxEnv: 'gemini-sandbox', + modelVersion: 'test-model-from-config', + selectedAuthType: 'test-auth-type', + gcpProject: 'test-gcp-project', + }), + expect.any(Number), + ); + }); + + it('should show sandbox-exec profile when applicable', async () => { + // Arrange + mockGetCliVersionFn.mockResolvedValue('test-version'); + process.env.SANDBOX = 'sandbox-exec'; + process.env.SEATBELT_PROFILE = 'test-profile'; + vi.mocked(mockConfig.getModel).mockReturnValue('test-model-from-config'); + + const { result } = getProcessorHook(); + + // Act + await act(async () => { + await result.current.handleSlashCommand('/about'); + }); + + // Assert + expect(mockAddItem).toHaveBeenNthCalledWith( + 2, + expect.objectContaining({ + sandboxEnv: 'sandbox-exec (test-profile)', + }), + expect.any(Number), + ); + }); + }); + describe('Other commands', () => { it('/help should open help and return true', async () => { const { handleSlashCommand } = getProcessor(); diff --git a/packages/cli/src/ui/hooks/slashCommandProcessor.ts b/packages/cli/src/ui/hooks/slashCommandProcessor.ts index 52e8effc..bd0e38b8 100644 --- a/packages/cli/src/ui/hooks/slashCommandProcessor.ts +++ b/packages/cli/src/ui/hooks/slashCommandProcessor.ts @@ -103,6 +103,8 @@ export const useSlashCommandProcessor = ( osVersion: message.osVersion, sandboxEnv: message.sandboxEnv, modelVersion: message.modelVersion, + selectedAuthType: message.selectedAuthType, + gcpProject: message.gcpProject, }; } else if (message.type === MessageType.STATS) { historyItemContent = { @@ -596,6 +598,8 @@ export const useSlashCommandProcessor = ( } const modelVersion = config?.getModel() || 'Unknown'; const cliVersion = await getCliVersion(); + const selectedAuthType = settings.merged.selectedAuthType || ''; + const gcpProject = process.env.GOOGLE_CLOUD_PROJECT || ''; addMessage({ type: MessageType.ABOUT, timestamp: new Date(), @@ -603,6 +607,8 @@ export const useSlashCommandProcessor = ( osVersion, sandboxEnv, modelVersion, + selectedAuthType, + gcpProject, }); }, }, @@ -1007,6 +1013,7 @@ export const useSlashCommandProcessor = ( toggleCorgiMode, savedChatTags, config, + settings, showToolDescriptions, session, gitService, |
