diff --git a/src/modules/createDOMElement/__tests__/__snapshots__/index-test.js.snap b/src/modules/createDOMElement/__tests__/__snapshots__/index-test.js.snap index d0eeb4fa..75c2d6f7 100644 --- a/src/modules/createDOMElement/__tests__/__snapshots__/index-test.js.snap +++ b/src/modules/createDOMElement/__tests__/__snapshots__/index-test.js.snap @@ -1,5 +1,20 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP +exports[`modules/createDOMElement onClick 1`] = ` +Object { + "_normalized": true, + "changedTouches": Array [], + "pageX": undefined, + "pageY": undefined, + "preventDefault": [Function], + "stopImmediatePropagation": [Function], + "stopPropagation": [Function], + "target": undefined, + "timestamp": 1496876171255, + "touches": Array [], +} +`; + exports[`modules/createDOMElement prop "accessibilityLabel" 1`] = ` { test('renders correct DOM element', () => { @@ -103,6 +103,22 @@ describe('modules/createDOMElement', () => { expect(component).toMatchSnapshot(); }); + test('onClick', done => { + const onClick = e => { + e.nativeEvent.timestamp = 1496876171255; + expect(e.nativeEvent).toMatchSnapshot(); + done(); + }; + const component = shallow(createDOMElement('span', { onClick })); + component.find('span').simulate('click', { + nativeEvent: { + preventDefault() {}, + stopImmediatePropagation() {}, + stopPropagation() {} + } + }); + }); + test('prop "testID"', () => { const component = render(createDOMElement('span', { testID: 'Example.testID' })); expect(component).toMatchSnapshot(); diff --git a/src/modules/createDOMElement/index.js b/src/modules/createDOMElement/index.js index f02d30d1..a31b6eff 100644 --- a/src/modules/createDOMElement/index.js +++ b/src/modules/createDOMElement/index.js @@ -44,10 +44,11 @@ const createDOMElement = (component, props) => { // normalize DOM events to match React Native events // TODO: move this out of the render path - Object.keys(domProps).forEach(prop => { - const isEventHandler = typeof prop === 'function' && eventHandlerNames[prop]; + Object.keys(domProps).forEach(propName => { + const prop = domProps[propName]; + const isEventHandler = typeof prop === 'function' && eventHandlerNames[propName]; if (isEventHandler) { - domProps[prop] = wrapEventHandler(prop); + domProps[propName] = wrapEventHandler(prop); } });