diff options
author | Samy Pessé <samypesse@gmail.com> | 2016-04-18 17:14:55 +0200 |
---|---|---|
committer | Samy Pessé <samypesse@gmail.com> | 2016-04-18 17:14:55 +0200 |
commit | d07aa13822230ee5086bafcb9ea16cb8447fb562 (patch) | |
tree | 14259c6254d20919a9964f96f5e90133af1cc689 /test | |
parent | c218f7d0e30d8088ebd09951691647ffed7fe91d (diff) | |
download | gitbook-d07aa13822230ee5086bafcb9ea16cb8447fb562.zip gitbook-d07aa13822230ee5086bafcb9ea16cb8447fb562.tar.gz gitbook-d07aa13822230ee5086bafcb9ea16cb8447fb562.tar.bz2 |
Add tests for page hook
Diffstat (limited to 'test')
-rw-r--r-- | test/mock.js | 47 | ||||
-rw-r--r-- | test/node_modules/gitbook-plugin-test-deprecated/index.js | 8 | ||||
-rw-r--r-- | test/node_modules/gitbook-plugin-test-deprecated/package.json | 7 | ||||
-rw-r--r-- | test/node_modules/gitbook-plugin-test-hooks/index.js | 6 | ||||
-rw-r--r-- | test/plugins.js | 37 |
5 files changed, 90 insertions, 15 deletions
diff --git a/test/mock.js b/test/mock.js index 5ff9f63..e15c4be 100644 --- a/test/mock.js +++ b/test/mock.js @@ -68,38 +68,52 @@ function setupDefaultBook(files, summary, opts) { }), opts); } -// Output a book with a specific generator -function outputDefaultBook(Output, files, summary, opts) { - return setupDefaultBook(files, summary, opts) +// Prepare output for a book +function setupOutput(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); + return new Output(book); }); }); } -// Output a book with a specific generator -function outputBook(Output, files, opts) { - return setupBook(files, opts) +// Prepare output for a book +function setupDefaultOutput(Output, files, summary, opts) { + return setupDefaultBook(files, summary, opts) .then(function(book) { // Parse the book return book.parse() // Start generation .then(function() { - var output = new Output(book); - return output.generate() - .thenResolve(output); + return new Output(book); }); }); } +// Output a book with a specific generator +function outputDefaultBook(Output, files, summary, opts) { + return setupDefaultOutput(Output, files, summary, opts) + .then(function(output) { + return output.generate() + .thenResolve(output); + }); +} + +// Output a book with a specific generator +function outputBook(Output, files, opts) { + return setupOutput(Output, files, opts) + .then(function(output) { + return output.generate() + .thenResolve(output); + }); +} + // Log an error function logError(err) { console.log(err.stack || err); @@ -107,10 +121,17 @@ function logError(err) { module.exports = { fs: nodeFS, + setupFS: setupFS, + setupBook: setupBook, - outputBook: outputBook, setupDefaultBook: setupDefaultBook, + + setupOutput: setupOutput, + setupDefaultOutput: setupDefaultOutput, + + outputBook: outputBook, outputDefaultBook: outputDefaultBook, + logError: logError }; diff --git a/test/node_modules/gitbook-plugin-test-deprecated/index.js b/test/node_modules/gitbook-plugin-test-deprecated/index.js new file mode 100644 index 0000000..2a77ce3 --- /dev/null +++ b/test/node_modules/gitbook-plugin-test-deprecated/index.js @@ -0,0 +1,8 @@ +module.exports = { + hooks: { + page: function(page) { + page.sections[0].content = 'Hello (sections) ' + page.content; + return page; + } + } +}; diff --git a/test/node_modules/gitbook-plugin-test-deprecated/package.json b/test/node_modules/gitbook-plugin-test-deprecated/package.json new file mode 100644 index 0000000..9da523c --- /dev/null +++ b/test/node_modules/gitbook-plugin-test-deprecated/package.json @@ -0,0 +1,7 @@ +{ + "name": "gitbook-plugin-test-deprecated", + "version": "1.0.0", + "engines": { + "gitbook": "*" + } +}
\ No newline at end of file diff --git a/test/node_modules/gitbook-plugin-test-hooks/index.js b/test/node_modules/gitbook-plugin-test-hooks/index.js index c0666ca..cd9d1b0 100644 --- a/test/node_modules/gitbook-plugin-test-hooks/index.js +++ b/test/node_modules/gitbook-plugin-test-hooks/index.js @@ -1,5 +1,3 @@ -var should = require('should'); - module.exports = { hooks: { 'init': function() { @@ -11,6 +9,10 @@ module.exports = { }, 'finish:before': function() { global._hooks.push('finish:before'); + }, + page: function(page) { + page.content = 'Hello ' + page.content; + return page; } } }; diff --git a/test/plugins.js b/test/plugins.js index 8d386af..392024a 100644 --- a/test/plugins.js +++ b/test/plugins.js @@ -6,6 +6,7 @@ var registry = require('../lib/plugins/registry'); var Output = require('../lib/output/base'); var PluginsManager = require('../lib/plugins'); var BookPlugin = require('../lib/plugins/plugin'); +var JSONOutput = require('../lib/output/json'); var PLUGINS_ROOT = path.resolve(__dirname, 'node_modules'); @@ -229,6 +230,42 @@ describe('Plugins', function() { global._hooks.should.deepEqual(['init']); }); }); + + + describe('Hook "page"', function() { + var pluginDeprecated; + + before(function() { + pluginDeprecated = TestPlugin(book, 'test-deprecated'); + return pluginDeprecated.load(PLUGINS_ROOT); + }); + + it('should update content using "content" property', function() { + return mock.setupDefaultOutput(JSONOutput) + .then(function(output) { + output.plugins.load(plugin); + + return output.generate() + .then(function() { + var json = require(output.resolve('README.json')); + json.page.content.should.equal('Hello <p>Hello</p>\n'); + }); + }); + }); + + it('should update content using deprecated "sections" property', function() { + return mock.setupDefaultOutput(JSONOutput) + .then(function(output) { + output.plugins.load(pluginDeprecated); + + return output.generate() + .then(function() { + var json = require(output.resolve('README.json')); + json.page.content.should.equal('Hello (sections) <p>Hello</p>\n'); + }); + }); + }); + }); }); }); |