// Jest setup for React Native testing import '@testing-library/react-native/extend-expect'; // Mock expo modules jest.mock('expo-linear-gradient', () => ({ LinearGradient: 'LinearGradient', })); jest.mock('expo-secure-store', () => ({ setItemAsync: jest.fn(() => Promise.resolve()), getItemAsync: jest.fn(() => Promise.resolve(null)), deleteItemAsync: jest.fn(() => Promise.resolve()), })); jest.mock('expo-local-authentication', () => ({ authenticateAsync: jest.fn(() => Promise.resolve({ success: true }) ), hasHardwareAsync: jest.fn(() => Promise.resolve(true)), isEnrolledAsync: jest.fn(() => Promise.resolve(true)), })); // Mock AsyncStorage jest.mock('@react-native-async-storage/async-storage', () => require('@react-native-async-storage/async-storage/jest/async-storage-mock') ); // Mock Polkadot.js jest.mock('@polkadot/api', () => ({ ApiPromise: { create: jest.fn(() => Promise.resolve({ isReady: Promise.resolve(true), query: {}, tx: {}, rpc: {}, }) ), }, WsProvider: jest.fn(), })); // Mock Supabase jest.mock('./src/lib/supabase', () => ({ supabase: { auth: { signInWithPassword: jest.fn(), signUp: jest.fn(), signOut: jest.fn(), getSession: jest.fn(), }, from: jest.fn(() => ({ select: jest.fn().mockReturnThis(), insert: jest.fn().mockReturnThis(), update: jest.fn().mockReturnThis(), delete: jest.fn().mockReturnThis(), eq: jest.fn().mockReturnThis(), order: jest.fn().mockReturnThis(), })), }, })); // Silence console warnings in tests global.console = { ...console, warn: jest.fn(), error: jest.fn(), };