diff --git a/src/__tests__/fireEvent.test.js b/src/__tests__/fireEvent.test.js index cd273dc1c..e21da6835 100644 --- a/src/__tests__/fireEvent.test.js +++ b/src/__tests__/fireEvent.test.js @@ -91,13 +91,19 @@ describe('fireEvent', () => { test('fireEvent.press', () => { const onPressMock = jest.fn(); const text = 'Fireevent press'; + const eventData = { + nativeEvent: { + pageX: 20, + pageY: 30, + }, + }; const { getByText } = render( ); - fireEvent.press(getByText(text)); + fireEvent.press(getByText(text), eventData); - expect(onPressMock).toHaveBeenCalled(); + expect(onPressMock).toHaveBeenCalledWith(eventData); }); test('fireEvent.scroll', () => { diff --git a/src/fireEvent.js b/src/fireEvent.js index ffb6df173..8447c4b8c 100644 --- a/src/fireEvent.js +++ b/src/fireEvent.js @@ -105,8 +105,8 @@ const invokeEvent = ( const toEventHandlerName = (eventName: string) => `on${eventName.charAt(0).toUpperCase()}${eventName.slice(1)}`; -const pressHandler = (element: ReactTestInstance): void => - invokeEvent(element, 'press', pressHandler); +const pressHandler = (element: ReactTestInstance, ...data: Array): void => + invokeEvent(element, 'press', pressHandler, ...data); const changeTextHandler = ( element: ReactTestInstance, ...data: Array diff --git a/typings/index.d.ts b/typings/index.d.ts index d42639d53..2003c2272 100644 --- a/typings/index.d.ts +++ b/typings/index.d.ts @@ -321,7 +321,7 @@ export type FireEventFunction = ( ) => any; export type FireEventAPI = FireEventFunction & { - press: (element: ReactTestInstance) => any; + press: (element: ReactTestInstance, ...data: Array) => any; changeText: (element: ReactTestInstance, ...data: Array) => any; scroll: (element: ReactTestInstance, ...data: Array) => any; }; diff --git a/website/docs/API.md b/website/docs/API.md index c2d57f1a7..18188f3a9 100644 --- a/website/docs/API.md +++ b/website/docs/API.md @@ -225,7 +225,7 @@ fireEvent[eventName](element: ReactTestInstance, ...data: Array): void Convenience methods for common events like: `press`, `changeText`, `scroll`. -### `fireEvent.press: (element: ReactTestInstance) => void` +### `fireEvent.press: (element: ReactTestInstance, ...data: Array) => void` Invokes `press` event handler on the element or parent element in the tree. @@ -234,6 +234,12 @@ import { View, Text, TouchableOpacity } from 'react-native'; import { render, fireEvent } from '@testing-library/react-native'; const onPressMock = jest.fn(); +const eventData = { + nativeEvent: { + pageX: 20, + pageY: 30, + }, +}; const { getByText } = render( @@ -243,8 +249,8 @@ const { getByText } = render( ); -fireEvent.press(getByText('Press me')); -expect(onPressMock).toHaveBeenCalled(); +fireEvent.press(getByText('Press me'), eventData); +expect(onPressMock).toHaveBeenCalledWith(eventData); ``` ### `fireEvent.changeText: (element: ReactTestInstance, ...data: Array) => void`