From 69ba33380ff1ffde4d010e4488f6a54c42b8a880 Mon Sep 17 00:00:00 2001 From: antoine jubin Date: Tue, 24 Sep 2019 17:52:00 +0200 Subject: [PATCH] doc(Scroll): complete fireEvent.scroll example --- docs/API.md | 41 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) diff --git a/docs/API.md b/docs/API.md index 490270e5f..b758e315a 100644 --- a/docs/API.md +++ b/docs/API.md @@ -211,8 +211,10 @@ fireEvent.changeText(getByTestId('text-input'), CHANGE_TEXT); Invokes `scroll` event handler on the element or parent element in the tree. +#### On a `ScrollView` + ```jsx -import { ScrollView, TextInput } from 'react-native'; +import { ScrollView, Text } from 'react-native'; import { render, fireEvent } from 'react-native-testing-library'; const onScrollMock = jest.fn(); @@ -233,6 +235,43 @@ const { getByTestId } = render( fireEvent.scroll(getByTestId('scroll-view'), eventData); ``` +#### On a `FlatList` + +```jsx +import { FlatList, View } from 'react-native'; +import { render, fireEvent } from 'react-native-testing-library'; + +const onEndReached = jest.fn(); +const { getByType } = render( + ({ key: `${key}` }))} + renderItem={() => } + onEndReached={onEndReached} + onEndReachedThreshold={0.2} + /> +); +const eventData = { + nativeEvent: { + contentOffset: { + y: 500, + }, + contentSize: { + // Dimensions of the scrollable content + height: 500, + width: 100, + }, + layoutMeasurement: { + // Dimensions of the device + height: 100, + width: 100, + }, + }, +}; + +fireEvent.scroll(getByType(ScrollView), eventData); +expect(onEndReached).toHaveBeenCalled(); +``` + ## `waitForElement` - [`Example code`](https://github.com/callstack/react-native-testing-library/blob/master/src/__tests__/waitForElement.test.js)