@@ -83,6 +83,38 @@ suite('aframe-react', () => {
8383 } ) ;
8484 } ) ;
8585
86+ test ( 'updates deeply-nested entity with new props' , done => {
87+ ReactDOM . render (
88+ < Scene >
89+ < Entity >
90+ < Entity >
91+ < Entity id = "el" geometry = { { primitive : 'cylinder' , height : 5 } } />
92+ </ Entity >
93+ </ Entity >
94+ </ Scene > ,
95+ div
96+ ) ;
97+ div . querySelector ( 'a-scene' ) . addEventListener ( 'loaded' , ( ) => {
98+ ReactDOM . render (
99+ < Scene >
100+ < Entity >
101+ < Entity >
102+ < Entity id = "el" geometry = { { primitive : 'cylinder' , height : 25 , radius : 5 } } />
103+ </ Entity >
104+ </ Entity >
105+ </ Scene > ,
106+ div
107+ ) ;
108+ setTimeout ( ( ) => {
109+ const geometry = div . querySelector ( '#el' ) . getAttribute ( 'geometry' ) ;
110+ assert . equal ( geometry . primitive , 'cylinder' ) ;
111+ assert . equal ( geometry . height , 25 ) ;
112+ assert . equal ( geometry . radius , 5 ) ;
113+ done ( ) ;
114+ } ) ;
115+ } ) ;
116+ } ) ;
117+
86118 test ( 'does not flush props to DOM' , done => {
87119 ReactDOM . render ( < Scene > < Entity position = { { x : 1 , y : 2 , z : 3 } } /> </ Scene > , div ) ;
88120 div . querySelector ( 'a-scene' ) . addEventListener ( 'loaded' , ( ) => {
@@ -111,16 +143,16 @@ suite('<Entity primitive/>', () => {
111143 } ) ;
112144
113145 test ( 'handles overrides with updating component' , done => {
114- ReactDOM . render ( < Scene > < Entity primitive = 'a-cylinder' geometry = { { width : 5 } } /> </ Scene > ,
146+ ReactDOM . render ( < Scene > < Entity primitive = 'a-cylinder' geometry = { { height : 5 } } /> </ Scene > ,
115147 div ) ;
116148 const cylinderEl = div . querySelector ( 'a-cylinder' ) ;
117149 div . querySelector ( 'a-scene' ) . addEventListener ( 'loaded' , ( ) => {
118150 assert . equal ( cylinderEl . getAttribute ( 'geometry' ) . primitive , 'cylinder' ) ;
119- assert . equal ( cylinderEl . getAttribute ( 'geometry' ) . width , 5 ) ;
120- ReactDOM . render ( < Scene > < Entity primitive = 'a-cylinder' geometry = { { width : 10 } } /> </ Scene > ,
151+ assert . equal ( cylinderEl . getAttribute ( 'geometry' ) . height , 5 ) ;
152+ ReactDOM . render ( < Scene > < Entity primitive = 'a-cylinder' geometry = { { height : 10 } } /> </ Scene > ,
121153 div ) ;
122154 assert . equal ( cylinderEl . getAttribute ( 'geometry' ) . primitive , 'cylinder' ) ;
123- assert . equal ( cylinderEl . getAttribute ( 'geometry' ) . width , 10 ) ;
155+ assert . equal ( cylinderEl . getAttribute ( 'geometry' ) . height , 10 ) ;
124156 done ( ) ;
125157 } ) ;
126158 } ) ;
0 commit comments