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