summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorSamy Pessé <samypesse@gmail.com>2016-02-24 13:35:59 +0100
committerSamy Pessé <samypesse@gmail.com>2016-02-24 13:35:59 +0100
commite85ad95bcf3627a223b3a2eacaa29835142249eb (patch)
tree1195387b49276e8b0b5b1c9185371c9f96a9ad38 /test
parentbd73c7978743329f893c1125d1645b8aa24eb7d8 (diff)
downloadgitbook-e85ad95bcf3627a223b3a2eacaa29835142249eb.zip
gitbook-e85ad95bcf3627a223b3a2eacaa29835142249eb.tar.gz
gitbook-e85ad95bcf3627a223b3a2eacaa29835142249eb.tar.bz2
Generate multi-lingual index
Diffstat (limited to 'test')
-rw-r--r--test/mock.js17
-rw-r--r--test/output-website.js36
2 files changed, 52 insertions, 1 deletions
diff --git a/test/mock.js b/test/mock.js
index 1bb92e2..5ff9f63 100644
--- a/test/mock.js
+++ b/test/mock.js
@@ -84,6 +84,22 @@ function outputDefaultBook(Output, files, summary, opts) {
});
}
+// Output a book with a specific generator
+function outputBook(Output, files, opts) {
+ return setupBook(files, opts)
+ .then(function(book) {
+ // Parse the book
+ return book.parse()
+
+ // Start generation
+ .then(function() {
+ var output = new Output(book);
+ return output.generate()
+ .thenResolve(output);
+ });
+ });
+}
+
// Log an error
function logError(err) {
console.log(err.stack || err);
@@ -93,6 +109,7 @@ module.exports = {
fs: nodeFS,
setupFS: setupFS,
setupBook: setupBook,
+ outputBook: outputBook,
setupDefaultBook: setupDefaultBook,
outputDefaultBook: outputDefaultBook,
logError: logError
diff --git a/test/output-website.js b/test/output-website.js
index 69adf88..19459b3 100644
--- a/test/output-website.js
+++ b/test/output-website.js
@@ -25,7 +25,6 @@ describe('Website Output', function() {
it('should correctly copy plugins', function() {
output.should.have.file('gitbook/gitbook-plugin-highlight/website.css');
});
-
});
describe('Book with chapters', function() {
@@ -58,7 +57,42 @@ describe('Website Output', function() {
output.should.have.file('hello/index.html');
output.should.have.file('hello/test.html');
});
+ });
+
+ describe('Multilingual Book', function() {
+ var output;
+
+ before(function() {
+ return mock.outputBook(WebsiteOutput, {
+ 'LANGS.md': '# Languages\n\n'
+ + '* [en](./en)\n'
+ + '* [fr](./fr)\n\n',
+ 'en/README.md': '# Hello',
+ 'fr/README.md': '# Bonjour'
+
+ })
+ .then(function(_output) {
+ output = _output;
+ });
+ });
+ it('should correctly generate an index.html for each language', function() {
+ output.should.have.file('en/index.html');
+ output.should.have.file('fr/index.html');
+ });
+
+ it('should correctly copy assets', function() {
+ output.should.have.file('gitbook/app.js');
+ });
+
+ it('should not copy assets for each language', function() {
+ output.should.have.not.file('en/gitbook/app.js');
+ output.should.have.not.file('fr/gitbook/app.js');
+ });
+
+ it('should correctly generate an index.html', function() {
+ output.should.have.file('index.html');
+ });
});
});