summaryrefslogtreecommitdiff
path: root/packages/core/src/utils/bfsFileSearch.test.ts
diff options
context:
space:
mode:
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']);
+ });
});