test(cli): fix App tests and run only App.test.tsx in CI

This commit is contained in:
mkorwel
2026-04-16 21:23:15 +00:00
parent bcc9c72bb3
commit 40e7d69d2a
4 changed files with 170 additions and 100 deletions
+23 -3
View File
@@ -11,6 +11,10 @@ import { createMockSettings } from '../test-utils/settings.js';
import { Text, useIsScreenReaderEnabled, type DOMElement } from 'ink';
import { App } from './App.js';
import { type UIState } from './contexts/UIStateContext.js';
vi.mock('./hooks/useTips.js', () => ({
useTips: () => ({ showTips: true }),
}));
import { StreamingState } from './types.js';
import { makeFakeConfig, CoreToolCallStatus } from '@google/gemini-cli-core';
@@ -95,11 +99,27 @@ describe.sequential('App', () => {
const { lastFrame, unmount } = await renderWithProviders(<App />, {
uiState: mockUIState,
settings: createMockSettings({ ui: { useAlternateBuffer: false } }),
clearScreenOnRender: false,
});
expect(lastFrame()).toContain('Tips for getting started');
expect(lastFrame()).toContain('Notifications');
expect(lastFrame()).toContain('Composer');
let attempts = 0;
let frame = '';
while (attempts < 100) {
frame = lastFrame();
if (
frame.includes('Tips for getting started') &&
frame.includes('Notifications') &&
frame.includes('Composer')
) {
break;
}
await new Promise((resolve) => setTimeout(resolve, 10));
attempts++;
}
expect(frame).toContain('Tips for getting started');
expect(frame).toContain('Notifications');
expect(frame).toContain('Composer');
unmount();
});
@@ -37,24 +37,45 @@ Tips for getting started:
Notifications
Composer
▝▜▄ ▗█▀▀▜▙▝█▛▀▀▌▜██▖▟██▘▜█▘▜██▖▝█▛▝█▛
▝▜▄ █▌ █▙▟ ▐█▝█▛▐█ ▐█ ▐█▝█▖█▌ █▌
▗▟▀ ▜▙ ▝█▛ █▌▝ ▖▐█ ▐█ ▐█ ▐█ ▝██▌ █▌
▝▀ ▀▀▀▀▘▝▀▀▀▀▘▀▀▘ ▀▀▘▀▀▘▀▀▘ ▝▀▀▝▀▀
Gemini CLI v1.2.3
Tips for getting started:
1. Create GEMINI.md files to customize your interactions
2. /help for more information
3. Ask coding questions, edit code or run commands
4. Be specific for the best results
@@ -95,23 +116,6 @@ Footer
Tips for getting started:
1. Create GEMINI.md files to customize your interactions
2. /help for more information
3. Ask coding questions, edit code or run commands
4. Be specific for the best results
ComposerNotifications
Footer
▝▜▄ ▗█▀▀▜▙▝█▛▀▀▌▜██▖▟██▘▜█▘▜██▖▝█▛▝█▛
▝▜▄ █▌ █▙▟ ▐█▝█▛▐█ ▐█ ▐█▝█▖█▌ █▌
▗▟▀ ▜▙ ▝█▛ █▌▝ ▖▐█ ▐█ ▐█ ▐█ ▝██▌ █▌
▝▀ ▀▀▀▀▘▝▀▀▀▀▘▀▀▘ ▀▀▘▀▀▘▀▀▘ ▝▀▀▝▀▀
Gemini CLI v1.2.3
Tips for getting started:
1. Create GEMINI.md files to customize your interactions
2. /help for more information
@@ -132,6 +136,34 @@ exports[`App > Snapshots > renders with dialogs visible 1`] = `
Tips for getting started:
1. Create GEMINI.md files to customize your interactions
2. /help for more information
3. Ask coding questions, edit code or run commands
4. Be specific for the best results
@@ -158,16 +190,9 @@ exports[`App > Snapshots > renders with dialogs visible 1`] = `
Notifications
DialogManager
▝▜▄ ▗█▀▀▜▙▝█▛▀▀▌▜██▖▟██▘▜█▘▜██▖▝█▛▝█▛
▝▜▄ █▌ █▙▟ ▐█▝█▛▐█ ▐█ ▐█▝█▖█▌ █▌
▗▟▀ ▜▙ ▝█▛ █▌▝ ▖▐█ ▐█ ▐█ ▐█ ▝██▌ █▌
▝▀ ▀▀▀▀▘▝▀▀▀▀▘▀▀▘ ▀▀▘▀▀▘▀▀▘ ▝▀▀▝▀▀
Gemini CLI v1.2.3
@@ -220,59 +245,80 @@ Tips for getting started:
3. Ask coding questions, edit code or run commands
4. Be specific for the best results
HistoryItemDisplay
╭───────────────────────────────────────────────────────────────────────────────
│ Action Required
│ ? ls list directory
│ ╭─────────────────────────────────────────────────────────────────────────────
│ │ ls
│ ╰─────────────────────────────────────────────────────────────────────────────
│ Allow execution of [ls]?
│ ● 1. Allow once
│ 2. Allow for this session
│ 3. No, suggest changes (esc)
╰───────────────────────────────────────────────────────────────────────────────
╭──────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Action Required
│ ? ls list directory
│ ╭──────────────────────────────────────────────────────────────────────────────────────────────╮ │
│ │ ls │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │
│ Allow execution of [ls]?
│ ● 1. Allow once
│ 2. Allow for this session
│ 3. No, suggest changes (esc)
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
Notifications
Composer
▝▜▄ ▗█▀▀▜▙▝█▛▀▀▌▜██▖▟██▘▜█▘▜██▖▝█▛▝█▛
▝▜▄ █▌ █▙▟ ▐█▝█▛▐█ ▐█ ▐█▝█▖█▌ █▌
▗▟▀ ▜▙ ▝█▛ █▌▝ ▖▐█ ▐█ ▐█ ▐█ ▝██▌ █▌
▝▀ ▀▀▀▀▘▝▀▀▀▀▘▀▀▘ ▀▀▘▀▀▘▀▀▘ ▝▀▀▝▀▀
Gemini CLI v1.2.3
Tips for getting started:
1. Create GEMINI.md files to customize your interactions
2. /help for more information
3. Ask coding questions, edit code or run commands
4. Be specific for the best results
HistoryItemDisplay
╭───────────────────────────────────────────────────────────────────────────────
│ Action Required
│ ? ls list directory
│ ╭─────────────────────────────────────────────────────────────────────────────
│ │ ls
│ ╰─────────────────────────────────────────────────────────────────────────────
│ Allow execution of [ls]?
│ ● 1. Allow once
│ 2. Allow for this session
│ 3. No, suggest changes (esc)
╰───────────────────────────────────────────────────────────────────────────────