const WebSocket = require('ws'); const { NativeModules } = require('react-native'); require('@react-native-async-storage/async-storage/jest/async-storage-mock'); require('react-native-gesture-handler/jestSetup'); require('react-native-reanimated/lib/reanimated2/jestUtils').setUpTests(); jest.mock('@react-native-async-storage/async-storage', () => mockAsyncStorage); jest.mock('react-native-navigation', () => ({ getNavigationConstants: () => ({ constants: [] }), Navigation: { constants: async () => { } } })); jest.mock("react-native-background-timer", () => ({})) jest.mock('react-native-languages', () => ({ RNLanguages: { language: 'en', languages: ['en'], }, default: { language: 'en', locale: 'en' }, })); jest.mock('react-native-permissions', () => require('react-native-permissions/mock'), ); jest.mock('@react-native-community/audio-toolkit', () => ({ Recorder: jest.fn().mockImplementation(() => ({ prepare: jest.fn(), record: jest.fn(), toggleRecord: jest.fn(), pause: jest.fn(), stop: jest.fn(), on: jest.fn(), })), Player: jest.fn().mockImplementation(() => ({ prepare: jest.fn(), playPause: jest.fn(), play: jest.fn(), pause: jest.fn(), stop: jest.fn(), seek: jest.fn(), on: jest.fn(), })), MediaStates: { DESTROYED: -2, ERROR: -1, IDLE: 0, PREPARING: 1, PREPARED: 2, SEEKING: 3, PLAYING: 4, RECORDING: 4, PAUSED: 5 } })); NativeModules.ReactLocalization = { language: 'en', locale: 'en' }; global.navigator = { userAgent: 'node', } global.WebSocket = WebSocket