/** * Simplified Tests for Network Status Detection * (Focusing on core functionality without complex async/timer logic) */ import NetInfo from '@react-native-community/netinfo'; import { getNetworkStatus, isOnline, } from '@/utils/networkStatus'; // Mock NetInfo jest.mock('@react-native-community/netinfo', () => ({ fetch: jest.fn(), addEventListener: jest.fn(), })); describe('Network Status Detection (Simplified)', () => { beforeEach(() => { jest.clearAllMocks(); }); describe('getNetworkStatus', () => { it('should return online when connected', async () => { (NetInfo.fetch as jest.Mock).mockResolvedValue({ isConnected: true }); const status = await getNetworkStatus(); expect(status).toBe('online'); }); it('should return offline when not connected', async () => { (NetInfo.fetch as jest.Mock).mockResolvedValue({ isConnected: false }); const status = await getNetworkStatus(); expect(status).toBe('offline'); }); it('should return unknown on error', async () => { (NetInfo.fetch as jest.Mock).mockRejectedValue(new Error('Network error')); const status = await getNetworkStatus(); expect(status).toBe('unknown'); }); }); describe('isOnline', () => { it('should return true when online', async () => { (NetInfo.fetch as jest.Mock).mockResolvedValue({ isConnected: true }); const online = await isOnline(); expect(online).toBe(true); }); it('should return false when offline', async () => { (NetInfo.fetch as jest.Mock).mockResolvedValue({ isConnected: false }); const online = await isOnline(); expect(online).toBe(false); }); it('should return false when network status is unknown', async () => { (NetInfo.fetch as jest.Mock).mockRejectedValue(new Error('Error')); const online = await isOnline(); expect(online).toBe(false); }); }); });