diff options
author | Samy Pessé <samypesse@gmail.com> | 2016-12-22 10:18:38 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-12-22 10:18:38 +0100 |
commit | 194ebc3da9641ff96f083f9d8ab43c2d27944f9a (patch) | |
tree | c50988f32ccf18df93ae7ab40be78e9459642818 /lib/output/__tests__ | |
parent | 64ccb6b00b4b63fa0e516d4e35351275b34f8c07 (diff) | |
parent | 16af264360e48e8a833e9efa9ab8d194574dbc70 (diff) | |
download | gitbook-194ebc3da9641ff96f083f9d8ab43c2d27944f9a.zip gitbook-194ebc3da9641ff96f083f9d8ab43c2d27944f9a.tar.gz gitbook-194ebc3da9641ff96f083f9d8ab43c2d27944f9a.tar.bz2 |
Merge pull request #1543 from GitbookIO/dream
React for rendering website with plugins
Diffstat (limited to 'lib/output/__tests__')
-rw-r--r-- | lib/output/__tests__/createMock.js | 38 | ||||
-rw-r--r-- | lib/output/__tests__/ebook.js | 16 | ||||
-rw-r--r-- | lib/output/__tests__/generateMock.js | 40 | ||||
-rw-r--r-- | lib/output/__tests__/json.js | 46 | ||||
-rw-r--r-- | lib/output/__tests__/website.js | 144 |
5 files changed, 0 insertions, 284 deletions
diff --git a/lib/output/__tests__/createMock.js b/lib/output/__tests__/createMock.js deleted file mode 100644 index f21c544..0000000 --- a/lib/output/__tests__/createMock.js +++ /dev/null @@ -1,38 +0,0 @@ -var Immutable = require('immutable'); - -var Output = require('../../models/output'); -var Book = require('../../models/book'); -var parseBook = require('../../parse/parseBook'); -var createMockFS = require('../../fs/mock'); -var preparePlugins = require('../preparePlugins'); - -/** - * Create an output using a generator - * - * FOR TESTING PURPOSE ONLY - * - * @param {Generator} generator - * @param {Map<String:String|Map>} files - * @return {Promise<Output>} - */ -function createMockOutput(generator, files, options) { - var fs = createMockFS(files); - var book = Book.createForFS(fs); - var state = generator.State? generator.State({}) : Immutable.Map(); - - book = book.setLogLevel('disabled'); - options = generator.Options(options); - - return parseBook(book) - .then(function(resultBook) { - return new Output({ - book: resultBook, - options: options, - state: state, - generator: generator.name - }); - }) - .then(preparePlugins); -} - -module.exports = createMockOutput; diff --git a/lib/output/__tests__/ebook.js b/lib/output/__tests__/ebook.js deleted file mode 100644 index 9266e9f..0000000 --- a/lib/output/__tests__/ebook.js +++ /dev/null @@ -1,16 +0,0 @@ -var generateMock = require('./generateMock'); -var EbookGenerator = require('../ebook'); - -describe('EbookGenerator', function() { - - it('should generate a SUMMARY.html', function() { - return generateMock(EbookGenerator, { - 'README.md': 'Hello World' - }) - .then(function(folder) { - expect(folder).toHaveFile('SUMMARY.html'); - expect(folder).toHaveFile('index.html'); - }); - }); -}); - diff --git a/lib/output/__tests__/generateMock.js b/lib/output/__tests__/generateMock.js deleted file mode 100644 index 691ee2d..0000000 --- a/lib/output/__tests__/generateMock.js +++ /dev/null @@ -1,40 +0,0 @@ -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 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) { - var fs = createMockFS(files); - var book = Book.createForFS(fs); - var dir; - - try { - dir = tmp.dirSync(); - } catch(err) { - throw err; - } - - book = book.setLogLevel('disabled'); - - return parseBook(book) - .then(function(resultBook) { - return generateBook(Generator, resultBook, { - root: dir.name - }); - }) - .thenResolve(dir.name); -} - -module.exports = generateMock; diff --git a/lib/output/__tests__/json.js b/lib/output/__tests__/json.js deleted file mode 100644 index 12ab567..0000000 --- a/lib/output/__tests__/json.js +++ /dev/null @@ -1,46 +0,0 @@ -var generateMock = require('./generateMock'); -var JSONGenerator = require('../json'); - -describe('JSONGenerator', function() { - - it('should generate a README.json', function() { - return generateMock(JSONGenerator, { - 'README.md': 'Hello World' - }) - .then(function(folder) { - expect(folder).toHaveFile('README.json'); - }); - }); - - it('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'); - }); - }); - - it('should generate a multilingual book', function() { - return generateMock(JSONGenerator, { - 'LANGS.md': '# Languages\n\n* [en](en)\n* [fr](fr)', - 'en': { - 'README.md': 'Hello' - }, - 'fr': { - 'README.md': 'Bonjour' - } - }) - .then(function(folder) { - expect(folder).toHaveFile('en/README.json'); - expect(folder).toHaveFile('fr/README.json'); - expect(folder).toHaveFile('README.json'); - }); - }); -}); - diff --git a/lib/output/__tests__/website.js b/lib/output/__tests__/website.js deleted file mode 100644 index 1f8c3c0..0000000 --- a/lib/output/__tests__/website.js +++ /dev/null @@ -1,144 +0,0 @@ -var fs = require('fs'); -var generateMock = require('./generateMock'); -var WebsiteGenerator = require('../website'); - -describe('WebsiteGenerator', function() { - - it('should generate an index.html', function() { - return generateMock(WebsiteGenerator, { - 'README.md': 'Hello World' - }) - .then(function(folder) { - expect(folder).toHaveFile('index.html'); - }); - }); - - describe('Glossary', function() { - var folder; - - before(function() { - return generateMock(WebsiteGenerator, { - 'README.md': 'Hello World', - 'SUMMARY.md': '* [Deep](folder/page.md)', - 'folder': { - 'page.md': 'Hello World' - }, - 'GLOSSARY.md': '# Glossary\n\n## Hello\n\nHello World' - }) - .then(function(_folder) { - folder = _folder; - }); - }); - - it('should generate a GLOSSARY.html', function() { - expect(folder).toHaveFile('GLOSSARY.html'); - }); - - it('should correctly resolve glossary links in README', function() { - var html = fs.readFileSync(folder + '/index.html', 'utf8'); - expect(html).toHaveDOMElement('.page-inner a[href="GLOSSARY.html#hello"]'); - }); - - it('should correctly resolve glossary links in directory', function() { - var html = fs.readFileSync(folder + '/folder/page.html', 'utf8'); - expect(html).toHaveDOMElement('.page-inner a[href="../GLOSSARY.html#hello"]'); - }); - - it('should accept a custom glossary file', function() { - return generateMock(WebsiteGenerator, { - 'README.md': 'Hello World', - 'book.json': '{ "structure": { "glossary": "custom.md" } }', - 'custom.md': '# Glossary\n\n## Hello\n\nHello World' - }) - .then(function(folder) { - expect(folder).toHaveFile('custom.html'); - expect(folder).toNotHaveFile('GLOSSARY.html'); - - var html = fs.readFileSync(folder + '/index.html', 'utf8'); - expect(html).toHaveDOMElement('.page-inner a[href="custom.html#hello"]'); - }); - }); - }); - - - it('should copy asset files', function() { - return generateMock(WebsiteGenerator, { - 'README.md': 'Hello World', - 'myJsFile.js': 'var a = "test";', - 'folder': { - 'AnotherAssetFile.md': '# Even md' - } - }) - .then(function(folder) { - expect(folder).toHaveFile('index.html'); - expect(folder).toHaveFile('myJsFile.js'); - expect(folder).toHaveFile('folder/AnotherAssetFile.md'); - }); - }); - - it('should generate an index.html for AsciiDoc', function() { - return generateMock(WebsiteGenerator, { - 'README.adoc': 'Hello World' - }) - .then(function(folder) { - expect(folder).toHaveFile('index.html'); - }); - }); - - it('should generate an HTML file for each articles', function() { - return generateMock(WebsiteGenerator, { - 'README.md': 'Hello World', - 'SUMMARY.md': '# Summary\n\n* [Page](test/page.md)', - 'test': { - 'page.md': 'Hello 2' - } - }) - .then(function(folder) { - expect(folder).toHaveFile('index.html'); - expect(folder).toHaveFile('test/page.html'); - }); - }); - - it('should not generate file if entry file doesn\'t exist', function() { - return generateMock(WebsiteGenerator, { - 'README.md': 'Hello World', - 'SUMMARY.md': '# Summary\n\n* [Page 1](page.md)\n* [Page 2](test/page.md)', - 'test': { - 'page.md': 'Hello 2' - } - }) - .then(function(folder) { - expect(folder).toHaveFile('index.html'); - expect(folder).toNotHaveFile('page.html'); - expect(folder).toHaveFile('test/page.html'); - }); - }); - - it('should generate a multilingual book', function() { - return generateMock(WebsiteGenerator, { - 'LANGS.md': '# Languages\n\n* [en](en)\n* [fr](fr)', - 'en': { - 'README.md': 'Hello' - }, - 'fr': { - 'README.md': 'Bonjour' - } - }) - .then(function(folder) { - // It should generate languages - expect(folder).toHaveFile('en/index.html'); - expect(folder).toHaveFile('fr/index.html'); - - // Should not copy languages as assets - expect(folder).toNotHaveFile('en/README.md'); - expect(folder).toNotHaveFile('fr/README.md'); - - // Should copy assets only once - expect(folder).toHaveFile('gitbook/style.css'); - expect(folder).toNotHaveFile('en/gitbook/style.css'); - - expect(folder).toHaveFile('index.html'); - }); - }); -}); - |