@google/gemini-cli 0.13.0-nightly.20251030.42c79c64 → 0.13.0-nightly.20251101.caf2ca14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/google-gemini-cli-0.13.0-nightly.20251031.c89bc30d.tgz +0 -0
- package/dist/package.json +8 -10
- package/dist/src/commands/extensions/install.js +2 -2
- package/dist/src/commands/extensions/install.js.map +1 -1
- package/dist/src/commands/extensions/install.test.js +27 -16
- package/dist/src/commands/extensions/install.test.js.map +1 -1
- package/dist/src/commands/extensions/link.js +2 -2
- package/dist/src/commands/extensions/link.js.map +1 -1
- package/dist/src/commands/extensions/update.js +3 -2
- package/dist/src/commands/extensions/update.js.map +1 -1
- package/dist/src/commands/extensions/validate.d.ts +12 -0
- package/dist/src/commands/extensions/validate.js +83 -0
- package/dist/src/commands/extensions/validate.js.map +1 -0
- package/dist/src/commands/extensions/validate.test.d.ts +6 -0
- package/dist/src/commands/extensions/validate.test.js +93 -0
- package/dist/src/commands/extensions/validate.test.js.map +1 -0
- package/dist/src/commands/extensions.js +2 -0
- package/dist/src/commands/extensions.js.map +1 -1
- package/dist/src/config/config.js +2 -1
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/config.test.js +6 -10
- package/dist/src/config/config.test.js.map +1 -1
- package/dist/src/config/extension-manager.js +8 -2
- package/dist/src/config/extension-manager.js.map +1 -1
- package/dist/src/config/extension.test.js +61 -1
- package/dist/src/config/extension.test.js.map +1 -1
- package/dist/src/config/extensions/update.d.ts +2 -2
- package/dist/src/config/extensions/update.js +28 -22
- package/dist/src/config/extensions/update.js.map +1 -1
- package/dist/src/config/settings.js +1 -1
- package/dist/src/config/settings.js.map +1 -1
- package/dist/src/config/settings.test.js +13 -53
- package/dist/src/config/settings.test.js.map +1 -1
- package/dist/src/config/settingsSchema.d.ts +26 -8
- package/dist/src/config/settingsSchema.js +25 -7
- package/dist/src/config/settingsSchema.js.map +1 -1
- package/dist/src/config/settingsSchema.test.js +2 -0
- package/dist/src/config/settingsSchema.test.js.map +1 -1
- package/dist/src/config/trustedFolders.d.ts +1 -1
- package/dist/src/config/trustedFolders.js +4 -2
- package/dist/src/config/trustedFolders.js.map +1 -1
- package/dist/src/gemini.d.ts +1 -1
- package/dist/src/gemini.js +8 -1
- package/dist/src/gemini.js.map +1 -1
- package/dist/src/gemini.test.js +58 -28
- package/dist/src/gemini.test.js.map +1 -1
- package/dist/src/generated/git-commit.d.ts +2 -2
- package/dist/src/generated/git-commit.js +2 -2
- package/dist/src/test-utils/async.d.ts +9 -0
- package/dist/src/test-utils/async.js +29 -0
- package/dist/src/test-utils/async.js.map +1 -0
- package/dist/src/test-utils/render.d.ts +2 -1
- package/dist/src/test-utils/render.js +36 -2
- package/dist/src/test-utils/render.js.map +1 -1
- package/dist/src/test-utils/render.test.js +29 -4
- package/dist/src/test-utils/render.test.js.map +1 -1
- package/dist/src/ui/App.test.js +1 -1
- package/dist/src/ui/App.test.js.map +1 -1
- package/dist/src/ui/AppContainer.js +1 -1
- package/dist/src/ui/AppContainer.js.map +1 -1
- package/dist/src/ui/AppContainer.test.js +205 -99
- package/dist/src/ui/AppContainer.test.js.map +1 -1
- package/dist/src/ui/auth/ApiAuthDialog.test.js +1 -1
- package/dist/src/ui/auth/ApiAuthDialog.test.js.map +1 -1
- package/dist/src/ui/components/AnsiOutput.test.js +1 -1
- package/dist/src/ui/components/AnsiOutput.test.js.map +1 -1
- package/dist/src/ui/components/Composer.test.js +1 -1
- package/dist/src/ui/components/Composer.test.js.map +1 -1
- package/dist/src/ui/components/ConsentPrompt.test.js +18 -8
- package/dist/src/ui/components/ConsentPrompt.test.js.map +1 -1
- package/dist/src/ui/components/ContextSummaryDisplay.test.js +11 -6
- package/dist/src/ui/components/ContextSummaryDisplay.test.js.map +1 -1
- package/dist/src/ui/components/FolderTrustDialog.test.js +4 -3
- package/dist/src/ui/components/FolderTrustDialog.test.js.map +1 -1
- package/dist/src/ui/components/Footer.js +3 -2
- package/dist/src/ui/components/Footer.js.map +1 -1
- package/dist/src/ui/components/Footer.test.js +59 -0
- package/dist/src/ui/components/Footer.test.js.map +1 -1
- package/dist/src/ui/components/Header.test.js +9 -5
- package/dist/src/ui/components/Header.test.js.map +1 -1
- package/dist/src/ui/components/Help.test.js +5 -3
- package/dist/src/ui/components/Help.test.js.map +1 -1
- package/dist/src/ui/components/InputPrompt.test.js +139 -111
- package/dist/src/ui/components/InputPrompt.test.js.map +1 -1
- package/dist/src/ui/components/LoadingIndicator.js +2 -2
- package/dist/src/ui/components/LoadingIndicator.js.map +1 -1
- package/dist/src/ui/components/LoadingIndicator.test.js +28 -15
- package/dist/src/ui/components/LoadingIndicator.test.js.map +1 -1
- package/dist/src/ui/components/LoopDetectionConfirmation.js +1 -1
- package/dist/src/ui/components/LoopDetectionConfirmation.js.map +1 -1
- package/dist/src/ui/components/LoopDetectionConfirmation.test.js +2 -2
- package/dist/src/ui/components/LoopDetectionConfirmation.test.js.map +1 -1
- package/dist/src/ui/components/ModelDialog.js +1 -1
- package/dist/src/ui/components/ModelDialog.js.map +1 -1
- package/dist/src/ui/components/ModelDialog.test.js +21 -11
- package/dist/src/ui/components/ModelDialog.test.js.map +1 -1
- package/dist/src/ui/components/ModelStatsDisplay.test.js +1 -1
- package/dist/src/ui/components/ModelStatsDisplay.test.js.map +1 -1
- package/dist/src/ui/components/PermissionsModifyTrustDialog.test.js +11 -10
- package/dist/src/ui/components/PermissionsModifyTrustDialog.test.js.map +1 -1
- package/dist/src/ui/components/PrepareLabel.test.js +14 -8
- package/dist/src/ui/components/PrepareLabel.test.js.map +1 -1
- package/dist/src/ui/components/ProQuotaDialog.test.js +14 -6
- package/dist/src/ui/components/ProQuotaDialog.test.js.map +1 -1
- package/dist/src/ui/components/QueuedMessageDisplay.test.js +11 -6
- package/dist/src/ui/components/QueuedMessageDisplay.test.js.map +1 -1
- package/dist/src/ui/components/SessionSummaryDisplay.test.js +1 -1
- package/dist/src/ui/components/SessionSummaryDisplay.test.js.map +1 -1
- package/dist/src/ui/components/SettingsDialog.test.js +438 -512
- package/dist/src/ui/components/SettingsDialog.test.js.map +1 -1
- package/dist/src/ui/components/ShellConfirmationDialog.js +1 -1
- package/dist/src/ui/components/ShellConfirmationDialog.js.map +1 -1
- package/dist/src/ui/components/ShellConfirmationDialog.test.js +2 -2
- package/dist/src/ui/components/ShellConfirmationDialog.test.js.map +1 -1
- package/dist/src/ui/components/StatsDisplay.test.js +1 -1
- package/dist/src/ui/components/StatsDisplay.test.js.map +1 -1
- package/dist/src/ui/components/SuggestionsDisplay.js +1 -1
- package/dist/src/ui/components/SuggestionsDisplay.js.map +1 -1
- package/dist/src/ui/components/ThemeDialog.test.js +3 -2
- package/dist/src/ui/components/ThemeDialog.test.js.map +1 -1
- package/dist/src/ui/components/ToolStatsDisplay.test.js +1 -1
- package/dist/src/ui/components/ToolStatsDisplay.test.js.map +1 -1
- package/dist/src/ui/components/messages/CompressionMessage.test.js +25 -17
- package/dist/src/ui/components/messages/CompressionMessage.test.js.map +1 -1
- package/dist/src/ui/components/messages/DiffRenderer.test.js +1 -1
- package/dist/src/ui/components/messages/DiffRenderer.test.js.map +1 -1
- package/dist/src/ui/components/messages/Todo.test.js +1 -1
- package/dist/src/ui/components/messages/Todo.test.js.map +1 -1
- package/dist/src/ui/components/messages/ToolGroupMessage.test.js +29 -15
- package/dist/src/ui/components/messages/ToolGroupMessage.test.js.map +1 -1
- package/dist/src/ui/components/shared/BaseSelectionList.test.js +12 -11
- package/dist/src/ui/components/shared/BaseSelectionList.test.js.map +1 -1
- package/dist/src/ui/components/shared/MaxSizedBox.test.js +43 -22
- package/dist/src/ui/components/shared/MaxSizedBox.test.js.map +1 -1
- package/dist/src/ui/components/shared/TextInput.test.js +1 -1
- package/dist/src/ui/components/shared/TextInput.test.js.map +1 -1
- package/dist/src/ui/components/views/ChatList.test.js +7 -4
- package/dist/src/ui/components/views/ChatList.test.js.map +1 -1
- package/dist/src/ui/components/views/ExtensionsList.js +1 -0
- package/dist/src/ui/components/views/ExtensionsList.js.map +1 -1
- package/dist/src/ui/components/views/ExtensionsList.test.js +13 -5
- package/dist/src/ui/components/views/ExtensionsList.test.js.map +1 -1
- package/dist/src/ui/components/views/McpStatus.test.js +23 -12
- package/dist/src/ui/components/views/McpStatus.test.js.map +1 -1
- package/dist/src/ui/contexts/KeypressContext.js +43 -45
- package/dist/src/ui/contexts/KeypressContext.js.map +1 -1
- package/dist/src/ui/contexts/KeypressContext.test.js +136 -252
- package/dist/src/ui/contexts/KeypressContext.test.js.map +1 -1
- package/dist/src/ui/contexts/SessionContext.test.js +9 -5
- package/dist/src/ui/contexts/SessionContext.test.js.map +1 -1
- package/dist/src/ui/hooks/atCommandProcessor.test.js +1 -0
- package/dist/src/ui/hooks/atCommandProcessor.test.js.map +1 -1
- package/dist/src/ui/hooks/shellCommandProcessor.test.js +47 -34
- package/dist/src/ui/hooks/shellCommandProcessor.test.js.map +1 -1
- package/dist/src/ui/hooks/slashCommandProcessor.test.js +141 -104
- package/dist/src/ui/hooks/slashCommandProcessor.test.js.map +1 -1
- package/dist/src/ui/hooks/useAtCompletion.test.js +23 -21
- package/dist/src/ui/hooks/useAtCompletion.test.js.map +1 -1
- package/dist/src/ui/hooks/useCommandCompletion.test.js +16 -15
- package/dist/src/ui/hooks/useCommandCompletion.test.js.map +1 -1
- package/dist/src/ui/hooks/useConsoleMessages.test.js +1 -1
- package/dist/src/ui/hooks/useConsoleMessages.test.js.map +1 -1
- package/dist/src/ui/hooks/useEditorSettings.test.js +1 -1
- package/dist/src/ui/hooks/useEditorSettings.test.js.map +1 -1
- package/dist/src/ui/hooks/useExtensionUpdates.d.ts +1 -1
- package/dist/src/ui/hooks/useExtensionUpdates.js +9 -3
- package/dist/src/ui/hooks/useExtensionUpdates.js.map +1 -1
- package/dist/src/ui/hooks/useExtensionUpdates.test.js +10 -9
- package/dist/src/ui/hooks/useExtensionUpdates.test.js.map +1 -1
- package/dist/src/ui/hooks/useFocus.test.js +1 -1
- package/dist/src/ui/hooks/useFocus.test.js.map +1 -1
- package/dist/src/ui/hooks/useFolderTrust.test.js +7 -6
- package/dist/src/ui/hooks/useFolderTrust.test.js.map +1 -1
- package/dist/src/ui/hooks/useGeminiStream.test.js +39 -38
- package/dist/src/ui/hooks/useGeminiStream.test.js.map +1 -1
- package/dist/src/ui/hooks/useGitBranchName.test.js +5 -4
- package/dist/src/ui/hooks/useGitBranchName.test.js.map +1 -1
- package/dist/src/ui/hooks/useIdeTrustListener.test.js +25 -11
- package/dist/src/ui/hooks/useIdeTrustListener.test.js.map +1 -1
- package/dist/src/ui/hooks/useKeypress.test.js +1 -1
- package/dist/src/ui/hooks/useKeypress.test.js.map +1 -1
- package/dist/src/ui/hooks/useLoadingIndicator.test.js +1 -1
- package/dist/src/ui/hooks/useLoadingIndicator.test.js.map +1 -1
- package/dist/src/ui/hooks/useMemoryMonitor.test.js +1 -1
- package/dist/src/ui/hooks/useMemoryMonitor.test.js.map +1 -1
- package/dist/src/ui/hooks/useMessageQueue.test.js +5 -4
- package/dist/src/ui/hooks/useMessageQueue.test.js.map +1 -1
- package/dist/src/ui/hooks/useModelCommand.test.js +7 -4
- package/dist/src/ui/hooks/useModelCommand.test.js.map +1 -1
- package/dist/src/ui/hooks/usePhraseCycler.test.js +46 -16
- package/dist/src/ui/hooks/usePhraseCycler.test.js.map +1 -1
- package/dist/src/ui/hooks/usePrivacySettings.test.js +11 -7
- package/dist/src/ui/hooks/usePrivacySettings.test.js.map +1 -1
- package/dist/src/ui/hooks/usePromptCompletion.js +2 -2
- package/dist/src/ui/hooks/usePromptCompletion.js.map +1 -1
- package/dist/src/ui/hooks/useQuotaAndFallback.test.js +28 -14
- package/dist/src/ui/hooks/useQuotaAndFallback.test.js.map +1 -1
- package/dist/src/ui/hooks/useSelectionList.test.js +116 -109
- package/dist/src/ui/hooks/useSelectionList.test.js.map +1 -1
- package/dist/src/ui/hooks/useShellHistory.test.js +25 -17
- package/dist/src/ui/hooks/useShellHistory.test.js.map +1 -1
- package/dist/src/ui/hooks/useSlashCompletion.js +16 -5
- package/dist/src/ui/hooks/useSlashCompletion.js.map +1 -1
- package/dist/src/ui/hooks/useSlashCompletion.test.js +244 -111
- package/dist/src/ui/hooks/useSlashCompletion.test.js.map +1 -1
- package/dist/src/ui/hooks/useTimer.test.js +1 -1
- package/dist/src/ui/hooks/useTimer.test.js.map +1 -1
- package/dist/src/ui/hooks/useToolScheduler.test.js +6 -2
- package/dist/src/ui/hooks/useToolScheduler.test.js.map +1 -1
- package/dist/src/ui/hooks/vim.test.js +6 -21
- package/dist/src/ui/hooks/vim.test.js.map +1 -1
- package/dist/src/ui/state/extensions.d.ts +1 -0
- package/dist/src/ui/state/extensions.js +1 -0
- package/dist/src/ui/state/extensions.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +9 -11
|
@@ -4,7 +4,7 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
4
4
|
* Copyright 2025 Google LLC
|
|
5
5
|
* SPDX-License-Identifier: Apache-2.0
|
|
6
6
|
*/
|
|
7
|
-
import { render } from '
|
|
7
|
+
import { render } from '../../../test-utils/render.js';
|
|
8
8
|
import { OverflowProvider } from '../../contexts/OverflowContext.js';
|
|
9
9
|
import { MaxSizedBox, setMaxSizedBoxDebugging } from './MaxSizedBox.js';
|
|
10
10
|
import { Box, Text } from 'ink';
|
|
@@ -16,30 +16,34 @@ describe('<MaxSizedBox />', () => {
|
|
|
16
16
|
// cluttering the console if there are ignorable issues.
|
|
17
17
|
setMaxSizedBoxDebugging(true);
|
|
18
18
|
it('renders children without truncation when they fit', () => {
|
|
19
|
-
const { lastFrame } = render(_jsx(OverflowProvider, { children: _jsx(MaxSizedBox, { maxWidth: 80, maxHeight: 10, children: _jsx(Box, { children: _jsx(Text, { children: "Hello, World!" }) }) }) }));
|
|
19
|
+
const { lastFrame, unmount } = render(_jsx(OverflowProvider, { children: _jsx(MaxSizedBox, { maxWidth: 80, maxHeight: 10, children: _jsx(Box, { children: _jsx(Text, { children: "Hello, World!" }) }) }) }));
|
|
20
20
|
expect(lastFrame()).equals('Hello, World!');
|
|
21
|
+
unmount();
|
|
21
22
|
});
|
|
22
23
|
it('hides lines when content exceeds maxHeight', () => {
|
|
23
|
-
const { lastFrame } = render(_jsx(OverflowProvider, { children: _jsxs(MaxSizedBox, { maxWidth: 80, maxHeight: 2, children: [_jsx(Box, { children: _jsx(Text, { children: "Line 1" }) }), _jsx(Box, { children: _jsx(Text, { children: "Line 2" }) }), _jsx(Box, { children: _jsx(Text, { children: "Line 3" }) })] }) }));
|
|
24
|
+
const { lastFrame, unmount } = render(_jsx(OverflowProvider, { children: _jsxs(MaxSizedBox, { maxWidth: 80, maxHeight: 2, children: [_jsx(Box, { children: _jsx(Text, { children: "Line 1" }) }), _jsx(Box, { children: _jsx(Text, { children: "Line 2" }) }), _jsx(Box, { children: _jsx(Text, { children: "Line 3" }) })] }) }));
|
|
24
25
|
expect(lastFrame()).equals(`... first 2 lines hidden ...
|
|
25
26
|
Line 3`);
|
|
27
|
+
unmount();
|
|
26
28
|
});
|
|
27
29
|
it('hides lines at the end when content exceeds maxHeight and overflowDirection is bottom', () => {
|
|
28
|
-
const { lastFrame } = render(_jsx(OverflowProvider, { children: _jsxs(MaxSizedBox, { maxWidth: 80, maxHeight: 2, overflowDirection: "bottom", children: [_jsx(Box, { children: _jsx(Text, { children: "Line 1" }) }), _jsx(Box, { children: _jsx(Text, { children: "Line 2" }) }), _jsx(Box, { children: _jsx(Text, { children: "Line 3" }) })] }) }));
|
|
30
|
+
const { lastFrame, unmount } = render(_jsx(OverflowProvider, { children: _jsxs(MaxSizedBox, { maxWidth: 80, maxHeight: 2, overflowDirection: "bottom", children: [_jsx(Box, { children: _jsx(Text, { children: "Line 1" }) }), _jsx(Box, { children: _jsx(Text, { children: "Line 2" }) }), _jsx(Box, { children: _jsx(Text, { children: "Line 3" }) })] }) }));
|
|
29
31
|
expect(lastFrame()).equals(`Line 1
|
|
30
32
|
... last 2 lines hidden ...`);
|
|
33
|
+
unmount();
|
|
31
34
|
});
|
|
32
35
|
it('wraps text that exceeds maxWidth', () => {
|
|
33
|
-
const { lastFrame } = render(_jsx(OverflowProvider, { children: _jsx(MaxSizedBox, { maxWidth: 10, maxHeight: 5, children: _jsx(Box, { children: _jsx(Text, { wrap: "wrap", children: "This is a long line of text" }) }) }) }));
|
|
36
|
+
const { lastFrame, unmount } = render(_jsx(OverflowProvider, { children: _jsx(MaxSizedBox, { maxWidth: 10, maxHeight: 5, children: _jsx(Box, { children: _jsx(Text, { wrap: "wrap", children: "This is a long line of text" }) }) }) }));
|
|
34
37
|
expect(lastFrame()).equals(`This is a
|
|
35
38
|
long line
|
|
36
39
|
of text`);
|
|
40
|
+
unmount();
|
|
37
41
|
});
|
|
38
42
|
it('handles mixed wrapping and non-wrapping segments', () => {
|
|
39
43
|
const multilineText = `This part will wrap around.
|
|
40
44
|
And has a line break.
|
|
41
45
|
Leading spaces preserved.`;
|
|
42
|
-
const { lastFrame } = render(_jsx(OverflowProvider, { children: _jsxs(MaxSizedBox, { maxWidth: 20, maxHeight: 20, children: [_jsx(Box, { children: _jsx(Text, { children: "Example" }) }), _jsxs(Box, { children: [_jsx(Text, { children: "No Wrap: " }), _jsx(Text, { wrap: "wrap", children: multilineText })] }), _jsxs(Box, { children: [_jsx(Text, { children: "Longer No Wrap: " }), _jsx(Text, { wrap: "wrap", children: "This part will wrap around." })] })] }) }));
|
|
46
|
+
const { lastFrame, unmount } = render(_jsx(OverflowProvider, { children: _jsxs(MaxSizedBox, { maxWidth: 20, maxHeight: 20, children: [_jsx(Box, { children: _jsx(Text, { children: "Example" }) }), _jsxs(Box, { children: [_jsx(Text, { children: "No Wrap: " }), _jsx(Text, { wrap: "wrap", children: multilineText })] }), _jsxs(Box, { children: [_jsx(Text, { children: "Longer No Wrap: " }), _jsx(Text, { wrap: "wrap", children: "This part will wrap around." })] })] }) }));
|
|
43
47
|
expect(lastFrame()).equals(`Example
|
|
44
48
|
No Wrap: This part
|
|
45
49
|
will wrap
|
|
@@ -55,100 +59,117 @@ Longer No Wrap: This
|
|
|
55
59
|
wrap
|
|
56
60
|
arou
|
|
57
61
|
nd.`);
|
|
62
|
+
unmount();
|
|
58
63
|
});
|
|
59
64
|
it('handles words longer than maxWidth by splitting them', () => {
|
|
60
|
-
const { lastFrame } = render(_jsx(OverflowProvider, { children: _jsx(MaxSizedBox, { maxWidth: 5, maxHeight: 5, children: _jsx(Box, { children: _jsx(Text, { wrap: "wrap", children: "Supercalifragilisticexpialidocious" }) }) }) }));
|
|
65
|
+
const { lastFrame, unmount } = render(_jsx(OverflowProvider, { children: _jsx(MaxSizedBox, { maxWidth: 5, maxHeight: 5, children: _jsx(Box, { children: _jsx(Text, { wrap: "wrap", children: "Supercalifragilisticexpialidocious" }) }) }) }));
|
|
61
66
|
expect(lastFrame()).equals(`... …
|
|
62
67
|
istic
|
|
63
68
|
expia
|
|
64
69
|
lidoc
|
|
65
70
|
ious`);
|
|
71
|
+
unmount();
|
|
66
72
|
});
|
|
67
73
|
it('does not truncate when maxHeight is undefined', () => {
|
|
68
|
-
const { lastFrame } = render(_jsx(OverflowProvider, { children: _jsxs(MaxSizedBox, { maxWidth: 80, maxHeight: undefined, children: [_jsx(Box, { children: _jsx(Text, { children: "Line 1" }) }), _jsx(Box, { children: _jsx(Text, { children: "Line 2" }) })] }) }));
|
|
74
|
+
const { lastFrame, unmount } = render(_jsx(OverflowProvider, { children: _jsxs(MaxSizedBox, { maxWidth: 80, maxHeight: undefined, children: [_jsx(Box, { children: _jsx(Text, { children: "Line 1" }) }), _jsx(Box, { children: _jsx(Text, { children: "Line 2" }) })] }) }));
|
|
69
75
|
expect(lastFrame()).equals(`Line 1
|
|
70
76
|
Line 2`);
|
|
77
|
+
unmount();
|
|
71
78
|
});
|
|
72
79
|
it('shows plural "lines" when more than one line is hidden', () => {
|
|
73
|
-
const { lastFrame } = render(_jsx(OverflowProvider, { children: _jsxs(MaxSizedBox, { maxWidth: 80, maxHeight: 2, children: [_jsx(Box, { children: _jsx(Text, { children: "Line 1" }) }), _jsx(Box, { children: _jsx(Text, { children: "Line 2" }) }), _jsx(Box, { children: _jsx(Text, { children: "Line 3" }) })] }) }));
|
|
80
|
+
const { lastFrame, unmount } = render(_jsx(OverflowProvider, { children: _jsxs(MaxSizedBox, { maxWidth: 80, maxHeight: 2, children: [_jsx(Box, { children: _jsx(Text, { children: "Line 1" }) }), _jsx(Box, { children: _jsx(Text, { children: "Line 2" }) }), _jsx(Box, { children: _jsx(Text, { children: "Line 3" }) })] }) }));
|
|
74
81
|
expect(lastFrame()).equals(`... first 2 lines hidden ...
|
|
75
82
|
Line 3`);
|
|
83
|
+
unmount();
|
|
76
84
|
});
|
|
77
85
|
it('shows plural "lines" when more than one line is hidden and overflowDirection is bottom', () => {
|
|
78
|
-
const { lastFrame } = render(_jsx(OverflowProvider, { children: _jsxs(MaxSizedBox, { maxWidth: 80, maxHeight: 2, overflowDirection: "bottom", children: [_jsx(Box, { children: _jsx(Text, { children: "Line 1" }) }), _jsx(Box, { children: _jsx(Text, { children: "Line 2" }) }), _jsx(Box, { children: _jsx(Text, { children: "Line 3" }) })] }) }));
|
|
86
|
+
const { lastFrame, unmount } = render(_jsx(OverflowProvider, { children: _jsxs(MaxSizedBox, { maxWidth: 80, maxHeight: 2, overflowDirection: "bottom", children: [_jsx(Box, { children: _jsx(Text, { children: "Line 1" }) }), _jsx(Box, { children: _jsx(Text, { children: "Line 2" }) }), _jsx(Box, { children: _jsx(Text, { children: "Line 3" }) })] }) }));
|
|
79
87
|
expect(lastFrame()).equals(`Line 1
|
|
80
88
|
... last 2 lines hidden ...`);
|
|
89
|
+
unmount();
|
|
81
90
|
});
|
|
82
91
|
it('renders an empty box for empty children', () => {
|
|
83
|
-
const { lastFrame } = render(_jsx(OverflowProvider, { children: _jsx(MaxSizedBox, { maxWidth: 80, maxHeight: 10 }) }));
|
|
92
|
+
const { lastFrame, unmount } = render(_jsx(OverflowProvider, { children: _jsx(MaxSizedBox, { maxWidth: 80, maxHeight: 10 }) }));
|
|
84
93
|
// Expect an empty string or a box with nothing in it.
|
|
85
94
|
// Ink renders an empty box as an empty string.
|
|
86
95
|
expect(lastFrame()).equals('');
|
|
96
|
+
unmount();
|
|
87
97
|
});
|
|
88
98
|
it('wraps text with multi-byte unicode characters correctly', () => {
|
|
89
|
-
const { lastFrame } = render(_jsx(OverflowProvider, { children: _jsx(MaxSizedBox, { maxWidth: 5, maxHeight: 5, children: _jsx(Box, { children: _jsx(Text, { wrap: "wrap", children: "\u4F60\u597D\u4E16\u754C" }) }) }) }));
|
|
99
|
+
const { lastFrame, unmount } = render(_jsx(OverflowProvider, { children: _jsx(MaxSizedBox, { maxWidth: 5, maxHeight: 5, children: _jsx(Box, { children: _jsx(Text, { wrap: "wrap", children: "\u4F60\u597D\u4E16\u754C" }) }) }) }));
|
|
90
100
|
// "你好" has a visual width of 4. "世界" has a visual width of 4.
|
|
91
101
|
// With maxWidth=5, it should wrap after the second character.
|
|
92
102
|
expect(lastFrame()).equals(`你好
|
|
93
103
|
世界`);
|
|
104
|
+
unmount();
|
|
94
105
|
});
|
|
95
106
|
it('wraps text with multi-byte emoji characters correctly', () => {
|
|
96
|
-
const { lastFrame } = render(_jsx(OverflowProvider, { children: _jsx(MaxSizedBox, { maxWidth: 5, maxHeight: 5, children: _jsx(Box, { children: _jsx(Text, { wrap: "wrap", children: "\uD83D\uDC36\uD83D\uDC36\uD83D\uDC36\uD83D\uDC36\uD83D\uDC36" }) }) }) }));
|
|
107
|
+
const { lastFrame, unmount } = render(_jsx(OverflowProvider, { children: _jsx(MaxSizedBox, { maxWidth: 5, maxHeight: 5, children: _jsx(Box, { children: _jsx(Text, { wrap: "wrap", children: "\uD83D\uDC36\uD83D\uDC36\uD83D\uDC36\uD83D\uDC36\uD83D\uDC36" }) }) }) }));
|
|
97
108
|
// Each "🐶" has a visual width of 2.
|
|
98
109
|
// With maxWidth=5, it should wrap every 2 emojis.
|
|
99
110
|
expect(lastFrame()).equals(`🐶🐶
|
|
100
111
|
🐶🐶
|
|
101
112
|
🐶`);
|
|
113
|
+
unmount();
|
|
102
114
|
});
|
|
103
115
|
it('falls back to an ellipsis when width is extremely small', () => {
|
|
104
|
-
const { lastFrame } = render(_jsx(OverflowProvider, { children: _jsx(MaxSizedBox, { maxWidth: 2, maxHeight: 2, children: _jsxs(Box, { children: [_jsx(Text, { children: "No" }), _jsx(Text, { wrap: "wrap", children: "wrap" })] }) }) }));
|
|
116
|
+
const { lastFrame, unmount } = render(_jsx(OverflowProvider, { children: _jsx(MaxSizedBox, { maxWidth: 2, maxHeight: 2, children: _jsxs(Box, { children: [_jsx(Text, { children: "No" }), _jsx(Text, { wrap: "wrap", children: "wrap" })] }) }) }));
|
|
105
117
|
expect(lastFrame()).equals('N…');
|
|
118
|
+
unmount();
|
|
106
119
|
});
|
|
107
120
|
it('truncates long non-wrapping text with ellipsis', () => {
|
|
108
|
-
const { lastFrame } = render(_jsx(OverflowProvider, { children: _jsx(MaxSizedBox, { maxWidth: 3, maxHeight: 2, children: _jsxs(Box, { children: [_jsx(Text, { children: "ABCDE" }), _jsx(Text, { wrap: "wrap", children: "wrap" })] }) }) }));
|
|
121
|
+
const { lastFrame, unmount } = render(_jsx(OverflowProvider, { children: _jsx(MaxSizedBox, { maxWidth: 3, maxHeight: 2, children: _jsxs(Box, { children: [_jsx(Text, { children: "ABCDE" }), _jsx(Text, { wrap: "wrap", children: "wrap" })] }) }) }));
|
|
109
122
|
expect(lastFrame()).equals('AB…');
|
|
123
|
+
unmount();
|
|
110
124
|
});
|
|
111
125
|
it('truncates non-wrapping text containing line breaks', () => {
|
|
112
|
-
const { lastFrame } = render(_jsx(OverflowProvider, { children: _jsx(MaxSizedBox, { maxWidth: 3, maxHeight: 2, children: _jsxs(Box, { children: [_jsx(Text, { children: 'A\nBCDE' }), _jsx(Text, { wrap: "wrap", children: "wrap" })] }) }) }));
|
|
126
|
+
const { lastFrame, unmount } = render(_jsx(OverflowProvider, { children: _jsx(MaxSizedBox, { maxWidth: 3, maxHeight: 2, children: _jsxs(Box, { children: [_jsx(Text, { children: 'A\nBCDE' }), _jsx(Text, { wrap: "wrap", children: "wrap" })] }) }) }));
|
|
113
127
|
expect(lastFrame()).equals(`A\n…`);
|
|
128
|
+
unmount();
|
|
114
129
|
});
|
|
115
130
|
it('truncates emoji characters correctly with ellipsis', () => {
|
|
116
|
-
const { lastFrame } = render(_jsx(OverflowProvider, { children: _jsx(MaxSizedBox, { maxWidth: 3, maxHeight: 2, children: _jsxs(Box, { children: [_jsx(Text, { children: "\uD83D\uDC36\uD83D\uDC36\uD83D\uDC36" }), _jsx(Text, { wrap: "wrap", children: "wrap" })] }) }) }));
|
|
131
|
+
const { lastFrame, unmount } = render(_jsx(OverflowProvider, { children: _jsx(MaxSizedBox, { maxWidth: 3, maxHeight: 2, children: _jsxs(Box, { children: [_jsx(Text, { children: "\uD83D\uDC36\uD83D\uDC36\uD83D\uDC36" }), _jsx(Text, { wrap: "wrap", children: "wrap" })] }) }) }));
|
|
117
132
|
expect(lastFrame()).equals(`🐶…`);
|
|
133
|
+
unmount();
|
|
118
134
|
});
|
|
119
135
|
it('shows ellipsis for multiple rows with long non-wrapping text', () => {
|
|
120
|
-
const { lastFrame } = render(_jsx(OverflowProvider, { children: _jsxs(MaxSizedBox, { maxWidth: 3, maxHeight: 3, children: [_jsxs(Box, { children: [_jsx(Text, { children: "AAA" }), _jsx(Text, { wrap: "wrap", children: "first" })] }), _jsxs(Box, { children: [_jsx(Text, { children: "BBB" }), _jsx(Text, { wrap: "wrap", children: "second" })] }), _jsxs(Box, { children: [_jsx(Text, { children: "CCC" }), _jsx(Text, { wrap: "wrap", children: "third" })] })] }) }));
|
|
136
|
+
const { lastFrame, unmount } = render(_jsx(OverflowProvider, { children: _jsxs(MaxSizedBox, { maxWidth: 3, maxHeight: 3, children: [_jsxs(Box, { children: [_jsx(Text, { children: "AAA" }), _jsx(Text, { wrap: "wrap", children: "first" })] }), _jsxs(Box, { children: [_jsx(Text, { children: "BBB" }), _jsx(Text, { wrap: "wrap", children: "second" })] }), _jsxs(Box, { children: [_jsx(Text, { children: "CCC" }), _jsx(Text, { wrap: "wrap", children: "third" })] })] }) }));
|
|
121
137
|
expect(lastFrame()).equals(`AA…\nBB…\nCC…`);
|
|
138
|
+
unmount();
|
|
122
139
|
});
|
|
123
140
|
it('accounts for additionalHiddenLinesCount', () => {
|
|
124
|
-
const { lastFrame } = render(_jsx(OverflowProvider, { children: _jsxs(MaxSizedBox, { maxWidth: 80, maxHeight: 2, additionalHiddenLinesCount: 5, children: [_jsx(Box, { children: _jsx(Text, { children: "Line 1" }) }), _jsx(Box, { children: _jsx(Text, { children: "Line 2" }) }), _jsx(Box, { children: _jsx(Text, { children: "Line 3" }) })] }) }));
|
|
141
|
+
const { lastFrame, unmount } = render(_jsx(OverflowProvider, { children: _jsxs(MaxSizedBox, { maxWidth: 80, maxHeight: 2, additionalHiddenLinesCount: 5, children: [_jsx(Box, { children: _jsx(Text, { children: "Line 1" }) }), _jsx(Box, { children: _jsx(Text, { children: "Line 2" }) }), _jsx(Box, { children: _jsx(Text, { children: "Line 3" }) })] }) }));
|
|
125
142
|
// 1 line is hidden by overflow, 5 are additionally hidden.
|
|
126
143
|
expect(lastFrame()).equals(`... first 7 lines hidden ...
|
|
127
144
|
Line 3`);
|
|
145
|
+
unmount();
|
|
128
146
|
});
|
|
129
147
|
it('handles React.Fragment as a child', () => {
|
|
130
|
-
const { lastFrame } = render(_jsx(OverflowProvider, { children: _jsxs(MaxSizedBox, { maxWidth: 80, maxHeight: 10, children: [_jsxs(_Fragment, { children: [_jsx(Box, { children: _jsx(Text, { children: "Line 1 from Fragment" }) }), _jsx(Box, { children: _jsx(Text, { children: "Line 2 from Fragment" }) })] }), _jsx(Box, { children: _jsx(Text, { children: "Line 3 direct child" }) })] }) }));
|
|
148
|
+
const { lastFrame, unmount } = render(_jsx(OverflowProvider, { children: _jsxs(MaxSizedBox, { maxWidth: 80, maxHeight: 10, children: [_jsxs(_Fragment, { children: [_jsx(Box, { children: _jsx(Text, { children: "Line 1 from Fragment" }) }), _jsx(Box, { children: _jsx(Text, { children: "Line 2 from Fragment" }) })] }), _jsx(Box, { children: _jsx(Text, { children: "Line 3 direct child" }) })] }) }));
|
|
131
149
|
expect(lastFrame()).equals(`Line 1 from Fragment
|
|
132
150
|
Line 2 from Fragment
|
|
133
151
|
Line 3 direct child`);
|
|
152
|
+
unmount();
|
|
134
153
|
});
|
|
135
154
|
it('clips a long single text child from the top', () => {
|
|
136
155
|
const THIRTY_LINES = Array.from({ length: 30 }, (_, i) => `Line ${i + 1}`).join('\n');
|
|
137
|
-
const { lastFrame } = render(_jsx(OverflowProvider, { children: _jsx(MaxSizedBox, { maxWidth: 80, maxHeight: 10, children: _jsx(Box, { children: _jsx(Text, { children: THIRTY_LINES }) }) }) }));
|
|
156
|
+
const { lastFrame, unmount } = render(_jsx(OverflowProvider, { children: _jsx(MaxSizedBox, { maxWidth: 80, maxHeight: 10, children: _jsx(Box, { children: _jsx(Text, { children: THIRTY_LINES }) }) }) }));
|
|
138
157
|
const expected = [
|
|
139
158
|
'... first 21 lines hidden ...',
|
|
140
159
|
...Array.from({ length: 9 }, (_, i) => `Line ${22 + i}`),
|
|
141
160
|
].join('\n');
|
|
142
161
|
expect(lastFrame()).equals(expected);
|
|
162
|
+
unmount();
|
|
143
163
|
});
|
|
144
164
|
it('clips a long single text child from the bottom', () => {
|
|
145
165
|
const THIRTY_LINES = Array.from({ length: 30 }, (_, i) => `Line ${i + 1}`).join('\n');
|
|
146
|
-
const { lastFrame } = render(_jsx(OverflowProvider, { children: _jsx(MaxSizedBox, { maxWidth: 80, maxHeight: 10, overflowDirection: "bottom", children: _jsx(Box, { children: _jsx(Text, { children: THIRTY_LINES }) }) }) }));
|
|
166
|
+
const { lastFrame, unmount } = render(_jsx(OverflowProvider, { children: _jsx(MaxSizedBox, { maxWidth: 80, maxHeight: 10, overflowDirection: "bottom", children: _jsx(Box, { children: _jsx(Text, { children: THIRTY_LINES }) }) }) }));
|
|
147
167
|
const expected = [
|
|
148
168
|
...Array.from({ length: 9 }, (_, i) => `Line ${i + 1}`),
|
|
149
169
|
'... last 21 lines hidden ...',
|
|
150
170
|
].join('\n');
|
|
151
171
|
expect(lastFrame()).equals(expected);
|
|
172
|
+
unmount();
|
|
152
173
|
});
|
|
153
174
|
});
|
|
154
175
|
//# sourceMappingURL=MaxSizedBox.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MaxSizedBox.test.js","sourceRoot":"","sources":["../../../../../src/ui/components/shared/MaxSizedBox.test.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"MaxSizedBox.test.js","sourceRoot":"","sources":["../../../../../src/ui/components/shared/MaxSizedBox.test.tsx"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
4
4
|
* Copyright 2025 Google LLC
|
|
5
5
|
* SPDX-License-Identifier: Apache-2.0
|
|
6
6
|
*/
|
|
7
|
-
import { render } from '
|
|
7
|
+
import { render } from '../../../test-utils/render.js';
|
|
8
8
|
import { describe, it, expect, vi, beforeEach } from 'vitest';
|
|
9
9
|
import { TextInput } from './TextInput.js';
|
|
10
10
|
import { useKeypress } from '../../hooks/useKeypress.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextInput.test.js","sourceRoot":"","sources":["../../../../../src/ui/components/shared/TextInput.test.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"TextInput.test.js","sourceRoot":"","sources":["../../../../../src/ui/components/shared/TextInput.test.tsx"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
4
4
|
* Copyright 2025 Google LLC
|
|
5
5
|
* SPDX-License-Identifier: Apache-2.0
|
|
6
6
|
*/
|
|
7
|
-
import { render } from '
|
|
7
|
+
import { render } from '../../../test-utils/render.js';
|
|
8
8
|
import { describe, it, expect } from 'vitest';
|
|
9
9
|
import { ChatList } from './ChatList.js';
|
|
10
10
|
const mockChats = [
|
|
@@ -19,13 +19,15 @@ const mockChats = [
|
|
|
19
19
|
];
|
|
20
20
|
describe('<ChatList />', () => {
|
|
21
21
|
it('renders correctly with a list of chats', () => {
|
|
22
|
-
const { lastFrame } = render(_jsx(ChatList, { chats: mockChats }));
|
|
22
|
+
const { lastFrame, unmount } = render(_jsx(ChatList, { chats: mockChats }));
|
|
23
23
|
expect(lastFrame()).toMatchSnapshot();
|
|
24
|
+
unmount();
|
|
24
25
|
});
|
|
25
26
|
it('renders correctly with no chats', () => {
|
|
26
|
-
const { lastFrame } = render(_jsx(ChatList, { chats: [] }));
|
|
27
|
+
const { lastFrame, unmount } = render(_jsx(ChatList, { chats: [] }));
|
|
27
28
|
expect(lastFrame()).toContain('No saved conversation checkpoints found.');
|
|
28
29
|
expect(lastFrame()).toMatchSnapshot();
|
|
30
|
+
unmount();
|
|
29
31
|
});
|
|
30
32
|
it('handles invalid date formats gracefully', () => {
|
|
31
33
|
const mockChatsWithInvalidDate = [
|
|
@@ -34,9 +36,10 @@ describe('<ChatList />', () => {
|
|
|
34
36
|
mtime: 'an-invalid-date-string',
|
|
35
37
|
},
|
|
36
38
|
];
|
|
37
|
-
const { lastFrame } = render(_jsx(ChatList, { chats: mockChatsWithInvalidDate }));
|
|
39
|
+
const { lastFrame, unmount } = render(_jsx(ChatList, { chats: mockChatsWithInvalidDate }));
|
|
38
40
|
expect(lastFrame()).toContain('(Invalid Date)');
|
|
39
41
|
expect(lastFrame()).toMatchSnapshot();
|
|
42
|
+
unmount();
|
|
40
43
|
});
|
|
41
44
|
});
|
|
42
45
|
//# sourceMappingURL=ChatList.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatList.test.js","sourceRoot":"","sources":["../../../../../src/ui/components/views/ChatList.test.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"ChatList.test.js","sourceRoot":"","sources":["../../../../../src/ui/components/views/ChatList.test.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC,MAAM,SAAS,GAAiB;IAC9B;QACE,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,0BAA0B;KAClC;IACD;QACE,IAAI,EAAE,cAAc;QACpB,KAAK,EAAE,0BAA0B;KAClC;CACF,CAAC;AAEF,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,KAAC,QAAQ,IAAC,KAAK,EAAE,SAAS,GAAI,CAAC,CAAC;QACtE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,eAAe,EAAE,CAAC;QACtC,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,KAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,GAAI,CAAC,CAAC;QAC/D,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,0CAA0C,CAAC,CAAC;QAC1E,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,eAAe,EAAE,CAAC;QACtC,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,wBAAwB,GAAiB;YAC7C;gBACE,IAAI,EAAE,eAAe;gBACrB,KAAK,EAAE,wBAAwB;aAChC;SACF,CAAC;QACF,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,MAAM,CACnC,KAAC,QAAQ,IAAC,KAAK,EAAE,wBAAwB,GAAI,CAC9C,CAAC;QACF,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAChD,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,eAAe,EAAE,CAAC;QACtC,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExtensionsList.js","sourceRoot":"","sources":["../../../../../src/ui/components/views/ExtensionsList.tsx"],"names":[],"mappings":";AAOA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,WAAW,EAA2B,MAAM,yBAAyB,CAAC;AAM/E,MAAM,CAAC,MAAM,cAAc,GAA6B,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE;IACzE,MAAM,EAAE,qBAAqB,EAAE,GAAG,UAAU,EAAE,CAAC;IAE/C,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,KAAC,IAAI,2CAAgC,CAAC;IAC/C,CAAC;IAED,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,aACvD,KAAC,IAAI,wCAA6B,EAClC,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,WAAW,EAAE,CAAC,YACvC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;oBACtB,MAAM,KAAK,GAAG,qBAAqB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBAClD,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;oBAC9B,MAAM,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC;oBACtD,MAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;oBAEhD,IAAI,UAAU,GAAG,MAAM,CAAC;oBACxB,MAAM,SAAS,GAAG,KAAK,IAAI,eAAe,CAAC;oBAE3C,QAAQ,KAAK,EAAE,CAAC;wBACd,KAAK,oBAAoB,CAAC,oBAAoB,CAAC;wBAC/C,KAAK,oBAAoB,CAAC,QAAQ;4BAChC,UAAU,GAAG,MAAM,CAAC;4BACpB,MAAM;wBACR,KAAK,oBAAoB,CAAC,gBAAgB,CAAC;wBAC3C,KAAK,oBAAoB,CAAC,qBAAqB;4BAC7C,UAAU,GAAG,QAAQ,CAAC;4BACtB,MAAM;wBACR,KAAK,oBAAoB,CAAC,KAAK;4BAC7B,UAAU,GAAG,KAAK,CAAC;4BACnB,MAAM;wBACR,KAAK,oBAAoB,CAAC,UAAU,CAAC;wBACrC,KAAK,oBAAoB,CAAC,aAAa;
|
|
1
|
+
{"version":3,"file":"ExtensionsList.js","sourceRoot":"","sources":["../../../../../src/ui/components/views/ExtensionsList.tsx"],"names":[],"mappings":";AAOA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,WAAW,EAA2B,MAAM,yBAAyB,CAAC;AAM/E,MAAM,CAAC,MAAM,cAAc,GAA6B,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE;IACzE,MAAM,EAAE,qBAAqB,EAAE,GAAG,UAAU,EAAE,CAAC;IAE/C,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,KAAC,IAAI,2CAAgC,CAAC;IAC/C,CAAC;IAED,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,aACvD,KAAC,IAAI,wCAA6B,EAClC,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,WAAW,EAAE,CAAC,YACvC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;oBACtB,MAAM,KAAK,GAAG,qBAAqB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBAClD,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;oBAC9B,MAAM,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC;oBACtD,MAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;oBAEhD,IAAI,UAAU,GAAG,MAAM,CAAC;oBACxB,MAAM,SAAS,GAAG,KAAK,IAAI,eAAe,CAAC;oBAE3C,QAAQ,KAAK,EAAE,CAAC;wBACd,KAAK,oBAAoB,CAAC,oBAAoB,CAAC;wBAC/C,KAAK,oBAAoB,CAAC,QAAQ;4BAChC,UAAU,GAAG,MAAM,CAAC;4BACpB,MAAM;wBACR,KAAK,oBAAoB,CAAC,gBAAgB,CAAC;wBAC3C,KAAK,oBAAoB,CAAC,qBAAqB;4BAC7C,UAAU,GAAG,QAAQ,CAAC;4BACtB,MAAM;wBACR,KAAK,oBAAoB,CAAC,KAAK;4BAC7B,UAAU,GAAG,KAAK,CAAC;4BACnB,MAAM;wBACR,KAAK,oBAAoB,CAAC,UAAU,CAAC;wBACrC,KAAK,oBAAoB,CAAC,aAAa,CAAC;wBACxC,KAAK,oBAAoB,CAAC,OAAO;4BAC/B,UAAU,GAAG,OAAO,CAAC;4BACrB,MAAM;wBACR,KAAK,SAAS;4BACZ,MAAM;wBACR;4BACE,WAAW,CAAC,IAAI,CAAC,kCAAkC,KAAK,EAAE,CAAC,CAAC;4BAC5D,MAAM;oBACV,CAAC;oBAED,OAAO,CACL,KAAC,GAAG,cACF,MAAC,IAAI,eACH,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,YAAE,GAAG,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,OAAO,GAAG,GAAQ,EAC3D,KAAC,IAAI,IAAC,KAAK,EAAE,WAAW,YAAG,MAAM,YAAY,EAAE,GAAQ,EACtD,KAAC,IAAI,IAAC,KAAK,EAAE,UAAU,YAAG,KAAK,SAAS,GAAG,GAAQ,IAC/C,IALC,GAAG,CAAC,IAAI,CAMZ,CACP,CAAC;gBACJ,CAAC,CAAC,GACE,IACF,CACP,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -4,7 +4,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
4
4
|
* Copyright 2025 Google LLC
|
|
5
5
|
* SPDX-License-Identifier: Apache-2.0
|
|
6
6
|
*/
|
|
7
|
-
import { render } from '
|
|
7
|
+
import { render } from '../../../test-utils/render.js';
|
|
8
8
|
import { vi, describe, beforeEach, it, expect } from 'vitest';
|
|
9
9
|
import { useUIState } from '../../contexts/UIStateContext.js';
|
|
10
10
|
import { ExtensionUpdateState } from '../../state/extensions.js';
|
|
@@ -49,21 +49,24 @@ describe('<ExtensionsList />', () => {
|
|
|
49
49
|
};
|
|
50
50
|
it('should render "No extensions installed." if there are no extensions', () => {
|
|
51
51
|
mockUIState(new Map());
|
|
52
|
-
const { lastFrame } = render(_jsx(ExtensionsList, { extensions: [] }));
|
|
52
|
+
const { lastFrame, unmount } = render(_jsx(ExtensionsList, { extensions: [] }));
|
|
53
53
|
expect(lastFrame()).toContain('No extensions installed.');
|
|
54
|
+
unmount();
|
|
54
55
|
});
|
|
55
56
|
it('should render a list of extensions with their version and status', () => {
|
|
56
57
|
mockUIState(new Map());
|
|
57
|
-
const { lastFrame } = render(_jsx(ExtensionsList, { extensions: mockExtensions }));
|
|
58
|
+
const { lastFrame, unmount } = render(_jsx(ExtensionsList, { extensions: mockExtensions }));
|
|
58
59
|
const output = lastFrame();
|
|
59
60
|
expect(output).toContain('ext-one (v1.0.0) - active');
|
|
60
61
|
expect(output).toContain('ext-two (v2.1.0) - active');
|
|
61
62
|
expect(output).toContain('ext-disabled (v3.0.0) - disabled');
|
|
63
|
+
unmount();
|
|
62
64
|
});
|
|
63
65
|
it('should display "unknown state" if an extension has no update state', () => {
|
|
64
66
|
mockUIState(new Map());
|
|
65
|
-
const { lastFrame } = render(_jsx(ExtensionsList, { extensions: [mockExtensions[0]] }));
|
|
67
|
+
const { lastFrame, unmount } = render(_jsx(ExtensionsList, { extensions: [mockExtensions[0]] }));
|
|
66
68
|
expect(lastFrame()).toContain('(unknown state)');
|
|
69
|
+
unmount();
|
|
67
70
|
});
|
|
68
71
|
const stateTestCases = [
|
|
69
72
|
{
|
|
@@ -82,6 +85,10 @@ describe('<ExtensionsList />', () => {
|
|
|
82
85
|
state: ExtensionUpdateState.UPDATED_NEEDS_RESTART,
|
|
83
86
|
expectedText: '(updated, needs restart)',
|
|
84
87
|
},
|
|
88
|
+
{
|
|
89
|
+
state: ExtensionUpdateState.UPDATED,
|
|
90
|
+
expectedText: '(updated)',
|
|
91
|
+
},
|
|
85
92
|
{
|
|
86
93
|
state: ExtensionUpdateState.ERROR,
|
|
87
94
|
expectedText: '(error)',
|
|
@@ -95,8 +102,9 @@ describe('<ExtensionsList />', () => {
|
|
|
95
102
|
it(`should correctly display the state: ${state}`, () => {
|
|
96
103
|
const updateState = new Map([[mockExtensions[0].name, state]]);
|
|
97
104
|
mockUIState(updateState);
|
|
98
|
-
const { lastFrame } = render(_jsx(ExtensionsList, { extensions: [mockExtensions[0]] }));
|
|
105
|
+
const { lastFrame, unmount } = render(_jsx(ExtensionsList, { extensions: [mockExtensions[0]] }));
|
|
99
106
|
expect(lastFrame()).toContain(expectedText);
|
|
107
|
+
unmount();
|
|
100
108
|
});
|
|
101
109
|
}
|
|
102
110
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExtensionsList.test.js","sourceRoot":"","sources":["../../../../../src/ui/components/views/ExtensionsList.test.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"ExtensionsList.test.js","sourceRoot":"","sources":["../../../../../src/ui/components/views/ExtensionsList.test.tsx"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
4
4
|
* Copyright 2025 Google LLC
|
|
5
5
|
* SPDX-License-Identifier: Apache-2.0
|
|
6
6
|
*/
|
|
7
|
-
import { render } from '
|
|
7
|
+
import { render } from '../../../test-utils/render.js';
|
|
8
8
|
import { describe, it, expect, vi } from 'vitest';
|
|
9
9
|
import { McpStatus } from './McpStatus.js';
|
|
10
10
|
import { MCPServerStatus } from '@google/gemini-cli-core';
|
|
@@ -44,36 +44,43 @@ describe('McpStatus', () => {
|
|
|
44
44
|
showSchema: false,
|
|
45
45
|
};
|
|
46
46
|
it('renders correctly with a connected server', () => {
|
|
47
|
-
const { lastFrame } = render(_jsx(McpStatus, { ...baseProps }));
|
|
47
|
+
const { lastFrame, unmount } = render(_jsx(McpStatus, { ...baseProps }));
|
|
48
48
|
expect(lastFrame()).toMatchSnapshot();
|
|
49
|
+
unmount();
|
|
49
50
|
});
|
|
50
51
|
it('renders correctly with authenticated OAuth status', () => {
|
|
51
|
-
const { lastFrame } = render(_jsx(McpStatus, { ...baseProps, authStatus: { 'server-1': 'authenticated' } }));
|
|
52
|
+
const { lastFrame, unmount } = render(_jsx(McpStatus, { ...baseProps, authStatus: { 'server-1': 'authenticated' } }));
|
|
52
53
|
expect(lastFrame()).toMatchSnapshot();
|
|
54
|
+
unmount();
|
|
53
55
|
});
|
|
54
56
|
it('renders correctly with expired OAuth status', () => {
|
|
55
|
-
const { lastFrame } = render(_jsx(McpStatus, { ...baseProps, authStatus: { 'server-1': 'expired' } }));
|
|
57
|
+
const { lastFrame, unmount } = render(_jsx(McpStatus, { ...baseProps, authStatus: { 'server-1': 'expired' } }));
|
|
56
58
|
expect(lastFrame()).toMatchSnapshot();
|
|
59
|
+
unmount();
|
|
57
60
|
});
|
|
58
61
|
it('renders correctly with unauthenticated OAuth status', () => {
|
|
59
|
-
const { lastFrame } = render(_jsx(McpStatus, { ...baseProps, authStatus: { 'server-1': 'unauthenticated' } }));
|
|
62
|
+
const { lastFrame, unmount } = render(_jsx(McpStatus, { ...baseProps, authStatus: { 'server-1': 'unauthenticated' } }));
|
|
60
63
|
expect(lastFrame()).toMatchSnapshot();
|
|
64
|
+
unmount();
|
|
61
65
|
});
|
|
62
66
|
it('renders correctly with a disconnected server', async () => {
|
|
63
67
|
vi.spyOn(await import('@google/gemini-cli-core'), 'getMCPServerStatus').mockReturnValue(MCPServerStatus.DISCONNECTED);
|
|
64
|
-
const { lastFrame } = render(_jsx(McpStatus, { ...baseProps }));
|
|
68
|
+
const { lastFrame, unmount } = render(_jsx(McpStatus, { ...baseProps }));
|
|
65
69
|
expect(lastFrame()).toMatchSnapshot();
|
|
70
|
+
unmount();
|
|
66
71
|
});
|
|
67
72
|
it('renders correctly when discovery is in progress', () => {
|
|
68
|
-
const { lastFrame } = render(_jsx(McpStatus, { ...baseProps, discoveryInProgress: true }));
|
|
73
|
+
const { lastFrame, unmount } = render(_jsx(McpStatus, { ...baseProps, discoveryInProgress: true }));
|
|
69
74
|
expect(lastFrame()).toMatchSnapshot();
|
|
75
|
+
unmount();
|
|
70
76
|
});
|
|
71
77
|
it('renders correctly with schema enabled', () => {
|
|
72
|
-
const { lastFrame } = render(_jsx(McpStatus, { ...baseProps, showSchema: true }));
|
|
78
|
+
const { lastFrame, unmount } = render(_jsx(McpStatus, { ...baseProps, showSchema: true }));
|
|
73
79
|
expect(lastFrame()).toMatchSnapshot();
|
|
80
|
+
unmount();
|
|
74
81
|
});
|
|
75
82
|
it('renders correctly with parametersJsonSchema', () => {
|
|
76
|
-
const { lastFrame } = render(_jsx(McpStatus, { ...baseProps, tools: [
|
|
83
|
+
const { lastFrame, unmount } = render(_jsx(McpStatus, { ...baseProps, tools: [
|
|
77
84
|
{
|
|
78
85
|
serverName: 'server-1',
|
|
79
86
|
name: 'tool-1',
|
|
@@ -89,9 +96,10 @@ describe('McpStatus', () => {
|
|
|
89
96
|
},
|
|
90
97
|
], showSchema: true }));
|
|
91
98
|
expect(lastFrame()).toMatchSnapshot();
|
|
99
|
+
unmount();
|
|
92
100
|
});
|
|
93
101
|
it('renders correctly with prompts', () => {
|
|
94
|
-
const { lastFrame } = render(_jsx(McpStatus, { ...baseProps, prompts: [
|
|
102
|
+
const { lastFrame, unmount } = render(_jsx(McpStatus, { ...baseProps, prompts: [
|
|
95
103
|
{
|
|
96
104
|
serverName: 'server-1',
|
|
97
105
|
name: 'prompt-1',
|
|
@@ -99,14 +107,17 @@ describe('McpStatus', () => {
|
|
|
99
107
|
},
|
|
100
108
|
] }));
|
|
101
109
|
expect(lastFrame()).toMatchSnapshot();
|
|
110
|
+
unmount();
|
|
102
111
|
});
|
|
103
112
|
it('renders correctly with a blocked server', () => {
|
|
104
|
-
const { lastFrame } = render(_jsx(McpStatus, { ...baseProps, blockedServers: [{ name: 'server-1', extensionName: 'test-extension' }] }));
|
|
113
|
+
const { lastFrame, unmount } = render(_jsx(McpStatus, { ...baseProps, blockedServers: [{ name: 'server-1', extensionName: 'test-extension' }] }));
|
|
105
114
|
expect(lastFrame()).toMatchSnapshot();
|
|
115
|
+
unmount();
|
|
106
116
|
});
|
|
107
117
|
it('renders correctly with a connecting server', () => {
|
|
108
|
-
const { lastFrame } = render(_jsx(McpStatus, { ...baseProps, connectingServers: ['server-1'] }));
|
|
118
|
+
const { lastFrame, unmount } = render(_jsx(McpStatus, { ...baseProps, connectingServers: ['server-1'] }));
|
|
109
119
|
expect(lastFrame()).toMatchSnapshot();
|
|
120
|
+
unmount();
|
|
110
121
|
});
|
|
111
122
|
});
|
|
112
123
|
//# sourceMappingURL=McpStatus.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"McpStatus.test.js","sourceRoot":"","sources":["../../../../../src/ui/components/views/McpStatus.test.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"McpStatus.test.js","sourceRoot":"","sources":["../../../../../src/ui/components/views/McpStatus.test.tsx"],"names":[],"mappings":"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"}
|