Download packages/cli/src/ui/components/messages/SubagentGroupDisplay.test.tsx from SaylorTwift/gemini-cli: direct link, hf CLI and curl.
- Browser
- Download file 3.61 kB
-
https://huggingface.co/SaylorTwift/gemini-cli/resolve/main/packages/cli/src/ui/components/messages/SubagentGroupDisplay.test.tsx
- Command line
-
hf download hf://SaylorTwift/gemini-cli/packages/cli/src/ui/components/messages/SubagentGroupDisplay.test.tsx
-
curl -L -o SubagentGroupDisplay.test.tsx https://huggingface.co/SaylorTwift/gemini-cli/resolve/main/packages/cli/src/ui/components/messages/SubagentGroupDisplay.test.tsx
3.61 kB
| /** | |
| * @license | |
| * Copyright 2026 Google LLC | |
| * SPDX-License-Identifier: Apache-2.0 | |
| */ | |
| import { waitFor } from '../../../test-utils/async.js'; | |
| import { renderWithProviders } from '../../../test-utils/render.js'; | |
| import { SubagentGroupDisplay } from './SubagentGroupDisplay.js'; | |
| import { | |
| Kind, | |
| CoreToolCallStatus, | |
| SubagentState, | |
| } from '@google/gemini-cli-core'; | |
| import type { IndividualToolCallDisplay } from '../../types.js'; | |
| import { describe, it, expect, vi } from 'vitest'; | |
| import { Text } from 'ink'; | |
| vi.mock('../../utils/MarkdownDisplay.js', () => ({ | |
| MarkdownDisplay: ({ text }: { text: string }) => <Text>{text}</Text>, | |
| })); | |
| describe('<SubagentGroupDisplay />', () => { | |
| const mockToolCalls: IndividualToolCallDisplay[] = [ | |
| { | |
| callId: 'call-1', | |
| name: 'agent_1', | |
| description: 'Test agent 1', | |
| confirmationDetails: undefined, | |
| status: CoreToolCallStatus.Executing, | |
| kind: Kind.Agent, | |
| resultDisplay: { | |
| isSubagentProgress: true, | |
| agentName: 'api-monitor', | |
| state: SubagentState.RUNNING, | |
| recentActivity: [ | |
| { | |
| id: 'act-1', | |
| type: 'tool_call', | |
| status: SubagentState.RUNNING, | |
| content: '', | |
| displayName: 'Action Required', | |
| description: 'Verify server is running', | |
| }, | |
| ], | |
| }, | |
| }, | |
| { | |
| callId: 'call-2', | |
| name: 'agent_2', | |
| description: 'Test agent 2', | |
| confirmationDetails: undefined, | |
| status: CoreToolCallStatus.Success, | |
| kind: Kind.Agent, | |
| resultDisplay: { | |
| isSubagentProgress: true, | |
| agentName: 'db-manager', | |
| state: SubagentState.COMPLETED, | |
| result: 'Database schema validated', | |
| recentActivity: [ | |
| { | |
| id: 'act-2', | |
| type: 'thought', | |
| status: SubagentState.COMPLETED, | |
| content: 'Database schema validated', | |
| }, | |
| ], | |
| }, | |
| }, | |
| ]; | |
| const renderSubagentGroup = async ( | |
| toolCallsToRender: IndividualToolCallDisplay[], | |
| height?: number, | |
| ) => | |
| renderWithProviders( | |
| <SubagentGroupDisplay | |
| toolCalls={toolCallsToRender} | |
| terminalWidth={80} | |
| availableTerminalHeight={height} | |
| isExpandable={true} | |
| />, | |
| ); | |
| it('renders nothing if there are no agent tool calls', async () => { | |
| const { lastFrame } = await renderSubagentGroup([], 40); | |
| expect(lastFrame({ allowEmpty: true })).toBe(''); | |
| }); | |
| it('renders collapsed view by default with correct agent counts and states', async () => { | |
| const { lastFrame } = await renderSubagentGroup(mockToolCalls, 40); | |
| expect(lastFrame()).toMatchSnapshot(); | |
| }); | |
| it('expands when availableTerminalHeight is undefined', async () => { | |
| const { lastFrame, rerender } = await renderSubagentGroup( | |
| mockToolCalls, | |
| 40, | |
| ); | |
| // Default collapsed view | |
| await waitFor(() => { | |
| expect(lastFrame()).toContain('(ctrl+o to expand)'); | |
| }); | |
| // Expand view | |
| rerender( | |
| <SubagentGroupDisplay | |
| toolCalls={mockToolCalls} | |
| terminalWidth={80} | |
| availableTerminalHeight={undefined} | |
| isExpandable={true} | |
| />, | |
| ); | |
| await waitFor(() => { | |
| expect(lastFrame()).toContain('(ctrl+o to collapse)'); | |
| }); | |
| // Collapse view | |
| rerender( | |
| <SubagentGroupDisplay | |
| toolCalls={mockToolCalls} | |
| terminalWidth={80} | |
| availableTerminalHeight={40} | |
| isExpandable={true} | |
| />, | |
| ); | |
| await waitFor(() => { | |
| expect(lastFrame()).toContain('(ctrl+o to expand)'); | |
| }); | |
| }); | |
| }); | |