diff options
author | Samy Pessé <samypesse@gmail.com> | 2016-04-28 15:20:25 +0200 |
---|---|---|
committer | Samy Pessé <samypesse@gmail.com> | 2016-04-28 15:20:25 +0200 |
commit | cb3ee423c976c93d35e7e7c8722787bd69cb747e (patch) | |
tree | 0093154277a7aaf5bf64afb1b3982dfefe033fe8 /lib/output | |
parent | 1360a744a72fc84dacde22283a8dc2687ff6c3cb (diff) | |
download | gitbook-cb3ee423c976c93d35e7e7c8722787bd69cb747e.zip gitbook-cb3ee423c976c93d35e7e7c8722787bd69cb747e.tar.gz gitbook-cb3ee423c976c93d35e7e7c8722787bd69cb747e.tar.bz2 |
Add basic tests for json generator
Diffstat (limited to 'lib/output')
-rw-r--r-- | lib/output/__tests__/json.js | 29 | ||||
-rw-r--r-- | lib/output/generateMock.js | 33 | ||||
-rw-r--r-- | lib/output/getModifiers.js | 2 |
3 files changed, 63 insertions, 1 deletions
diff --git a/lib/output/__tests__/json.js b/lib/output/__tests__/json.js new file mode 100644 index 0000000..94a0362 --- /dev/null +++ b/lib/output/__tests__/json.js @@ -0,0 +1,29 @@ +var generateMock = require('../generateMock'); +var JSONGenerator = require('../json'); + +describe('JSONGenerator', function() { + + pit('should generate a README.json', function() { + return generateMock(JSONGenerator, { + 'README.md': 'Hello World' + }) + .then(function(folder) { + expect(folder).toHaveFile('README.json'); + }); + }); + + pit('should generate a json file for each articles', function() { + return generateMock(JSONGenerator, { + 'README.md': 'Hello World', + 'SUMMARY.md': '# Summary\n\n* [Page](test/page.md)', + 'test': { + 'page.md': 'Hello 2' + } + }) + .then(function(folder) { + expect(folder).toHaveFile('README.json'); + expect(folder).toHaveFile('test/page.json'); + }); + }); +}); + diff --git a/lib/output/generateMock.js b/lib/output/generateMock.js new file mode 100644 index 0000000..b779e32 --- /dev/null +++ b/lib/output/generateMock.js @@ -0,0 +1,33 @@ +var tmp = require('tmp'); + +var Book = require('../models/book'); +var createMockFS = require('../fs/mock'); +var parseBook = require('../parse/parseBook'); +var generateBook = require('./generateBook'); + + +/** + Generate a book using JSON 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) { + var fs = createMockFS(files); + var book = Book.createForFS(fs); + var dir = tmp.dirSync(); + + return parseBook(book) + .then(function(resultBook) { + return generateBook(Generator, resultBook, { + root: dir.name + }); + }) + .thenResolve(dir.name); +} + +module.exports = generateMock; diff --git a/lib/output/getModifiers.js b/lib/output/getModifiers.js index 23cfb1c..e649df6 100644 --- a/lib/output/getModifiers.js +++ b/lib/output/getModifiers.js @@ -11,7 +11,7 @@ var CODEBLOCK = 'code'; Return default modifier to prepare a page for rendering. - @return <Array> + @return {Array<Modifier>} */ function getModifiers(output, page) { var book = output.getBook(); |