diff options
Diffstat (limited to 'test/helper.js')
-rw-r--r-- | test/helper.js | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/test/helper.js b/test/helper.js new file mode 100644 index 0000000..5e16bc0 --- /dev/null +++ b/test/helper.js @@ -0,0 +1,62 @@ +var path = require('path'); +var Q = require('q'); +var fs = require('fs'); +var _ = require('lodash'); + +var fsUtil = require("../lib/utils/fs"); +var Book = require('../').Book; +var LOG_LEVELS = require('../').LOG_LEVELS; + +// Nicety for mocha / Q +global.qdone = function qdone(promise, done) { + return promise.then(function() { + return done(); + }, function(err) { + return done(err); + }).done(); +}; + +// Test generation of a book +global.testGeneration = function(book, type, func, done) { + var OUTPUT_PATH = book.options.output; + + qdone( + book.generate(type) + .then(function() { + func(OUTPUT_PATH); + }) + .fin(function() { + return fsUtil.remove(OUTPUT_PATH); + }), + done); +}; + +// Books for testings +var books = fs.readdirSync(path.join(__dirname, './fixtures/')); + +global.books = _.chain(books) + .sortBy() + .map(function(book) { + if (book.indexOf("test") !== 0) return null; + return new Book(path.join(__dirname, './fixtures/', book), { + logLevel: LOG_LEVELS.DISABLED + }); + }) + .compact() + .value(); + +// Init before doing tests +before(function(done) { + + qdone( + _.reduce(global.books, function(prev, book) { + return prev.then(function() { + return fsUtil.remove(path.join(book.root, "_book")); + }) + .then(function() { + return book.parse(); + }); + }, Q()), + done + ); +}); |