mirror of
https://github.com/meteor/meteor.git
synced 2026-05-02 03:01:46 -04:00
Add regression tests for d56d9da
Make sure inclusions with one path segment like “..” and “foo” (where foo is in the data context) don’t cause the enclosing template to re-render when the data context changes.
This commit is contained in:
@@ -902,3 +902,23 @@ Hi there!
|
|||||||
<template name="spacebars_test_event_cleanup_on_destroyed_inner">
|
<template name="spacebars_test_event_cleanup_on_destroyed_inner">
|
||||||
<span>foo</span>
|
<span>foo</span>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
<template name="spacebars_test_isolated_lookup_inclusion">
|
||||||
|
x
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<template name="spacebars_test_isolated_lookup1">
|
||||||
|
{{> foo}}--{{> spacebars_test_isolated_lookup_inclusion}}
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<template name="spacebars_test_isolated_lookup2">
|
||||||
|
{{#with foo}}
|
||||||
|
{{#with z=1}}
|
||||||
|
{{> ..}}--{{> spacebars_test_isolated_lookup_inclusion}}
|
||||||
|
{{/with}}
|
||||||
|
{{/with}}
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<template name="spacebars_test_isolated_lookup3">
|
||||||
|
{{> bar}}--{{> spacebars_test_isolated_lookup_inclusion}}
|
||||||
|
</template>
|
||||||
|
|||||||
@@ -2572,3 +2572,39 @@ Tinytest.add(
|
|||||||
|
|
||||||
document.body.removeChild(div);
|
document.body.removeChild(div);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
_.each([1, 2, 3], function (n) {
|
||||||
|
Tinytest.add(
|
||||||
|
"spacebars-tests - template_tests - lookup is isolated " + n,
|
||||||
|
function (test) {
|
||||||
|
var buf = "";
|
||||||
|
var inclusion = Template.spacebars_test_isolated_lookup_inclusion;
|
||||||
|
inclusion.created = function () { buf += 'C'; };
|
||||||
|
inclusion.destroyed = function () { buf += 'D'; };
|
||||||
|
|
||||||
|
var tmpl = Template['spacebars_test_isolated_lookup' + n];
|
||||||
|
var R = ReactiveVar(Template.spacebars_template_test_aaa);
|
||||||
|
|
||||||
|
tmpl.bar = function () {
|
||||||
|
return R.get();
|
||||||
|
};
|
||||||
|
|
||||||
|
var div = renderToDiv(
|
||||||
|
tmpl,
|
||||||
|
function () {
|
||||||
|
return { foo: R.get() };
|
||||||
|
});
|
||||||
|
|
||||||
|
test.equal(canonicalizeHtml(div.innerHTML), 'aaa--x');
|
||||||
|
test.equal(buf, 'C');
|
||||||
|
R.set(Template.spacebars_template_test_bbb);
|
||||||
|
Deps.flush();
|
||||||
|
test.equal(canonicalizeHtml(div.innerHTML), 'bbb--x');
|
||||||
|
test.equal(buf, 'C');
|
||||||
|
R.set(null);
|
||||||
|
Deps.flush({_throwFirstError:true});
|
||||||
|
test.equal(canonicalizeHtml(div.innerHTML), '--x');
|
||||||
|
test.equal(buf, 'C');
|
||||||
|
}
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user