aliasify-mocks
Version:
NPM package to mock all modules founded into specific directories
37 lines (27 loc) • 1.19 kB
JavaScript
var lodash = require('lodash');
var fs = require('fs');
var path = require('path');
var matches = require('validator').matches;
var searchForMocks = function (shouldUseDirectoryOnly, rootPath, mocks, config, directory) {
var directories;
var originalPath;
var directoryPath = path.join(rootPath, directory);
var directoryStat;
try {
directoryStat = fs.statSync(directoryPath);
if (directoryStat.isFile()) {
if (matches(directoryPath, config['mockFilePattern'])) {
originalPath = directory;
if (!shouldUseDirectoryOnly) {
originalPath = directoryPath.replace(config['mockFolderPattern'] + '/', '');
}
originalPath = originalPath.replace(config['mockFilePattern'], '');
mocks[originalPath] = directoryPath.replace('.js', '');
}
} else if (directoryStat.isDirectory()) {
directories = fs.readdirSync(directoryPath);
lodash.forEach(directories, searchForMocks.bind(this, shouldUseDirectoryOnly, directoryPath, mocks, config));
}
} catch (error) {}
};
module.exports = searchForMocks;