Skip to content

Commit 3735b0e

Browse files
authored
Forward extra data to press event (#828)
1 parent 4e30352 commit 3735b0e

File tree

4 files changed

+20
-8
lines changed

4 files changed

+20
-8
lines changed

src/__tests__/fireEvent.test.js

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,13 +91,19 @@ describe('fireEvent', () => {
9191
test('fireEvent.press', () => {
9292
const onPressMock = jest.fn();
9393
const text = 'Fireevent press';
94+
const eventData = {
95+
nativeEvent: {
96+
pageX: 20,
97+
pageY: 30,
98+
},
99+
};
94100
const { getByText } = render(
95101
<OnPressComponent onPress={onPressMock} text={text} />
96102
);
97103

98-
fireEvent.press(getByText(text));
104+
fireEvent.press(getByText(text), eventData);
99105

100-
expect(onPressMock).toHaveBeenCalled();
106+
expect(onPressMock).toHaveBeenCalledWith(eventData);
101107
});
102108

103109
test('fireEvent.scroll', () => {

src/fireEvent.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -105,8 +105,8 @@ const invokeEvent = (
105105
const toEventHandlerName = (eventName: string) =>
106106
`on${eventName.charAt(0).toUpperCase()}${eventName.slice(1)}`;
107107

108-
const pressHandler = (element: ReactTestInstance): void =>
109-
invokeEvent(element, 'press', pressHandler);
108+
const pressHandler = (element: ReactTestInstance, ...data: Array<any>): void =>
109+
invokeEvent(element, 'press', pressHandler, ...data);
110110
const changeTextHandler = (
111111
element: ReactTestInstance,
112112
...data: Array<any>

typings/index.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -321,7 +321,7 @@ export type FireEventFunction = (
321321
) => any;
322322

323323
export type FireEventAPI = FireEventFunction & {
324-
press: (element: ReactTestInstance) => any;
324+
press: (element: ReactTestInstance, ...data: Array<any>) => any;
325325
changeText: (element: ReactTestInstance, ...data: Array<any>) => any;
326326
scroll: (element: ReactTestInstance, ...data: Array<any>) => any;
327327
};

website/docs/API.md

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,7 @@ fireEvent[eventName](element: ReactTestInstance, ...data: Array<any>): void
225225

226226
Convenience methods for common events like: `press`, `changeText`, `scroll`.
227227

228-
### `fireEvent.press: (element: ReactTestInstance) => void`
228+
### `fireEvent.press: (element: ReactTestInstance, ...data: Array<any>) => void`
229229

230230
Invokes `press` event handler on the element or parent element in the tree.
231231

@@ -234,6 +234,12 @@ import { View, Text, TouchableOpacity } from 'react-native';
234234
import { render, fireEvent } from '@testing-library/react-native';
235235

236236
const onPressMock = jest.fn();
237+
const eventData = {
238+
nativeEvent: {
239+
pageX: 20,
240+
pageY: 30,
241+
},
242+
};
237243

238244
const { getByText } = render(
239245
<View>
@@ -243,8 +249,8 @@ const { getByText } = render(
243249
</View>
244250
);
245251

246-
fireEvent.press(getByText('Press me'));
247-
expect(onPressMock).toHaveBeenCalled();
252+
fireEvent.press(getByText('Press me'), eventData);
253+
expect(onPressMock).toHaveBeenCalledWith(eventData);
248254
```
249255

250256
### `fireEvent.changeText: (element: ReactTestInstance, ...data: Array<any>) => void`

0 commit comments

Comments
 (0)