summaryrefslogtreecommitdiff
path: root/packages/cli/src/ui/components/IDEContextDetailDisplay.test.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'packages/cli/src/ui/components/IDEContextDetailDisplay.test.tsx')
-rw-r--r--packages/cli/src/ui/components/IDEContextDetailDisplay.test.tsx66
1 files changed, 66 insertions, 0 deletions
diff --git a/packages/cli/src/ui/components/IDEContextDetailDisplay.test.tsx b/packages/cli/src/ui/components/IDEContextDetailDisplay.test.tsx
new file mode 100644
index 00000000..629d6c2e
--- /dev/null
+++ b/packages/cli/src/ui/components/IDEContextDetailDisplay.test.tsx
@@ -0,0 +1,66 @@
+/**
+ * @license
+ * Copyright 2025 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+import { render } from 'ink-testing-library';
+import { describe, it, expect } from 'vitest';
+import { IDEContextDetailDisplay } from './IDEContextDetailDisplay.js';
+import { type IdeContext } from '@google/gemini-cli-core';
+
+describe('IDEContextDetailDisplay', () => {
+ it('renders an empty string when there are no open files', () => {
+ const ideContext: IdeContext = {
+ workspaceState: {
+ openFiles: [],
+ },
+ };
+ const { lastFrame } = render(
+ <IDEContextDetailDisplay
+ ideContext={ideContext}
+ detectedIdeDisplay="VS Code"
+ />,
+ );
+ expect(lastFrame()).toBe('');
+ });
+
+ it('renders a list of open files with active status', () => {
+ const ideContext: IdeContext = {
+ workspaceState: {
+ openFiles: [
+ { path: '/foo/bar.txt', isActive: true },
+ { path: '/foo/baz.txt', isActive: false },
+ ],
+ },
+ };
+ const { lastFrame } = render(
+ <IDEContextDetailDisplay
+ ideContext={ideContext}
+ detectedIdeDisplay="VS Code"
+ />,
+ );
+ const output = lastFrame();
+ expect(output).toMatchSnapshot();
+ });
+
+ it('handles duplicate basenames by showing path hints', () => {
+ const ideContext: IdeContext = {
+ workspaceState: {
+ openFiles: [
+ { path: '/foo/bar.txt', isActive: true },
+ { path: '/qux/bar.txt', isActive: false },
+ { path: '/foo/unique.txt', isActive: false },
+ ],
+ },
+ };
+ const { lastFrame } = render(
+ <IDEContextDetailDisplay
+ ideContext={ideContext}
+ detectedIdeDisplay="VS Code"
+ />,
+ );
+ const output = lastFrame();
+ expect(output).toMatchSnapshot();
+ });
+});