summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/all.js2
-rw-r--r--test/mock.js19
-rw-r--r--test/output-json.js4
-rw-r--r--test/template.js32
4 files changed, 55 insertions, 2 deletions
diff --git a/test/all.js b/test/all.js
index 0c1deba..4a5ba83 100644
--- a/test/all.js
+++ b/test/all.js
@@ -7,5 +7,7 @@ require('./glossary');
require('./langs');
require('./parse');
+require('./template');
+
// Output
require('./output-json');
diff --git a/test/mock.js b/test/mock.js
index 919a992..973c74d 100644
--- a/test/mock.js
+++ b/test/mock.js
@@ -7,6 +7,7 @@ require('should');
require('should-promised');
var Book = require('../').Book;
+var Output = require('../lib/output');
var NodeFS = require('../lib/fs/node');
// Create filesystem instance for testing
@@ -57,7 +58,23 @@ function setupDefaultBook(files, opts) {
}), opts);
}
+// Output a book with a specific generator
+function outputDefaultBook(generator, files, opts) {
+ return setupDefaultBook(files, opts)
+ .then(function(book) {
+ // Parse the book
+ return book.parse()
+
+ // Start generation
+ .then(function() {
+ var output = new Output(book, generator);
+ return output.generate();
+ });
+ });
+}
+
module.exports = {
setupBook: setupBook,
- setupDefaultBook: setupDefaultBook
+ setupDefaultBook: setupDefaultBook,
+ outputDefaultBook: outputDefaultBook
};
diff --git a/test/output-json.js b/test/output-json.js
index 8d276c6..9e70771 100644
--- a/test/output-json.js
+++ b/test/output-json.js
@@ -1,6 +1,8 @@
var mock = require('./mock');
describe('JSON Output', function() {
-
+ it('should correctly generate a default book', function() {
+ return mock.outputDefaultBook('json');
+ });
});
diff --git a/test/template.js b/test/template.js
new file mode 100644
index 0000000..b55693f
--- /dev/null
+++ b/test/template.js
@@ -0,0 +1,32 @@
+var mock = require('./mock');
+var TemplateEngine = require('../lib/template');
+
+var pkg = require('../package.json');
+
+describe('Template', function() {
+ var book, tpl;
+
+ before(function() {
+ return mock.setupDefaultBook()
+ .then(function(_book) {
+ book = _book;
+ return book.parse();
+ })
+ .then(function() {
+ tpl = new TemplateEngine(book);
+ });
+ });
+
+ describe('.renderString', function() {
+ it('should render a simple string', function() {
+ return tpl.renderString('Hello World')
+ .should.be.fulfilledWith('Hello World');
+ });
+
+ it('should render with variable', function() {
+ return tpl.renderString('Version is {{ gitbook.version }}')
+ .should.be.fulfilledWith('Version is '+pkg.version);
+ });
+ });
+
+});