summaryrefslogtreecommitdiffstats
path: root/test/helper.js
diff options
context:
space:
mode:
authorSamy Pessé <samypesse@gmail.com>2015-03-09 10:43:12 +0100
committerSamy Pessé <samypesse@gmail.com>2015-03-09 10:43:12 +0100
commit34fc2831e0cf0fed01c71cec28d93472d87f455b (patch)
treea803cc907c20491ba02863b5d3dd5aedf6bfed10 /test/helper.js
parente1594cde2c32e4ff48f6c4eff3d3d461743d74e1 (diff)
parent1bf68a5aa0703b5a1815cfe4ebb731b5fb6ed9d2 (diff)
downloadgitbook-34fc2831e0cf0fed01c71cec28d93472d87f455b.zip
gitbook-34fc2831e0cf0fed01c71cec28d93472d87f455b.tar.gz
gitbook-34fc2831e0cf0fed01c71cec28d93472d87f455b.tar.bz2
Merge branch 'version/2.0'
Diffstat (limited to 'test/helper.js')
-rw-r--r--test/helper.js62
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
+ );
+});