summaryrefslogtreecommitdiff
path: root/packages/core/src/utils/bfsFileSearch.test.ts
diff options
context:
space:
mode:
authorPyush Sinha <[email protected]>2025-07-20 00:55:33 -0700
committerGitHub <[email protected]>2025-07-20 07:55:33 +0000
commita01b1219a3e814c370f6827b81c9118f2cbc7a64 (patch)
treeb4b406518a04f3cc4fc054b3b86612bf9b1ade51 /packages/core/src/utils/bfsFileSearch.test.ts
parent76b935d598b895240b9bc2b182eb9f1e1b24be0d (diff)
feat: full implementation for .geminiignore in settings and respective tool calls (#3727)
Diffstat (limited to 'packages/core/src/utils/bfsFileSearch.test.ts')
-rw-r--r--packages/core/src/utils/bfsFileSearch.test.ts39
1 files changed, 39 insertions, 0 deletions
diff --git a/packages/core/src/utils/bfsFileSearch.test.ts b/packages/core/src/utils/bfsFileSearch.test.ts
index 83e9b0b9..3ce452de 100644
--- a/packages/core/src/utils/bfsFileSearch.test.ts
+++ b/packages/core/src/utils/bfsFileSearch.test.ts
@@ -145,4 +145,43 @@ describe('bfsFileSearch', () => {
});
expect(result).toEqual(['/test/subdir1/file1.txt']);
});
+
+ it('should respect .geminiignore files', async () => {
+ const mockFs = vi.mocked(fsPromises);
+ const mockGitUtils = vi.mocked(gitUtils);
+
+ mockGitUtils.isGitRepository.mockReturnValue(false);
+
+ const mockReaddir = mockFs.readdir as unknown as ReaddirWithFileTypes;
+ vi.mocked(mockReaddir).mockImplementation(async (dir) => {
+ if (dir === '/test') {
+ return [
+ createMockDirent('.geminiignore', true),
+ createMockDirent('subdir1', false),
+ createMockDirent('subdir2', false),
+ ];
+ }
+ if (dir === '/test/subdir1') {
+ return [createMockDirent('file1.txt', true)];
+ }
+ if (dir === '/test/subdir2') {
+ return [createMockDirent('file1.txt', true)];
+ }
+ return [];
+ });
+
+ vi.mocked(fs).readFileSync.mockReturnValue('subdir2');
+
+ const fileService = new FileDiscoveryService('/test');
+ const result = await bfsFileSearch('/test', {
+ fileName: 'file1.txt',
+ fileService,
+ fileFilteringOptions: {
+ respectGitIgnore: true,
+ respectGeminiIgnore: true,
+ },
+ });
+
+ expect(result).toEqual(['/test/subdir1/file1.txt']);
+ });
});