summaryrefslogtreecommitdiffstats
path: root/lib/output/__tests__
diff options
context:
space:
mode:
authorSamy Pessé <samypesse@gmail.com>2016-12-22 10:18:38 +0100
committerGitHub <noreply@github.com>2016-12-22 10:18:38 +0100
commit194ebc3da9641ff96f083f9d8ab43c2d27944f9a (patch)
treec50988f32ccf18df93ae7ab40be78e9459642818 /lib/output/__tests__
parent64ccb6b00b4b63fa0e516d4e35351275b34f8c07 (diff)
parent16af264360e48e8a833e9efa9ab8d194574dbc70 (diff)
downloadgitbook-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.js38
-rw-r--r--lib/output/__tests__/ebook.js16
-rw-r--r--lib/output/__tests__/generateMock.js40
-rw-r--r--lib/output/__tests__/json.js46
-rw-r--r--lib/output/__tests__/website.js144
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');
- });
- });
-});
-