summaryrefslogtreecommitdiff
path: root/packages/core/src/utils/fileUtils.test.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/core/src/utils/fileUtils.test.ts')
-rw-r--r--packages/core/src/utils/fileUtils.test.ts25
1 files changed, 25 insertions, 0 deletions
diff --git a/packages/core/src/utils/fileUtils.test.ts b/packages/core/src/utils/fileUtils.test.ts
index c1381e85..78a5ab4c 100644
--- a/packages/core/src/utils/fileUtils.test.ts
+++ b/packages/core/src/utils/fileUtils.test.ts
@@ -211,6 +211,11 @@ describe('fileUtils', () => {
expect(detectFileType('file.jpg')).toBe('image');
});
+ it('should detect svg type by extension', () => {
+ expect(detectFileType('image.svg')).toBe('svg');
+ expect(detectFileType('image.icon.svg')).toBe('svg');
+ });
+
it('should detect pdf type by extension', () => {
mockMimeLookup.mockReturnValueOnce('application/pdf');
expect(detectFileType('file.pdf')).toBe('pdf');
@@ -355,6 +360,26 @@ describe('fileUtils', () => {
expect(result.returnDisplay).toContain('Read pdf file: document.pdf');
});
+ it('should read an SVG file as text when under 1MB', async () => {
+ const svgContent = `
+ <svg xmlns="http://www.w3.org/2000/svg" width="100" height="100">
+ <rect width="100" height="100" fill="blue" />
+ </svg>
+ `;
+ const testSvgFilePath = path.join(tempRootDir, 'test.svg');
+ actualNodeFs.writeFileSync(testSvgFilePath, svgContent, 'utf-8');
+
+ mockMimeLookup.mockReturnValue('image/svg+xml');
+
+ const result = await processSingleFileContent(
+ testSvgFilePath,
+ tempRootDir,
+ );
+
+ expect(result.llmContent).toBe(svgContent);
+ expect(result.returnDisplay).toContain('Read SVG as text');
+ });
+
it('should skip binary files', async () => {
actualNodeFs.writeFileSync(
testBinaryFilePath,