@@ -13,10 +13,11 @@ import {
1313 it ,
1414 xit ,
1515 viewRootNodes ,
16- TestComponentBuilder
16+ TestComponentBuilder ,
17+ RootTestComponent ,
18+ inspectElement
1719} from 'angular2/test_lib' ;
1820
19- import { TestBed , ViewProxy } from 'angular2/src/test_lib/test_bed' ;
2021import { Injector } from 'angular2/di' ;
2122import { Component , View , onDestroy } from 'angular2/annotations' ;
2223import * as viewAnn from 'angular2/src/core/annotations_impl/view' ;
@@ -107,98 +108,103 @@ export function main() {
107108 } ) ;
108109
109110 describe ( "loading next to a location" , ( ) => {
110- it ( 'should work' ,
111- inject ( [ DynamicComponentLoader , TestBed , AsyncTestCompleter ] , ( loader , tb : TestBed ,
112- async ) => {
113- tb . overrideView (
114- MyComp ,
115- new viewAnn . View (
116- { template : '<div><location #loc></location></div>' , directives : [ Location ] } ) ) ;
117-
118- tb . createView ( MyComp ) . then ( ( view ) => {
119- var location = view . rawView . locals . get ( "loc" ) ;
120-
121- loader . loadNextToLocation ( DynamicallyLoaded , location . elementRef )
122- . then ( ref => {
123- expect ( view . rootNodes ) . toHaveText ( "Location;DynamicallyLoaded;" ) ;
124- async . done ( ) ;
125- } ) ;
126- } ) ;
127- } ) ) ;
111+ it ( 'should work' , inject ( [ DynamicComponentLoader , TestComponentBuilder , AsyncTestCompleter ] ,
112+ ( loader , tcb : TestComponentBuilder , async ) => {
113+ tcb . overrideView ( MyComp , new viewAnn . View ( {
114+ template : '<div><location #loc></location></div>' ,
115+ directives : [ Location ]
116+ } ) )
117+ . createAsync ( MyComp )
118+ . then ( ( tc ) => {
119+ loader . loadNextToLocation ( DynamicallyLoaded , tc . elementRef )
120+ . then ( ref => {
121+ expect ( tc . domElement ) . toHaveText ( "Location;" ) ;
122+ expect ( DOM . nextSibling ( tc . domElement ) )
123+ . toHaveText ( 'DynamicallyLoaded;' ) ;
124+
125+ async . done ( ) ;
126+ } ) ;
127+ } ) ;
128+ } ) ) ;
128129
129130 it ( 'should return a disposable component ref' ,
130- inject ( [ DynamicComponentLoader , TestBed , AsyncTestCompleter ] , ( loader , tb : TestBed ,
131- async ) => {
132- tb . overrideView (
133- MyComp ,
134- new viewAnn . View (
135- { template : '<div><location #loc></location></div>' , directives : [ Location ] } ) ) ;
136-
137- tb . createView ( MyComp ) . then ( ( view ) => {
138- var location = view . rawView . locals . get ( "loc" ) ;
139- loader . loadNextToLocation ( DynamicallyLoaded , location . elementRef )
140- . then ( ref => {
141- loader . loadNextToLocation ( DynamicallyLoaded2 , location . elementRef )
142- . then ( ref2 => {
143- expect ( view . rootNodes )
144- . toHaveText ( "Location;DynamicallyLoaded;DynamicallyLoaded2;" )
145-
146- ref2 . dispose ( ) ;
147-
148- expect ( view . rootNodes )
149- . toHaveText ( "Location;DynamicallyLoaded;" )
150-
151- async . done ( ) ;
152- } ) ;
153- } ) ;
154- } ) ;
155- } ) ) ;
131+ inject ( [ DynamicComponentLoader , TestComponentBuilder , AsyncTestCompleter ] ,
132+ ( loader , tcb : TestComponentBuilder , async ) => {
133+ tcb . overrideView ( MyComp , new viewAnn . View ( {
134+ template : '<div><location #loc></location></div>' ,
135+ directives : [ Location ]
136+ } ) )
137+ .
138+
139+ createAsync ( MyComp )
140+ . then ( ( tc ) => {
141+ loader . loadNextToLocation ( DynamicallyLoaded , tc . elementRef )
142+ . then ( ref => {
143+ loader . loadNextToLocation ( DynamicallyLoaded2 , tc . elementRef )
144+ . then ( ref2 => {
145+ var firstSibling = DOM . nextSibling ( tc . domElement ) ;
146+ var secondSibling = DOM . nextSibling ( firstSibling ) ;
147+ expect ( tc . domElement ) . toHaveText ( "Location;" ) ;
148+ expect ( firstSibling ) . toHaveText ( "DynamicallyLoaded;" ) ;
149+ expect ( secondSibling ) . toHaveText ( "DynamicallyLoaded2;" ) ;
150+
151+ ref2 . dispose ( ) ;
152+
153+ firstSibling = DOM . nextSibling ( tc . domElement ) ;
154+ secondSibling = DOM . nextSibling ( firstSibling ) ;
155+ expect ( secondSibling ) . toBeNull ( ) ;
156+
157+ async . done ( ) ;
158+ } ) ;
159+ } ) ;
160+ } ) ;
161+ } ) ) ;
156162
157163 it ( 'should update host properties' ,
158- inject ( [ DynamicComponentLoader , TestBed , AsyncTestCompleter ] , ( loader , tb : TestBed ,
159- async ) => {
160- tb . overrideView (
161- MyComp ,
162- new viewAnn . View (
163- { template : '<div><location #loc></location></div>' , directives : [ Location ] } ) ) ;
164-
165- tb . createView ( MyComp ) . then ( ( view ) => {
166- var location = view . rawView . locals . get ( "loc" ) ;
167-
168- loader . loadNextToLocation ( DynamicallyLoadedWithHostProps , location . elementRef )
169- . then ( ref => {
170- ref . instance . id = "new value" ;
171-
172- view . detectChanges ( ) ;
173-
174- var newlyInsertedElement = DOM . childNodesAsList ( view . rootNodes [ 0 ] ) [ 1 ] ;
175- expect ( newlyInsertedElement . id )
176- . toEqual ( "new value" )
177-
178- async . done ( ) ;
179- } ) ;
180- } ) ;
181- } ) ) ;
164+ inject ( [ DynamicComponentLoader , TestComponentBuilder , AsyncTestCompleter ] ,
165+ ( loader , tcb : TestComponentBuilder , async ) => {
166+ tcb . overrideView ( MyComp , new viewAnn . View ( {
167+ template : '<div><location #loc></location></div>' ,
168+ directives : [ Location ]
169+ } ) )
170+
171+ . createAsync ( MyComp )
172+ . then ( ( tc ) => {
173+
174+ loader . loadNextToLocation ( DynamicallyLoadedWithHostProps , tc . elementRef )
175+ . then ( ref => {
176+ ref . instance . id = "new value" ;
177+
178+ tc . detectChanges ( ) ;
179+
180+ var newlyInsertedElement = DOM . nextSibling ( tc . domElement ) ;
181+ expect ( newlyInsertedElement . id )
182+ . toEqual ( "new value" )
183+
184+ async . done ( ) ;
185+ } ) ;
186+ } ) ;
187+ } ) ) ;
182188 } ) ;
183189
184190 describe ( 'loadAsRoot' , ( ) => {
185191 it ( 'should allow to create, update and destroy components' ,
186- inject ( [ TestBed , AsyncTestCompleter , DynamicComponentLoader , DOCUMENT_TOKEN , Injector ] ,
187- ( tb : TestBed , async , dcl , doc , injector ) => {
192+ inject ( [ AsyncTestCompleter , DynamicComponentLoader , DOCUMENT_TOKEN , Injector ] ,
193+ ( async , loader , doc , injector ) => {
188194 var rootEl = el ( '<child-cmp></child-cmp>' ) ;
189195 DOM . appendChild ( doc . body , rootEl ) ;
190- dcl . loadAsRoot ( ChildComp , null , injector )
196+ loader . loadAsRoot ( ChildComp , null , injector )
191197 . then ( ( componentRef ) => {
192- var view = new ViewProxy ( componentRef ) ;
198+ var el = new RootTestComponent ( componentRef ) ;
193199 expect ( rootEl . parentNode ) . toBe ( doc . body ) ;
194200
195- view . detectChanges ( ) ;
201+ el . detectChanges ( ) ;
196202
197203 expect ( rootEl ) . toHaveText ( 'hello' ) ;
198204
199205 componentRef . instance . ctxProp = 'new' ;
200206
201- view . detectChanges ( ) ;
207+ el . detectChanges ( ) ;
202208
203209 expect ( rootEl ) . toHaveText ( 'new' ) ;
204210
0 commit comments