Skip to main content
Glama
ahmetshbz1

Filesystem MCP Server

by ahmetshbz1
merge.test.ts1.48 kB
import { describe, it, expect, vi, beforeEach } from 'vitest'; import fs from 'fs/promises'; import { handlers } from '../src/handlers/utility.js'; import { setAllowedDirectories } from '../src/lib.js'; // Mock fs vi.mock('fs/promises'); vi.mock('../logger.js', () => ({ logger: { info: vi.fn(), warn: vi.fn() }, })); const mockFs = fs as any; describe('file_merge', () => { beforeEach(() => { setAllowedDirectories(['/tmp']); vi.clearAllMocks(); mockFs.realpath.mockImplementation((p: string) => Promise.resolve(p)); }); it('should merge multiple files', async () => { mockFs.readFile.mockResolvedValueOnce('content1').mockResolvedValueOnce('content2'); mockFs.writeFile.mockResolvedValue(undefined); const result = await handlers.utility({ operation: 'merge-text', paths: ['/tmp/file1.txt', '/tmp/file2.txt'], outputPath: '/tmp/merged.txt' }); expect(mockFs.writeFile).toHaveBeenCalledWith('/tmp/merged.txt', 'content1\ncontent2', 'utf8'); expect(result.content[0].text).toBe('Merged 2 files to: /tmp/merged.txt'); }); it('should use custom separator', async () => { mockFs.readFile.mockResolvedValue('content'); mockFs.writeFile.mockResolvedValue(undefined); await handlers.utility({ operation: 'merge-text', paths: ['/tmp/file1.txt', '/tmp/file2.txt'], outputPath: '/tmp/merged.txt', separator: '---' }); expect(mockFs.writeFile).toHaveBeenCalledWith('/tmp/merged.txt', 'content---content', 'utf8'); }); });

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ahmetshbz1/filesystem-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server