summaryrefslogtreecommitdiffstats
path: root/spec/qunit_spec.js
diff options
context:
space:
mode:
authorkpdecker <kpdecker@gmail.com>2013-02-16 16:18:17 -0600
committerkpdecker <kpdecker@gmail.com>2013-02-16 16:18:17 -0600
commitd6f146f8a5b1d4386363a1566ef78db7214ab1ed (patch)
tree9c5da1eae0f209d3a26b9e588b7cab4acc92c900 /spec/qunit_spec.js
parent1f00504d257872d5f3096f4d67b710a7f4600f39 (diff)
downloadhandlebars.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.js13
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 ');
+});