summaryrefslogtreecommitdiffstats
path: root/packages/gitbook/src/output/__tests__/generateMock.js
diff options
context:
space:
mode:
Diffstat (limited to 'packages/gitbook/src/output/__tests__/generateMock.js')
-rw-r--r--packages/gitbook/src/output/__tests__/generateMock.js40
1 files changed, 40 insertions, 0 deletions
diff --git a/packages/gitbook/src/output/__tests__/generateMock.js b/packages/gitbook/src/output/__tests__/generateMock.js
new file mode 100644
index 0000000..6ae1de2
--- /dev/null
+++ b/packages/gitbook/src/output/__tests__/generateMock.js
@@ -0,0 +1,40 @@
+const tmp = require('tmp');
+
+const Book = require('../../models/book');
+const createMockFS = require('../../fs/mock');
+const parseBook = require('../../parse/parseBook');
+const generateBook = require('../generateBook');
+
+/**
+ * Generate a book using a generator
+ * And returns the path to the output dir.
+ *
+ * FOR TESTING PURPOSE ONLY
+ *
+ * @param {Generator}
+ * @param {Map<String:String|Map>} files
+ * @return {Promise<String>}
+ */
+function generateMock(Generator, files) {
+ const fs = createMockFS(files);
+ let book = Book.createForFS(fs);
+ let dir;
+
+ try {
+ dir = tmp.dirSync();
+ } catch (err) {
+ throw err;
+ }
+
+ book = book.setLogLevel('disabled');
+
+ return parseBook(book)
+ .then((resultBook) => {
+ return generateBook(Generator, resultBook, {
+ root: dir.name
+ });
+ })
+ .thenResolve(dir.name);
+}
+
+module.exports = generateMock;