diff options
author | Samy Pesse <samypesse@gmail.com> | 2016-05-09 22:17:46 +0200 |
---|---|---|
committer | Samy Pesse <samypesse@gmail.com> | 2016-05-09 22:17:46 +0200 |
commit | f24d9aef738b119397299dc537b564cb276dc1aa (patch) | |
tree | c9b7b3ad09591dc0812c84d77106da23ca8864ce | |
parent | f8bb55f2582df2a6b9203d43d2e3628a7ec529a1 (diff) | |
download | gitbook-f24d9aef738b119397299dc537b564cb276dc1aa.zip gitbook-f24d9aef738b119397299dc537b564cb276dc1aa.tar.gz gitbook-f24d9aef738b119397299dc537b564cb276dc1aa.tar.bz2 |
Add test for block replaced with anchors
-rw-r--r-- | lib/models/__tests__/templateBlock.js | 30 |
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 { |