Add test logic to make sure that events get tested when rendering on top of server-generated markup. (#6668)
Sasha Aickin committed
Apr 30, 2016 at 11:21 UTC
256753b83011f18dab8f6f12535afc78c5652b69
1 file changed
+11
-5
src/renderers/dom/server/__tests__/ReactServerRendering-test.js
+11
-5
@@ -232,9 +232,15 @@ describe('ReactServerRendering', function() {
232
ExecutionEnvironment.canUseDOM = true;
233
element.innerHTML = lastMarkup;
234
235
- ReactDOM.render(<TestComponent name="x" />, element);
235
+ var instance = ReactDOM.render(<TestComponent name="x" />, element);
236
expect(mountCount).toEqual(3);
237
expect(element.innerHTML).toBe(lastMarkup);
238
+
239
+ // Ensure the events system works after mount into server markup
240
+ expect(numClicks).toEqual(0);
241
+ ReactTestUtils.Simulate.click(ReactDOM.findDOMNode(instance.refs.span));
242
+ expect(numClicks).toEqual(1);
243
+
244
ReactDOM.unmountComponentAtNode(element);
245
expect(element.innerHTML).toEqual('');
246
@@ -242,16 +248,16 @@ describe('ReactServerRendering', function() {
248
// warn but do the right thing.
249
element.innerHTML = lastMarkup;
250
spyOn(console, 'error');
245
- var instance = ReactDOM.render(<TestComponent name="y" />, element);
251
+ instance = ReactDOM.render(<TestComponent name="y" />, element);
252
expect(mountCount).toEqual(4);
253
expect(console.error.argsForCall.length).toBe(1);
254
expect(element.innerHTML.length > 0).toBe(true);
255
expect(element.innerHTML).not.toEqual(lastMarkup);
256
251
- // Ensure the events system works
252
- expect(numClicks).toEqual(0);
253
- ReactTestUtils.Simulate.click(ReactDOM.findDOMNode(instance.refs.span));
257
+ // Ensure the events system works after markup mismatch.
258
expect(numClicks).toEqual(1);
259
+ ReactTestUtils.Simulate.click(ReactDOM.findDOMNode(instance.refs.span));
260
+ expect(numClicks).toEqual(2);
261
});
262
263
it('should throw with silly args', function() {