diff options
Diffstat (limited to 'packages/cli/src')
| -rw-r--r-- | packages/cli/src/config/settings.ts | 1 | ||||
| -rw-r--r-- | packages/cli/src/ui/App.test.tsx | 33 | ||||
| -rw-r--r-- | packages/cli/src/ui/App.tsx | 2 |
3 files changed, 35 insertions, 1 deletions
diff --git a/packages/cli/src/config/settings.ts b/packages/cli/src/config/settings.ts index de1e5569..28010a7a 100644 --- a/packages/cli/src/config/settings.ts +++ b/packages/cli/src/config/settings.ts @@ -63,6 +63,7 @@ export interface Settings { // UI setting. Does not display the ANSI-controlled terminal title. hideWindowTitle?: boolean; + hideTips?: boolean; // Add other settings here. } diff --git a/packages/cli/src/ui/App.test.tsx b/packages/cli/src/ui/App.test.tsx index 2f12615b..ecd56f5e 100644 --- a/packages/cli/src/ui/App.test.tsx +++ b/packages/cli/src/ui/App.test.tsx @@ -17,6 +17,7 @@ import { } from '@google/gemini-cli-core'; import { LoadedSettings, SettingsFile, Settings } from '../config/settings.js'; import process from 'node:process'; +import { Tips } from './components/Tips.js'; // Define a more complete mock server config based on actual Config interface MockServerConfig { @@ -173,6 +174,10 @@ vi.mock('../config/config.js', async (importOriginal) => { }; }); +vi.mock('./components/Tips.js', () => ({ + Tips: vi.fn(() => null), +})); + describe('App UI', () => { let mockConfig: MockServerConfig; let mockSettings: LoadedSettings; @@ -379,6 +384,34 @@ describe('App UI', () => { expect(lastFrame()).toContain('Using 2 MCP servers'); }); + it('should display Tips component by default', async () => { + const { unmount } = render( + <App + config={mockConfig as unknown as ServerConfig} + settings={mockSettings} + />, + ); + currentUnmount = unmount; + await Promise.resolve(); + expect(vi.mocked(Tips)).toHaveBeenCalled(); + }); + + it('should not display Tips component when hideTips is true', async () => { + mockSettings = createMockSettings({ + hideTips: true, + }); + + const { unmount } = render( + <App + config={mockConfig as unknown as ServerConfig} + settings={mockSettings} + />, + ); + currentUnmount = unmount; + await Promise.resolve(); + expect(vi.mocked(Tips)).not.toHaveBeenCalled(); + }); + describe('when no theme is set', () => { let originalNoColor: string | undefined; diff --git a/packages/cli/src/ui/App.tsx b/packages/cli/src/ui/App.tsx index 6bbe47d4..0848e330 100644 --- a/packages/cli/src/ui/App.tsx +++ b/packages/cli/src/ui/App.tsx @@ -584,7 +584,7 @@ const App = ({ config, settings, startupWarnings = [] }: AppProps) => { items={[ <Box flexDirection="column" key="header"> <Header terminalWidth={terminalWidth} /> - <Tips config={config} /> + {!settings.merged.hideTips && <Tips config={config} />} {updateMessage && <UpdateNotification message={updateMessage} />} </Box>, ...history.map((h) => ( |
