mirror of
https://github.com/GitbookIO/gitbook.git
synced 2026-09-16 23:55:20 +00:00
69 lines
1.5 KiB
JavaScript
69 lines
1.5 KiB
JavaScript
var os = require('os');
|
|
var path = require('path');
|
|
var Q = require('q');
|
|
var fs = require('fs');
|
|
var _ = require('lodash');
|
|
var should = require('should');
|
|
|
|
var fsUtil = require('../lib/utils/fs');
|
|
var Book = require('../').Book;
|
|
var LOG_LEVELS = require('../').LOG_LEVELS;
|
|
|
|
require("./assertions");
|
|
|
|
|
|
var BOOKS = {};
|
|
var TMPDIR = os.tmpdir();
|
|
|
|
|
|
// Generate and return a book
|
|
function generateBook(bookId, test) {
|
|
return parseBook(bookId, test)
|
|
.then(function(book) {
|
|
return book.generate(test)
|
|
.thenResolve(book);
|
|
});
|
|
}
|
|
|
|
// Generate and return a book
|
|
function parseBook(bookId, test) {
|
|
test = test || "website";
|
|
BOOKS[bookId] = BOOKS[bookId] || {};
|
|
if (BOOKS[bookId][test]) return Q(BOOKS[bookId][test]);
|
|
|
|
BOOKS[bookId][test] = new Book(path.resolve(__dirname, "books", bookId), {
|
|
logLevel: LOG_LEVELS.DISABLED,
|
|
config: {
|
|
output: path.resolve(TMPDIR, bookId+"-"+test)
|
|
}
|
|
});
|
|
|
|
return BOOKS[bookId][test].parse()
|
|
.then(function() {
|
|
return BOOKS[bookId][test];
|
|
});
|
|
}
|
|
|
|
|
|
global.books = {
|
|
parse: parseBook,
|
|
generate: generateBook
|
|
};
|
|
|
|
// Cleanup all tests
|
|
after(function() {
|
|
return _.chain(BOOKS)
|
|
.map(function(types, bookId) {
|
|
return _.values(types);
|
|
})
|
|
.flatten()
|
|
.reduce(function(prev, book) {
|
|
return prev.then(function() {
|
|
return fsUtil.remove(book.options.output);
|
|
})
|
|
}, Q())
|
|
.value();
|
|
});
|
|
|
|
|