diff options
| author | Pyush Sinha <[email protected]> | 2025-07-20 00:55:33 -0700 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-07-20 07:55:33 +0000 |
| commit | a01b1219a3e814c370f6827b81c9118f2cbc7a64 (patch) | |
| tree | b4b406518a04f3cc4fc054b3b86612bf9b1ade51 /packages/core/src/utils/bfsFileSearch.test.ts | |
| parent | 76b935d598b895240b9bc2b182eb9f1e1b24be0d (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.ts | 39 |
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']); + }); }); |
