From 4d4eacfc40f87ecc991aaecc12c046d49654425c Mon Sep 17 00:00:00 2001
From: Shreya Keshive <skeshive@gmail.com>
Date: Thu, 7 Aug 2025 17:19:31 -0400
Subject: Few IDE integration polishes (#5727)

---
 .../ui/components/IDEContextDetailDisplay.test.tsx | 66 ++++++++++++++++++++++
 1 file changed, 66 insertions(+)
 create mode 100644 packages/cli/src/ui/components/IDEContextDetailDisplay.test.tsx

(limited to 'packages/cli/src/ui/components/IDEContextDetailDisplay.test.tsx')

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();
+  });
+});
-- 
cgit v1.2.3

