summaryrefslogtreecommitdiff
path: root/packages/core/src/utils/getFolderStructure.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/getFolderStructure.test.ts
parent76b935d598b895240b9bc2b182eb9f1e1b24be0d (diff)
feat: full implementation for .geminiignore in settings and respective tool calls (#3727)
Diffstat (limited to 'packages/core/src/utils/getFolderStructure.test.ts')
-rw-r--r--packages/core/src/utils/getFolderStructure.test.ts33
1 files changed, 32 insertions, 1 deletions
diff --git a/packages/core/src/utils/getFolderStructure.test.ts b/packages/core/src/utils/getFolderStructure.test.ts
index 3d7c125e..b6354745 100644
--- a/packages/core/src/utils/getFolderStructure.test.ts
+++ b/packages/core/src/utils/getFolderStructure.test.ts
@@ -307,6 +307,7 @@ describe('getFolderStructure gitignore', () => {
createDirent('file1.txt', 'file'),
createDirent('node_modules', 'dir'),
createDirent('ignored.txt', 'file'),
+ createDirent('gem_ignored.txt', 'file'),
createDirent('.gemini', 'dir'),
] as any;
}
@@ -327,6 +328,9 @@ describe('getFolderStructure gitignore', () => {
if (path === '/test/project/.gitignore') {
return 'ignored.txt\nnode_modules/\n.gemini/\n!/.gemini/config.yaml';
}
+ if (path === '/test/project/.geminiignore') {
+ return 'gem_ignored.txt\nnode_modules/\n.gemini/\n!/.gemini/config.yaml';
+ }
return '';
});
@@ -347,10 +351,37 @@ describe('getFolderStructure gitignore', () => {
const fileService = new FileDiscoveryService('/test/project');
const structure = await getFolderStructure('/test/project', {
fileService,
- respectGitIgnore: false,
+ fileFilteringOptions: {
+ respectGeminiIgnore: false,
+ respectGitIgnore: false,
+ },
});
expect(structure).toContain('ignored.txt');
// node_modules is still ignored by default
expect(structure).toContain('node_modules/...');
});
+
+ it('should ignore files and folders specified in .geminiignore', async () => {
+ const fileService = new FileDiscoveryService('/test/project');
+ const structure = await getFolderStructure('/test/project', {
+ fileService,
+ });
+ expect(structure).not.toContain('gem_ignored.txt');
+ expect(structure).toContain('node_modules/...');
+ expect(structure).not.toContain('logs.json');
+ });
+
+ it('should not ignore files if respectGeminiIgnore is false', async () => {
+ const fileService = new FileDiscoveryService('/test/project');
+ const structure = await getFolderStructure('/test/project', {
+ fileService,
+ fileFilteringOptions: {
+ respectGeminiIgnore: false,
+ respectGitIgnore: true, // Explicitly disable gemini ignore only
+ },
+ });
+ expect(structure).toContain('gem_ignored.txt');
+ // node_modules is still ignored by default
+ expect(structure).toContain('node_modules/...');
+ });
});