summaryrefslogtreecommitdiff
path: root/packages/cli/src/ui/hooks/useAtCompletion.test.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/cli/src/ui/hooks/useAtCompletion.test.ts')
-rw-r--r--packages/cli/src/ui/hooks/useAtCompletion.test.ts38
1 files changed, 38 insertions, 0 deletions
diff --git a/packages/cli/src/ui/hooks/useAtCompletion.test.ts b/packages/cli/src/ui/hooks/useAtCompletion.test.ts
index 58602d99..43289992 100644
--- a/packages/cli/src/ui/hooks/useAtCompletion.test.ts
+++ b/packages/cli/src/ui/hooks/useAtCompletion.test.ts
@@ -50,6 +50,7 @@ describe('useAtCompletion', () => {
respectGitIgnore: true,
respectGeminiIgnore: true,
})),
+ getEnableRecursiveFileSearch: () => true,
} as unknown as Config;
vi.clearAllMocks();
});
@@ -431,5 +432,42 @@ describe('useAtCompletion', () => {
await cleanupTmpDir(rootDir1);
await cleanupTmpDir(rootDir2);
});
+
+ it('should perform a non-recursive search when enableRecursiveFileSearch is false', async () => {
+ const structure: FileSystemStructure = {
+ 'file.txt': '',
+ src: {
+ 'index.js': '',
+ },
+ };
+ testRootDir = await createTmpDir(structure);
+
+ const nonRecursiveConfig = {
+ getEnableRecursiveFileSearch: () => false,
+ getFileFilteringOptions: vi.fn(() => ({
+ respectGitIgnore: true,
+ respectGeminiIgnore: true,
+ })),
+ } as unknown as Config;
+
+ const { result } = renderHook(() =>
+ useTestHarnessForAtCompletion(
+ true,
+ '',
+ nonRecursiveConfig,
+ testRootDir,
+ ),
+ );
+
+ await waitFor(() => {
+ expect(result.current.suggestions.length).toBeGreaterThan(0);
+ });
+
+ // Should only contain top-level items
+ expect(result.current.suggestions.map((s) => s.value)).toEqual([
+ 'src/',
+ 'file.txt',
+ ]);
+ });
});
});