summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSamy Pessé <samypesse@gmail.com>2015-01-27 21:47:14 +0100
committerSamy Pessé <samypesse@gmail.com>2015-01-27 21:47:14 +0100
commitbc389ab4a1ea9013a869c0b33162fb67bb0d0708 (patch)
treefd1904c5fc59495190e7b8f4035519dbe642873d
parentcf12d090928907bb82c9f1796b642cbef9b42640 (diff)
downloadgitbook-bc389ab4a1ea9013a869c0b33162fb67bb0d0708.zip
gitbook-bc389ab4a1ea9013a869c0b33162fb67bb0d0708.tar.gz
gitbook-bc389ab4a1ea9013a869c0b33162fb67bb0d0708.tar.bz2
Improve tests on blocks extensions
-rw-r--r--lib/template.js1
-rw-r--r--test/plugins.js10
-rw-r--r--test/plugins/blocks/index.js13
3 files changed, 24 insertions, 0 deletions
diff --git a/lib/template.js b/lib/template.js
index ac7bc3e..ec1b391 100644
--- a/lib/template.js
+++ b/lib/template.js
@@ -169,6 +169,7 @@ TemplateEngine.prototype.addBlock = function(name, block) {
body: args.pop()()
};
})
+ .reverse()
.value();
var body = args.pop();
diff --git a/test/plugins.js b/test/plugins.js
index 0f826d2..3c60a20 100644
--- a/test/plugins.js
+++ b/test/plugins.js
@@ -117,5 +117,15 @@ describe('Plugins', function () {
done
);
});
+
+ it('should correctly extend template blocks with different sub-blocks', function(done) {
+ qdone(
+ books[0].template.renderString('{% test4join separator=";" %}hello{% also %}the{% finally %}world{% endtest4join %}')
+ .then(function(content) {
+ assert.equal(content, "hello;the;world");
+ }),
+ done
+ );
+ });
});
});
diff --git a/test/plugins/blocks/index.js b/test/plugins/blocks/index.js
index f2c588a..b8f72fe 100644
--- a/test/plugins/blocks/index.js
+++ b/test/plugins/blocks/index.js
@@ -1,3 +1,5 @@
+var assert = require("assert");
+
module.exports = {
blocks: {
"test": {
@@ -18,6 +20,17 @@ module.exports = {
process: function(blk) {
return [blk.body, blk.blocks[0].body].join(blk.kwargs.separator);
}
+ },
+ "test4join": {
+ blocks: [
+ "also", "finally"
+ ],
+ process: function(blk) {
+ assert(blk.blocks.length, 2);
+ assert(blk.blocks[0].name, "also");
+ assert(blk.blocks[1].name, "finally");
+ return [blk.body, blk.blocks[0].body, blk.blocks[1].body].join(blk.kwargs.separator);
+ }
}
}
}; \ No newline at end of file