diff options
Diffstat (limited to 'test/mock.js')
-rw-r--r-- | test/mock.js | 137 |
1 files changed, 0 insertions, 137 deletions
diff --git a/test/mock.js b/test/mock.js deleted file mode 100644 index e15c4be..0000000 --- a/test/mock.js +++ /dev/null @@ -1,137 +0,0 @@ -/* eslint-disable no-console */ - -var Q = require('q'); -var _ = require('lodash'); -var tmp = require('tmp'); -var path = require('path'); - -var Book = require('../').Book; -var NodeFS = require('../lib/fs/node'); -var fs = require('../lib/utils/fs'); - -require('./assertions'); - -// Create filesystem instance for testing -var nodeFS = new NodeFS(); - -function setupFS(files) { - return Q.nfcall(tmp.dir.bind(tmp)).get(0) - .then(function(rootFolder) { - return _.chain(_.pairs(files)) - .sortBy(0) - .reduce(function(prev, pair) { - return prev.then(function() { - var filename = path.resolve(rootFolder, pair[0]); - var buf = pair[1]; - - if (_.isObject(buf)) buf = JSON.stringify(buf); - if (_.isString(buf)) buf = new Buffer(buf, 'utf-8'); - - return fs.mkdirp(path.dirname(filename)) - .then(function() { - return fs.writeFile(filename, buf); - }); - }); - }, Q()) - .value() - .then(function() { - return rootFolder; - }); - }); -} - -// Setup a mock book for testing using a map of files -function setupBook(files, opts) { - opts = opts || {}; - opts.log = function() { }; - - return setupFS(files) - .then(function(folder) { - opts.fs = nodeFS; - opts.root = folder; - - return new Book(opts); - }); -} - -// Setup a book with default README/SUMMARY -function setupDefaultBook(files, summary, opts) { - var summaryContent = '# Summary \n\n' + - _.map(summary, function(article) { - return '* [' + article.title +'](' + article.path + ')'; - }) - .join('\n'); - - return setupBook(_.defaults(files || {}, { - 'README.md': 'Hello', - 'SUMMARY.md': summaryContent - }), opts); -} - -// Prepare output for a book -function setupOutput(Output, files, opts) { - return setupBook(files, opts) - .then(function(book) { - // Parse the book - return book.parse() - - // Start generation - .then(function() { - return new Output(book); - }); - }); -} - -// Prepare output for a book -function setupDefaultOutput(Output, files, summary, opts) { - return setupDefaultBook(files, summary, opts) - .then(function(book) { - // Parse the book - return book.parse() - - // Start generation - .then(function() { - return new Output(book); - }); - }); -} - -// Output a book with a specific generator -function outputDefaultBook(Output, files, summary, opts) { - return setupDefaultOutput(Output, files, summary, opts) - .then(function(output) { - return output.generate() - .thenResolve(output); - }); -} - -// Output a book with a specific generator -function outputBook(Output, files, opts) { - return setupOutput(Output, files, opts) - .then(function(output) { - return output.generate() - .thenResolve(output); - }); -} - -// Log an error -function logError(err) { - console.log(err.stack || err); -} - -module.exports = { - fs: nodeFS, - - setupFS: setupFS, - - setupBook: setupBook, - setupDefaultBook: setupDefaultBook, - - setupOutput: setupOutput, - setupDefaultOutput: setupDefaultOutput, - - outputBook: outputBook, - outputDefaultBook: outputDefaultBook, - - logError: logError -}; |