Skip to content

Commit cad497d

Browse files
committed
matching in list test (fails)
1 parent 900695b commit cad497d

File tree

3 files changed

+59
-1
lines changed

3 files changed

+59
-1
lines changed

packages/spark/spark.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -919,6 +919,12 @@ _.extend(Spark.Landmark.prototype, {
919919
var r = this._range;
920920
return DomUtils.findAllClipped(r.containerNode(), selector,
921921
r.firstNode(), r.lastNode());
922+
},
923+
firstNode: function () {
924+
return this._range.firstNode();
925+
},
926+
lastNode: function () {
927+
return this._range.lastNode();
922928
}
923929
});
924930

packages/templating/templating_tests.html

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,3 +204,16 @@
204204
{{/if}}
205205
{{#myConstant}}<hr/>{{/myConstant}}
206206
</template>
207+
208+
<template name="test_listmatching_a0">
209+
<span>{{var}}</span>
210+
<p>
211+
{{#each c}}
212+
{{> test_listmatching_a1}}
213+
{{/each}}
214+
</p>
215+
</template>
216+
217+
<template name="test_listmatching_a1">
218+
{{letter}}
219+
</template>

packages/templating/templating_tests.js

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -433,7 +433,7 @@ Tinytest.add("templating - rendered template", function(test) {
433433

434434
Tinytest.add("templating - branch labels", function(test) {
435435
var R = ReactiveVar('foo');
436-
Template.test_branches_a.var = function () {
436+
Template.test_branches_a['var'] = function () {
437437
return R.get();
438438
};
439439

@@ -475,3 +475,42 @@ Tinytest.add("templating - branch labels", function(test) {
475475
div.kill();
476476
Meteor.flush();
477477
});
478+
479+
Tinytest.add("templating - matching in list", function (test) {
480+
var c = new LocalCollection();
481+
c.insert({letter:'a'});
482+
c.insert({letter:'b'});
483+
c.insert({letter:'c'});
484+
485+
_.extend(Template.test_listmatching_a0, {
486+
'var': function () { return R.get(); },
487+
c: function () { return c.find(); }
488+
});
489+
490+
var buf = [];
491+
_.extend(Template.test_listmatching_a1, {
492+
create: function () { buf.push('+'); },
493+
render: function (landmark) {
494+
var letter = DomUtils.rangeToHtml(landmark.firstNode(),
495+
landmark.lastNode()).match(/\S+/)[0];
496+
buf.push('*'+letter);
497+
},
498+
destroy: function () { buf.push('-'); }
499+
});
500+
501+
var R = ReactiveVar('foo');
502+
var div = OnscreenDiv(Spark.render(Template.test_listmatching_a0));
503+
Meteor.flush();
504+
505+
test.equal(DomUtils.find(div.node(), 'span').innerHTML, 'foo');
506+
test.equal(div.html().match(/<p>(.*?)<\/p>/)[1].match(/\S+/g), ['a','b','c']);
507+
test.equal(buf.join(''), '+++*a*b*c');
508+
509+
buf.length = 0;
510+
R.set('bar');
511+
Meteor.flush();
512+
test.equal(DomUtils.find(div.node(), 'span').innerHTML, 'bar');
513+
test.equal(div.html().match(/<p>(.*?)<\/p>/)[1].match(/\S+/g), ['a','b','c']);
514+
test.equal(buf.join(''), '*a*b*c');
515+
516+
});

0 commit comments

Comments
 (0)