diff --git a/packages/cli/src/ui/utils/TableRenderer.test.tsx b/packages/cli/src/ui/utils/TableRenderer.test.tsx new file mode 100644 index 0000000000..9b65408994 --- /dev/null +++ b/packages/cli/src/ui/utils/TableRenderer.test.tsx @@ -0,0 +1,34 @@ +/** + * @license + * Copyright 2025 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */ +import { describe, it, expect } from 'vitest'; +import { TableRenderer } from './TableRenderer.js'; +import { renderWithProviders } from '../../test-utils/render.js'; + +describe('TableRenderer', () => { + it('renders a 3x3 table correctly', () => { + const headers = ['Header 1', 'Header 2', 'Header 3']; + const rows = [ + ['Row 1, Col 1', 'Row 1, Col 2', 'Row 1, Col 3'], + ['Row 2, Col 1', 'Row 2, Col 2', 'Row 2, Col 3'], + ['Row 3, Col 1', 'Row 3, Col 2', 'Row 3, Col 3'], + ]; + const terminalWidth = 80; + + const { lastFrame } = renderWithProviders( + , + ); + + const output = lastFrame(); + expect(output).toContain('Header 1'); + expect(output).toContain('Row 1, Col 1'); + expect(output).toContain('Row 3, Col 3'); + expect(output).toMatchSnapshot(); + }); +}); diff --git a/packages/cli/src/ui/utils/TableRenderer.tsx b/packages/cli/src/ui/utils/TableRenderer.tsx index 3c1af38170..28ea441604 100644 --- a/packages/cli/src/ui/utils/TableRenderer.tsx +++ b/packages/cli/src/ui/utils/TableRenderer.tsx @@ -124,14 +124,16 @@ export const TableRenderer: React.FC = ({ return ( - │{' '} + {' '} {renderedCells.map((cell, index) => ( {cell} - {index < renderedCells.length - 1 ? ' │ ' : ''} + {index < renderedCells.length - 1 && ( + {' │ '} + )} ))}{' '} - │ + ); }; diff --git a/packages/cli/src/ui/utils/__snapshots__/TableRenderer.test.tsx.snap b/packages/cli/src/ui/utils/__snapshots__/TableRenderer.test.tsx.snap index 2278321dd8..2ee7bc724b 100644 --- a/packages/cli/src/ui/utils/__snapshots__/TableRenderer.test.tsx.snap +++ b/packages/cli/src/ui/utils/__snapshots__/TableRenderer.test.tsx.snap @@ -30,6 +30,18 @@ exports[`TableRenderer > handles rows with missing cells 1`] = ` " `; +exports[`TableRenderer > renders a 3x3 table correctly 1`] = ` +" +┌──────────────┬──────────────┬──────────────┐ +│ Header 1 │ Header 2 │ Header 3 │ +├──────────────┼──────────────┼──────────────┤ +│ Row 1, Col 1 │ Row 1, Col 2 │ Row 1, Col 3 │ +│ Row 2, Col 1 │ Row 2, Col 2 │ Row 2, Col 3 │ +│ Row 3, Col 1 │ Row 3, Col 2 │ Row 3, Col 3 │ +└──────────────┴──────────────┴──────────────┘ +" +`; + exports[`TableRenderer > renders a simple table correctly 1`] = ` " ┌─────────┬──────────┬──────────┐