Description
Description
Issue with typing on the new version 2.4.0, the tests where we use Scrollable View (FlatList, ScrollView ...) does not pass anymore
TypeError: _RNGestureHandlerModule.default.flushOperations is not a function
at Timeout._onTimeout (node_modules/react-native-gesture-handler/lib/commonjs/handlers/gestureHandlerCommon.ts:194:30)
Platforms
- iOS
- Android
- Web
Screenshots
Steps To Reproduce
-
update to new version 2.4.0 from version 2.3.1
-
write component that uses ScrollView for example
-
run test
-
test will fail with following error => ` TypeError: _RNGestureHandlerModule.default.flushOperations is not a function
at Timeout._onTimeout (node_modules/react-native-gesture-handler/lib/commonjs/handlers/gestureHandlerCommon.ts:194:30)`
Expected behavior
Actual behavior
Snack or minimal code example
`import { ReactElement } from 'react';
import { View, useWindowDimensions, ActivityIndicator } from 'react-native';
import { ScrollView } from 'react-native-gesture-handler';
import RenderHTML from 'react-native-render-html';
import { useNavigation, useRoute } from '@react-navigation/native';
import { useTranslation } from 'src/Shared/Config';
import { Color, routeNames, sharedStyles, tagsStyle } from 'src/Shared/constants';
import { SettingsHeader } from '../SubComponents';
import { styles } from './PrivacyPolicyScreen.style';
import { SettingsScreenProps, SettingsTermsOfUseProps } from 'src/Router/types.router';
export const PrivacyPolicyScreen = (): ReactElement => {
const { t } = useTranslation();
const {
params: { uri },
} = useRoute<SettingsTermsOfUseProps['route']>();
const { goBack, navigate } = useNavigation<SettingsScreenProps['navigation']>();
const { width: screenWidth } = useWindowDimensions();
const onClose = () => {
navigate(routeNames.App);
};
return (
<View testID="privacyPolicyScreenContainer" style={[sharedStyles.fullFlex, styles.container]}>
<SettingsHeader title={t('settings_privacy_policy_item')} onLeftPress={goBack} onRightPress={onClose} />
<RenderHTML
source={{ uri }}
contentWidth={screenWidth}
tagsStyles={tagsStyle}
remoteLoadingView={() => }
/>
);
};
`
====== Jest Test ======
` it('click on terms of use to the correct page', async () => {
const { getByTestId } = render();
const termOfUseEntry = getByTestId('testId-settings_page_item_terms_use');
expect(termOfUseEntry).toBeDefined();
await act(async () => {
fireEvent.press(termOfUseEntry);
});
await waitFor(() => expect(navContext.navigate).toHaveBeenCalledTimes(1));
expect(navContext.navigate).toHaveBeenNthCalledWith(1, routeNames.SettingsTermsOfUse, {
uri: 'https://partoo-mobile-app.s3.eu-west-1.amazonaws.com/terms-of-use/terms-of-use_fr.html',
});
});`
==== Error ====
TypeError: _RNGestureHandlerModule.default.flushOperations is not a function
at Timeout._onTimeout (node_modules/react-native-gesture-handler/lib/commonjs/handlers/gestureHandlerCommon.ts:194:30)
Package versions
- React: 17.0.2
- React Native: 0.67.4.
- React Native Gesture Handler: 2.4.0
- React Native Reanimated:2.7.0