diff options
Diffstat (limited to 'lib/fs/mock.js')
-rw-r--r-- | lib/fs/mock.js | 95 |
1 files changed, 0 insertions, 95 deletions
diff --git a/lib/fs/mock.js b/lib/fs/mock.js deleted file mode 100644 index 784c533..0000000 --- a/lib/fs/mock.js +++ /dev/null @@ -1,95 +0,0 @@ -var path = require('path'); -var is = require('is'); -var Buffer = require('buffer').Buffer; -var Immutable = require('immutable'); - -var FS = require('../models/fs'); -var error = require('../utils/error'); - -/** - Create a fake filesystem for unit testing GitBook. - - @param {Map<String:String|Map>} -*/ -function createMockFS(files) { - files = Immutable.fromJS(files); - var mtime = new Date(); - - function getFile(filePath) { - var parts = path.normalize(filePath).split(path.sep); - return parts.reduce(function(list, part, i) { - if (!list) return null; - - var file; - - if (!part || part === '.') file = list; - else file = list.get(part); - - if (!file) return null; - - if (is.string(file)) { - if (i === (parts.length - 1)) return file; - else return null; - } - - return file; - }, files); - } - - function fsExists(filePath) { - return Boolean(getFile(filePath) !== null); - } - - function fsReadFile(filePath) { - var file = getFile(filePath); - if (!is.string(file)) { - throw error.FileNotFoundError({ - filename: filePath - }); - } - - return new Buffer(file, 'utf8'); - } - - function fsStatFile(filePath) { - var file = getFile(filePath); - if (!file) { - throw error.FileNotFoundError({ - filename: filePath - }); - } - - return { - mtime: mtime - }; - } - - function fsReadDir(filePath) { - var dir = getFile(filePath); - if (!dir || is.string(dir)) { - throw error.FileNotFoundError({ - filename: filePath - }); - } - - return dir - .map(function(content, name) { - if (!is.string(content)) { - name = name + '/'; - } - - return name; - }) - .valueSeq(); - } - - return FS.create({ - root: '', - fsExists: fsExists, - fsReadFile: fsReadFile, - fsStatFile: fsStatFile, - fsReadDir: fsReadDir - }); -} - -module.exports = createMockFS; |