Skip to content

Commit b92638a

Browse files
committed
add test for updating nested entity
1 parent fc4a7e9 commit b92638a

1 file changed

Lines changed: 36 additions & 4 deletions

File tree

tests/browser/index.test.js

Lines changed: 36 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)