diff options
author | kpdecker <kpdecker@gmail.com> | 2013-02-16 16:18:17 -0600 |
---|---|---|
committer | kpdecker <kpdecker@gmail.com> | 2013-02-16 16:18:17 -0600 |
commit | d6f146f8a5b1d4386363a1566ef78db7214ab1ed (patch) | |
tree | 9c5da1eae0f209d3a26b9e588b7cab4acc92c900 /spec/qunit_spec.js | |
parent | 1f00504d257872d5f3096f4d67b710a7f4600f39 (diff) | |
download | handlebars.js-d6f146f8a5b1d4386363a1566ef78db7214ab1ed.zip handlebars.js-d6f146f8a5b1d4386363a1566ef78db7214ab1ed.tar.gz handlebars.js-d6f146f8a5b1d4386363a1566ef78db7214ab1ed.tar.bz2 |
Fix #428 nested if else rendering
The program equality checker was not taking children into account
when determining equality, causing breakages under similar cases.
Diffstat (limited to 'spec/qunit_spec.js')
-rw-r--r-- | spec/qunit_spec.js | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/spec/qunit_spec.js b/spec/qunit_spec.js index dadccef..f12e44c 100644 --- a/spec/qunit_spec.js +++ b/spec/qunit_spec.js @@ -1384,3 +1384,16 @@ test('GH-408: Multiple loops fail', function() { var result = template(context); equals(result, "John DoeJane DoeJohn DoeJane DoeJohn DoeJane Doe", 'It should output multiple times'); }); + +test('GS-428: Nested if else rendering', function() { + var succeedingTemplate = '{{#inverse}} {{#blk}} Unexpected {{/blk}} {{else}} {{#blk}} Expected {{/blk}} {{/inverse}}'; + var failingTemplate = '{{#inverse}} {{#blk}} Unexpected {{/blk}} {{else}} {{#blk}} Expected {{/blk}} {{/inverse}}'; + + var helpers = { + blk: function(block) { return block.fn(''); }, + inverse: function(block) { return block.inverse(''); } + }; + + shouldCompileTo(succeedingTemplate, [{}, helpers], ' Expected '); + shouldCompileTo(failingTemplate, [{}, helpers], ' Expected '); +}); |