@@ -139,6 +139,58 @@ suite('aframe-react', () => {
139139 } ) ;
140140 } ) ;
141141
142+ test ( 'can attach new entities' , done => {
143+ ReactDOM . render (
144+ < Scene >
145+ < Entity id = 'sphere' geometry = { { primitive : 'sphere' } } material = { { color : 'blue' } } />
146+ </ Scene > ,
147+ div
148+ ) ;
149+ div . querySelector ( 'a-scene' ) . addEventListener ( 'loaded' , ( ) => {
150+ ReactDOM . render (
151+ < Scene >
152+ < Entity id = 'sphere' geometry = { { primitive : 'sphere' } } material = { { color : 'blue' } } >
153+ < Entity id = 'torus' geometry = { { primitive : 'torus' } } material = { { color : 'orange' } } />
154+ </ Entity >
155+ </ Scene > ,
156+ div
157+ ) ;
158+ setTimeout ( ( ) => {
159+ const sphere = div . querySelector ( '#sphere' ) ;
160+ const torus = div . querySelector ( '#torus' ) ;
161+ assert . equal ( sphere . getAttribute ( 'geometry' ) . primitive , 'sphere' ) ;
162+ assert . equal ( sphere . getAttribute ( 'material' ) . color , 'blue' ) ;
163+ assert . equal ( torus . getAttribute ( 'geometry' ) . primitive , 'torus' ) ;
164+ assert . equal ( torus . getAttribute ( 'material' ) . color , 'orange' ) ;
165+ done ( ) ;
166+ } ) ;
167+ } ) ;
168+ } ) ;
169+
170+ test ( 'can detach entities' , done => {
171+ ReactDOM . render (
172+ < Scene >
173+ < Entity id = 'foo' >
174+ < Entity id = 'bar' />
175+ </ Entity >
176+ </ Scene > ,
177+ div
178+ ) ;
179+ div . querySelector ( 'a-scene' ) . addEventListener ( 'loaded' , ( ) => {
180+ ReactDOM . render (
181+ < Scene >
182+ < Entity id = 'foo' />
183+ </ Scene > ,
184+ div
185+ ) ;
186+ setTimeout ( ( ) => {
187+ assert . ok ( div . querySelector ( '#foo' ) ) ;
188+ assert . notOk ( div . querySelector ( '#bar' ) ) ;
189+ done ( ) ;
190+ } ) ;
191+ } ) ;
192+ } ) ;
193+
142194 test ( 'does not flush props to DOM' , done => {
143195 ReactDOM . render ( < Scene > < Entity position = { { x : 1 , y : 2 , z : 3 } } /> </ Scene > , div ) ;
144196 div . querySelector ( 'a-scene' ) . addEventListener ( 'loaded' , ( ) => {
0 commit comments