Download packages/cli/src/ui/components/ContextUsageDisplay.test.tsx from SaylorTwift/gemini-cli: direct link, hf CLI and curl.
- Browser
- Download file 2.31 kB
-
https://huggingface.co/SaylorTwift/gemini-cli/resolve/main/packages/cli/src/ui/components/ContextUsageDisplay.test.tsx
- Command line
-
hf download hf://SaylorTwift/gemini-cli/packages/cli/src/ui/components/ContextUsageDisplay.test.tsx
-
curl -L -o ContextUsageDisplay.test.tsx https://huggingface.co/SaylorTwift/gemini-cli/resolve/main/packages/cli/src/ui/components/ContextUsageDisplay.test.tsx
2.31 kB
| /** | |
| * @license | |
| * Copyright 2025 Google LLC | |
| * SPDX-License-Identifier: Apache-2.0 | |
| */ | |
| import { renderWithProviders } from '../../test-utils/render.js'; | |
| import { ContextUsageDisplay } from './ContextUsageDisplay.js'; | |
| import { describe, it, expect, vi } from 'vitest'; | |
| vi.mock('@google/gemini-cli-core', async (importOriginal) => { | |
| const actual = | |
| await importOriginal<typeof import('@google/gemini-cli-core')>(); | |
| return { | |
| ...actual, | |
| tokenLimit: () => 10000, | |
| }; | |
| }); | |
| describe('ContextUsageDisplay', () => { | |
| it('renders correct percentage used', async () => { | |
| const { lastFrame, unmount } = await renderWithProviders( | |
| <ContextUsageDisplay | |
| promptTokenCount={5000} | |
| model="gemini-pro" | |
| terminalWidth={120} | |
| />, | |
| ); | |
| const output = lastFrame(); | |
| expect(output).toContain('50% used'); | |
| unmount(); | |
| }); | |
| it('renders correctly when usage is 0%', async () => { | |
| const { lastFrame, unmount } = await renderWithProviders( | |
| <ContextUsageDisplay | |
| promptTokenCount={0} | |
| model="gemini-pro" | |
| terminalWidth={120} | |
| />, | |
| ); | |
| const output = lastFrame(); | |
| expect(output).toContain('0% used'); | |
| unmount(); | |
| }); | |
| it('renders abbreviated label when terminal width is small', async () => { | |
| const { lastFrame, unmount } = await renderWithProviders( | |
| <ContextUsageDisplay | |
| promptTokenCount={2000} | |
| model="gemini-pro" | |
| terminalWidth={80} | |
| />, | |
| { width: 80 }, | |
| ); | |
| const output = lastFrame(); | |
| expect(output).toContain('20%'); | |
| expect(output).not.toContain('context used'); | |
| unmount(); | |
| }); | |
| it('renders 80% correctly', async () => { | |
| const { lastFrame, unmount } = await renderWithProviders( | |
| <ContextUsageDisplay | |
| promptTokenCount={8000} | |
| model="gemini-pro" | |
| terminalWidth={120} | |
| />, | |
| ); | |
| const output = lastFrame(); | |
| expect(output).toContain('80% used'); | |
| unmount(); | |
| }); | |
| it('renders 100% when full', async () => { | |
| const { lastFrame, unmount } = await renderWithProviders( | |
| <ContextUsageDisplay | |
| promptTokenCount={10000} | |
| model="gemini-pro" | |
| terminalWidth={120} | |
| />, | |
| ); | |
| const output = lastFrame(); | |
| expect(output).toContain('100% used'); | |
| unmount(); | |
| }); | |
| }); | |