diff options
Diffstat (limited to 'test/template.js')
-rw-r--r-- | test/template.js | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/test/template.js b/test/template.js new file mode 100644 index 0000000..6eb2278 --- /dev/null +++ b/test/template.js @@ -0,0 +1,54 @@ +var mock = require('./mock'); +var Output = require('../lib/output/base'); + +describe('Template', function() { + var output; + + before(function() { + return mock.outputDefaultBook(Output, {}) + .then(function(_output) { + output = _output; + }); + }); + + describe('.renderString', function() { + it('should render a simple string', function() { + return output.template.renderString('Hello World') + .should.be.fulfilledWith('Hello World'); + }); + + it('should render with variable', function() { + return output.template.renderString('Hello {{ world }}', { world: 'World'}) + .should.be.fulfilledWith('Hello World'); + }); + }); + + describe('Blocks', function() { + it('should correctly add a block', function() { + output.template.addBlock('sayhello', function(blk) { + return 'Hello ' + blk.body + '!'; + }); + + return output.template.renderString('{% sayhello %}World{% endsayhello %}') + .should.be.fulfilledWith('Hello World!'); + }); + + it('should correctly add a block with args', function() { + output.template.addBlock('sayhello_args', function(blk) { + return 'Hello ' + blk.args[0] + '!'; + }); + + return output.template.renderString('{% sayhello_args "World" %}{% endsayhello_args %}') + .should.be.fulfilledWith('Hello World!'); + }); + + it('should correctly add a block with kwargs', function() { + output.template.addBlock('sayhello_kwargs', function(blk) { + return 'Hello ' + blk.kwargs.name + '!'; + }); + + return output.template.renderString('{% sayhello_kwargs name="World" %}{% endsayhello_kwargs %}') + .should.be.fulfilledWith('Hello World!'); + }); + }); +}); |