Download packages/cli/src/ui/components/ContextSummaryDisplay.test.tsx from SaylorTwift/gemini-cli: direct link, hf CLI and curl.
- Browser
- Download file 2.6 kB
-
https://huggingface.co/SaylorTwift/gemini-cli/resolve/main/packages/cli/src/ui/components/ContextSummaryDisplay.test.tsx
- Command line
-
hf download hf://SaylorTwift/gemini-cli/packages/cli/src/ui/components/ContextSummaryDisplay.test.tsx
-
curl -L -o ContextSummaryDisplay.test.tsx https://huggingface.co/SaylorTwift/gemini-cli/resolve/main/packages/cli/src/ui/components/ContextSummaryDisplay.test.tsx
2.6 kB
| /** | |
| * @license | |
| * Copyright 2025 Google LLC | |
| * SPDX-License-Identifier: Apache-2.0 | |
| */ | |
| import type React from 'react'; | |
| import { render } from '../../test-utils/render.js'; | |
| import { describe, it, expect, vi, afterEach } from 'vitest'; | |
| import { ContextSummaryDisplay } from './ContextSummaryDisplay.js'; | |
| import * as useTerminalSize from '../hooks/useTerminalSize.js'; | |
| vi.mock('../hooks/useTerminalSize.js', () => ({ | |
| useTerminalSize: vi.fn(), | |
| })); | |
| const useTerminalSizeMock = vi.mocked(useTerminalSize.useTerminalSize); | |
| afterEach(() => { | |
| vi.restoreAllMocks(); | |
| vi.useRealTimers(); | |
| }); | |
| const renderWithWidth = async ( | |
| width: number, | |
| props: React.ComponentProps<typeof ContextSummaryDisplay>, | |
| ) => { | |
| useTerminalSizeMock.mockReturnValue({ columns: width, rows: 24 }); | |
| const result = await render(<ContextSummaryDisplay {...props} />); | |
| return result; | |
| }; | |
| describe('<ContextSummaryDisplay />', () => { | |
| const baseProps = { | |
| geminiMdFileCount: 0, | |
| contextFileNames: [], | |
| mcpServers: {}, | |
| ideContext: { | |
| workspaceState: { | |
| openFiles: [], | |
| }, | |
| }, | |
| skillCount: 1, | |
| }; | |
| it('should render on a single line on a wide screen', async () => { | |
| const props = { | |
| ...baseProps, | |
| geminiMdFileCount: 1, | |
| contextFileNames: ['GEMINI.md'], | |
| mcpServers: { 'test-server': { command: 'test' } }, | |
| ideContext: { | |
| workspaceState: { | |
| openFiles: [{ path: '/a/b/c', timestamp: Date.now() }], | |
| }, | |
| }, | |
| }; | |
| const { lastFrame, unmount } = await renderWithWidth(120, props); | |
| expect(lastFrame()).toMatchSnapshot(); | |
| unmount(); | |
| }); | |
| it('should render on multiple lines on a narrow screen', async () => { | |
| const props = { | |
| ...baseProps, | |
| geminiMdFileCount: 1, | |
| contextFileNames: ['GEMINI.md'], | |
| mcpServers: { 'test-server': { command: 'test' } }, | |
| ideContext: { | |
| workspaceState: { | |
| openFiles: [{ path: '/a/b/c', timestamp: Date.now() }], | |
| }, | |
| }, | |
| }; | |
| const { lastFrame, unmount } = await renderWithWidth(60, props); | |
| expect(lastFrame()).toMatchSnapshot(); | |
| unmount(); | |
| }); | |
| it('should not render empty parts', async () => { | |
| const props = { | |
| ...baseProps, | |
| geminiMdFileCount: 0, | |
| contextFileNames: [], | |
| mcpServers: {}, | |
| skillCount: 0, | |
| ideContext: { | |
| workspaceState: { | |
| openFiles: [{ path: '/a/b/c', timestamp: Date.now() }], | |
| }, | |
| }, | |
| }; | |
| const { lastFrame, unmount } = await renderWithWidth(60, props); | |
| expect(lastFrame()).toMatchSnapshot(); | |
| unmount(); | |
| }); | |
| }); | |