Migrate core render util to use xterm.js as part of the rendering loop. (#19044)

This commit is contained in:
Jacob Richman
2026-02-18 16:46:50 -08:00
committed by GitHub
parent 04c52513e7
commit 04f65f3d55
213 changed files with 7065 additions and 3852 deletions
@@ -23,35 +23,39 @@ describe('<GeminiMessage /> - Raw Markdown Display Snapshots', () => {
},
])(
'renders with renderMarkdown=$renderMarkdown $description',
({ renderMarkdown }) => {
const { lastFrame } = renderWithProviders(
async ({ renderMarkdown }) => {
const { lastFrame, waitUntilReady, unmount } = renderWithProviders(
<GeminiMessage {...baseProps} />,
{
uiState: { renderMarkdown, streamingState: StreamingState.Idle },
},
);
await waitUntilReady();
expect(lastFrame()).toMatchSnapshot();
unmount();
},
);
it.each([{ renderMarkdown: true }, { renderMarkdown: false }])(
'renders pending state with renderMarkdown=$renderMarkdown',
({ renderMarkdown }) => {
const { lastFrame } = renderWithProviders(
async ({ renderMarkdown }) => {
const { lastFrame, waitUntilReady, unmount } = renderWithProviders(
<GeminiMessage {...baseProps} isPending={true} />,
{
uiState: { renderMarkdown, streamingState: StreamingState.Idle },
},
);
await waitUntilReady();
expect(lastFrame()).toMatchSnapshot();
unmount();
},
);
it('wraps long lines correctly in raw markdown mode', () => {
it('wraps long lines correctly in raw markdown mode', async () => {
const terminalWidth = 20;
const text =
'This is a long line that should wrap correctly without truncation';
const { lastFrame } = renderWithProviders(
const { lastFrame, waitUntilReady, unmount } = renderWithProviders(
<GeminiMessage
text={text}
isPending={false}
@@ -61,6 +65,8 @@ describe('<GeminiMessage /> - Raw Markdown Display Snapshots', () => {
uiState: { renderMarkdown: false, streamingState: StreamingState.Idle },
},
);
await waitUntilReady();
expect(lastFrame()).toMatchSnapshot();
unmount();
});
});