// ABOUTME: Jest setup file for Pierre Mobile app tests
// ABOUTME: Configures mocks for React Native modules
// Mock react-native-gesture-handler
jest.mock('react-native-gesture-handler', () => {
const View = require('react-native').View;
const TouchableOpacity = require('react-native').TouchableOpacity;
return {
GestureHandlerRootView: View,
TouchableOpacity: TouchableOpacity,
Swipeable: View,
DrawerLayout: View,
State: {},
PanGestureHandler: View,
BaseButton: View,
RectButton: View,
ScrollView: require('react-native').ScrollView,
FlatList: require('react-native').FlatList,
};
});
// Mock AsyncStorage
jest.mock('@react-native-async-storage/async-storage', () =>
require('@react-native-async-storage/async-storage/jest/async-storage-mock')
);
// Mock expo-secure-store
jest.mock('expo-secure-store', () => ({
getItemAsync: jest.fn(() => Promise.resolve(null)),
setItemAsync: jest.fn(() => Promise.resolve()),
deleteItemAsync: jest.fn(() => Promise.resolve()),
}));
// Mock expo-web-browser
jest.mock('expo-web-browser', () => ({
openBrowserAsync: jest.fn(() => Promise.resolve({ type: 'success' })),
}));