From 67685ad24dedc9b468361777ee7e9644040fb91e Mon Sep 17 00:00:00 2001 From: Matthew Beale Date: Sun, 31 May 2015 13:20:49 -0400 Subject: [PATCH] Add failing test for helper teardown in nested helper --- .../tests/helpers/custom_helper_test.js | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/packages/ember-htmlbars/tests/helpers/custom_helper_test.js b/packages/ember-htmlbars/tests/helpers/custom_helper_test.js index 0a61914371e..079f767de06 100644 --- a/packages/ember-htmlbars/tests/helpers/custom_helper_test.js +++ b/packages/ember-htmlbars/tests/helpers/custom_helper_test.js @@ -274,3 +274,36 @@ QUnit.test('dashed helper used in subexpression can recompute', function() { equal(component.$().text(), 'Who believes his force hath overcome but half his foe'); }); + +QUnit.test('dashed helper used in subexpression is destroyed', function() { + var didCallDestroy = false; + var DynamicSegment = Helper.extend({ + phrase: 'overcomes by', + compute() { + return this.phrase; + }, + destroy() { + didCallDestroy = true; + this._super(...arguments); + } + }); + var JoinWords = Helper.build(function(params) { + return params.join(' '); + }); + registry.register('helper:dynamic-segment', DynamicSegment); + registry.register('helper:join-words', JoinWords); + component = Component.extend({ + container, + layout: compile( + `{{join-words "Who" + (dynamic-segment) + "force" + (join-words (join-words "hath overcome but" "half")) + (join-words "his" (join-words "foe"))}}`) + }).create(); + + runAppend(component); + runDestroy(component); + + ok(didCallDestroy, 'destroy was called'); +});