summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSamy Pesse <samypesse@gmail.com>2016-05-09 22:17:46 +0200
committerSamy Pesse <samypesse@gmail.com>2016-05-09 22:17:46 +0200
commitf24d9aef738b119397299dc537b564cb276dc1aa (patch)
treec9b7b3ad09591dc0812c84d77106da23ca8864ce
parentf8bb55f2582df2a6b9203d43d2e3628a7ec529a1 (diff)
downloadgitbook-f24d9aef738b119397299dc537b564cb276dc1aa.zip
gitbook-f24d9aef738b119397299dc537b564cb276dc1aa.tar.gz
gitbook-f24d9aef738b119397299dc537b564cb276dc1aa.tar.bz2
Add test for block replaced with anchors
-rw-r--r--lib/models/__tests__/templateBlock.js30
1 files changed, 30 insertions, 0 deletions
diff --git a/lib/models/__tests__/templateBlock.js b/lib/models/__tests__/templateBlock.js
index 5265bf6..fdd0210 100644
--- a/lib/models/__tests__/templateBlock.js
+++ b/lib/models/__tests__/templateBlock.js
@@ -67,6 +67,36 @@ describe('TemplateBlock', function() {
});
describe('toNunjucksExt()', function() {
+ pit('should replace by block anchor', function() {
+ var templateBlock = TemplateBlock.create('sayhello', function(block) {
+ return 'Hello';
+ });
+
+ var blocks = {};
+
+ // Create a fresh Nunjucks environment
+ var env = new nunjucks.Environment(null, { autoescape: false });
+
+ // Add template block to environement
+ var Ext = templateBlock.toNunjucksExt({}, blocks);
+ env.addExtension(templateBlock.getExtensionName(), new Ext());
+
+ // Render a template using the block
+ var src = '{% sayhello %}{% endsayhello %}';
+ return Promise.nfcall(env.renderString.bind(env), src)
+ .then(function(res) {
+ blocks = Immutable.fromJS(blocks);
+ expect(blocks.size).toBe(1);
+
+ var blockId = blocks.keySeq().get(0);
+ var block = blocks.get(blockId);
+
+ expect(res).toBe('{{-%' + blockId + '%-}}');
+ expect(block.get('body')).toBe('Hello');
+ expect(block.get('name')).toBe('sayhello');
+ });
+ });
+
pit('must create a valid nunjucks extension', function() {
var templateBlock = TemplateBlock.create('sayhello', function(block) {
return {