diff --git a/modules/angular2/test/core/compiler/query_integration_spec.ts b/modules/angular2/test/core/compiler/query_integration_spec.ts index dbc70a69f3..f6d174b491 100644 --- a/modules/angular2/test/core/compiler/query_integration_spec.ts +++ b/modules/angular2/test/core/compiler/query_integration_spec.ts @@ -427,6 +427,28 @@ export function main() { expect(q.query.map((d: TextDirective) => d.text)).toEqual(["1", "-3", "2", "4"]); + async.done(); + }); + })); + + it('should handle long ng-for cycles', + inject([TestComponentBuilder, AsyncTestCompleter], (tcb: TestComponentBuilder, async) => { + var template = ''; + + tcb.overrideTemplate(MyComp, template) + .createAsync(MyComp) + .then((view) => { + var q: NeedsViewQueryOrder = view.componentViewChildren[0].getLocal('q'); + + // no significance to 50, just a reasonably large cycle. + for (var i = 0; i < 50; i++) { + var newString = i.toString(); + q.list = [newString]; + view.detectChanges(); + + expect(q.query.map((d: TextDirective) => d.text)).toEqual(['1', newString, '4']); + } + async.done(); }); }));