summaryrefslogtreecommitdiff
path: root/packages/cli/src/ui/hooks/useCompletion.integration.test.ts
diff options
context:
space:
mode:
authorAnas H. Sulaiman <[email protected]>2025-06-18 01:05:47 -0400
committerGitHub <[email protected]>2025-06-18 05:05:47 +0000
commit63fbc8ce18c93e812b1991e6b305368446349f8a (patch)
tree794237e57682b7e70c22dfa18c52f6b39265d3ae /packages/cli/src/ui/hooks/useCompletion.integration.test.ts
parent7f189f4d5fbd1ae09b38859bdc13b6ba36e55a1f (diff)
fix: regression in completion filtering (#1135)
Diffstat (limited to 'packages/cli/src/ui/hooks/useCompletion.integration.test.ts')
-rw-r--r--packages/cli/src/ui/hooks/useCompletion.integration.test.ts25
1 files changed, 25 insertions, 0 deletions
diff --git a/packages/cli/src/ui/hooks/useCompletion.integration.test.ts b/packages/cli/src/ui/hooks/useCompletion.integration.test.ts
index 43ded9d0..40af5d4f 100644
--- a/packages/cli/src/ui/hooks/useCompletion.integration.test.ts
+++ b/packages/cli/src/ui/hooks/useCompletion.integration.test.ts
@@ -59,6 +59,31 @@ describe('useCompletion git-aware filtering integration', () => {
vi.restoreAllMocks();
});
+ it('should filter git-ignored entries from @ completions', async () => {
+ const globResults = [`${testCwd}/data`, `${testCwd}/dist`];
+ vi.mocked(glob).mockResolvedValue(globResults);
+
+ // Mock git ignore service to ignore certain files
+ mockFileDiscoveryService.shouldGitIgnoreFile.mockImplementation(
+ (path: string) => path.includes('dist'),
+ );
+
+ const { result } = renderHook(() =>
+ useCompletion('@d', testCwd, true, slashCommands, mockConfig),
+ );
+
+ // Wait for async operations to complete
+ await act(async () => {
+ await new Promise((resolve) => setTimeout(resolve, 150)); // Account for debounce
+ });
+
+ expect(result.current.suggestions).toHaveLength(1);
+ expect(result.current.suggestions).toEqual(
+ expect.arrayContaining([{ label: 'data', value: 'data' }]),
+ );
+ expect(result.current.showSuggestions).toBe(true);
+ });
+
it('should filter git-ignored directories from @ completions', async () => {
// Mock fs.readdir to return both regular and git-ignored directories
vi.mocked(fs.readdir).mockResolvedValue([