diff --git a/src/renderers/dom/client/syntheticEvents/__tests__/SyntheticEvent-test.js b/src/renderers/dom/client/syntheticEvents/__tests__/SyntheticEvent-test.js index d05ebdf367baa..a8799c8f87ad8 100644 --- a/src/renderers/dom/client/syntheticEvents/__tests__/SyntheticEvent-test.js +++ b/src/renderers/dom/client/syntheticEvents/__tests__/SyntheticEvent-test.js @@ -144,7 +144,10 @@ describe('SyntheticEvent', function() { ); }); - it('should properly log warnings when events simulated with rendered components', function() { + // TODO: reenable this test. We are currently silencing these warnings when + // using TestUtils.Simulate to avoid spurious warnings that result from the + // way we simulate events. + xit('should properly log warnings when events simulated with rendered components', function() { spyOn(console, 'error'); var event; var element = document.createElement('div'); diff --git a/src/test/ReactTestUtils.js b/src/test/ReactTestUtils.js index f331bf6e22b95..8cc08615eea85 100644 --- a/src/test/ReactTestUtils.js +++ b/src/test/ReactTestUtils.js @@ -498,6 +498,9 @@ function makeSimulator(eventType) { fakeNativeEvent, node ); + // Since we aren't using pooling, always persist the event. This will make + // sure it's marked and won't warn when setting additional properties. + event.persist(); Object.assign(event, eventData); if (dispatchConfig.phasedRegistrationNames) { diff --git a/src/test/__tests__/ReactTestUtils-test.js b/src/test/__tests__/ReactTestUtils-test.js index a7cf4ab846536..81fda9cebf652 100644 --- a/src/test/__tests__/ReactTestUtils-test.js +++ b/src/test/__tests__/ReactTestUtils-test.js @@ -474,6 +474,29 @@ describe('ReactTestUtils', function() { expect(handler).not.toHaveBeenCalled(); }); + it('should not warn when simulating events with extra properties', function() { + spyOn(console, 'error'); + + var CLIENT_X = 100; + + var Component = React.createClass({ + handleClick: function(e) { + expect(e.clientX).toBe(CLIENT_X); + }, + render: function() { + return
; + }, + }); + + var element = document.createElement('div'); + var instance = ReactDOM.render(, element); + ReactTestUtils.Simulate.click( + ReactDOM.findDOMNode(instance), + {clientX: CLIENT_X} + ); + expect(console.error.calls.length).toBe(0); + }); + it('can scry with stateless components involved', function() { var Stateless = () =>

; var SomeComponent = React.createClass({