mcp-local-dev

by txbm
'use strict'; const fs = jest.createMockFromModule('fs'); // Mock Dirent class class MockDirent { constructor(name, isDir) { this.name = name; this._isDir = isDir; } isDirectory() { return this._isDir; } isFile() { return !this._isDir; } isBlockDevice() { return false; } isCharacterDevice() { return false; } isFIFO() { return false; } isSocket() { return false; } isSymbolicLink() { return false; } } // Create mock functions with Jest mock functionality const mockReadFile = jest.fn().mockImplementation(async () => 'test file content'); const mockReaddir = jest.fn().mockImplementation(async () => [ new MockDirent('test.txt', false), new MockDirent('testDir', true) ]); // Add Jest mock functions mockReadFile.mockResolvedValue = jest.fn().mockImplementation((value) => { return mockReadFile.mockImplementation(async () => value); }); mockReadFile.mockRejectedValue = jest.fn().mockImplementation((error) => { return mockReadFile.mockImplementation(async () => { throw error; }); }); mockReadFile.mockResolvedValueOnce = jest.fn().mockImplementation((value) => { return mockReadFile.mockImplementationOnce(async () => value); }); mockReadFile.mockRejectedValueOnce = jest.fn().mockImplementation((error) => { return mockReadFile.mockImplementationOnce(async () => { throw error; }); }); // Add the same mock functions to readdir mockReaddir.mockResolvedValue = jest.fn().mockImplementation((value) => { return mockReaddir.mockImplementation(async () => value); }); mockReaddir.mockRejectedValue = jest.fn().mockImplementation((error) => { return mockReaddir.mockImplementation(async () => { throw error; }); }); mockReaddir.mockResolvedValueOnce = jest.fn().mockImplementation((value) => { return mockReaddir.mockImplementationOnce(async () => value); }); mockReaddir.mockRejectedValueOnce = jest.fn().mockImplementation((error) => { return mockReaddir.mockImplementationOnce(async () => { throw error; }); }); fs.readFile = mockReadFile; fs.readdir = mockReaddir; module.exports = fs;