diff --git a/.gitignore b/.gitignore index 38d9032e8..b38c87929 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ node_modules *.log .eslintcache build +.idea diff --git a/src/__tests__/fireEvent.test.js b/src/__tests__/fireEvent.test.js index d8f34f558..845a1c2cd 100644 --- a/src/__tests__/fireEvent.test.js +++ b/src/__tests__/fireEvent.test.js @@ -29,6 +29,14 @@ const CustomEventComponent = ({ onCustomEvent }) => ( ); +const MyCustomButton = ({ handlePress }) => ( + +); + +const CustomEventComponentWithCustomName = ({ handlePress }) => ( + +); + describe('fireEvent', () => { test('should invoke specified event', () => { const onPressMock = jest.fn(); @@ -128,3 +136,15 @@ test('fireEvent.changeText', () => { expect(onChangeTextMock).toHaveBeenCalledWith(CHANGE_TEXT); }); + +test('custom component with custom event name', () => { + const handlePress = jest.fn(); + + const { getByTestId } = render( + + ); + + fireEvent(getByTestId('my-custom-button'), 'handlePress'); + + expect(handlePress).toHaveBeenCalled(); +}); diff --git a/src/fireEvent.js b/src/fireEvent.js index b2c49af78..455966219 100644 --- a/src/fireEvent.js +++ b/src/fireEvent.js @@ -7,6 +7,8 @@ const findEventHandler = (element: ReactTestInstance, eventName: string) => { if (typeof element.props[eventHandler] === 'function') { return element.props[eventHandler]; + } else if (typeof element.props[eventName] === 'function') { + return element.props[eventName]; } // Do not bubble event to the root element