2024-02-26 10:43:02 +00:00
|
|
|
// https://github.com/facebook/react/issues/20756#issuecomment-780927519
|
|
|
|
import 'react-16-node-hanging-test-fix';
|
|
|
|
|
2024-01-25 14:11:07 +00:00
|
|
|
import React from 'react';
|
|
|
|
import '@testing-library/react-native/extend-expect';
|
2022-03-29 16:09:44 +00:00
|
|
|
import mockClipboard from '@react-native-clipboard/clipboard/jest/clipboard-mock.js';
|
2022-08-19 19:53:40 +00:00
|
|
|
import mockAsyncStorage from '@react-native-async-storage/async-storage/jest/async-storage-mock';
|
2022-06-10 20:33:48 +00:00
|
|
|
|
2022-08-19 19:53:40 +00:00
|
|
|
jest.mock('@react-native-async-storage/async-storage', () => mockAsyncStorage);
|
2022-03-29 16:09:44 +00:00
|
|
|
|
2023-10-19 13:38:57 +00:00
|
|
|
jest.mock('react-native-safe-area-context', () => {
|
|
|
|
const inset = { top: 0, right: 0, bottom: 0, left: 0 };
|
|
|
|
return {
|
|
|
|
...jest.requireActual('react-native-safe-area-context'),
|
|
|
|
SafeAreaProvider: jest.fn(({ children }) => children),
|
|
|
|
SafeAreaConsumer: jest.fn(({ children }) => children(inset)),
|
|
|
|
useSafeAreaInsets: jest.fn(() => inset),
|
|
|
|
useSafeAreaFrame: jest.fn(() => ({ x: 0, y: 0, width: 390, height: 844 }))
|
|
|
|
};
|
|
|
|
});
|
|
|
|
|
2024-02-19 14:08:17 +00:00
|
|
|
jest.mock('./node_modules/react-native/Libraries/Interaction/InteractionManager', () => ({
|
|
|
|
runAfterInteractions: callback => callback()
|
|
|
|
}));
|
|
|
|
|
2023-10-19 13:38:57 +00:00
|
|
|
// @ts-ignore
|
2022-08-19 19:53:40 +00:00
|
|
|
global.__reanimatedWorkletInit = () => {};
|
|
|
|
jest.mock('react-native-reanimated', () => require('react-native-reanimated/mock'));
|
2022-06-06 13:23:49 +00:00
|
|
|
|
2022-03-29 16:09:44 +00:00
|
|
|
jest.mock('@react-native-clipboard/clipboard', () => mockClipboard);
|
|
|
|
|
|
|
|
jest.mock('react-native-file-viewer', () => ({
|
|
|
|
open: jest.fn(() => null)
|
|
|
|
}));
|
|
|
|
|
2022-06-06 13:23:49 +00:00
|
|
|
jest.mock('expo-haptics', () => jest.fn(() => null));
|
|
|
|
|
2024-02-19 14:08:17 +00:00
|
|
|
jest.mock('expo-av', () => ({
|
|
|
|
...jest.requireActual('expo-av'),
|
|
|
|
Audio: {
|
|
|
|
...jest.requireActual('expo-av').Audio,
|
|
|
|
getPermissionsAsync: jest.fn(() => ({ status: 'granted', granted: true, canAskAgain: true })),
|
|
|
|
Recording: jest.fn(() => ({
|
|
|
|
prepareToRecordAsync: jest.fn(),
|
|
|
|
startAsync: jest.fn(),
|
|
|
|
stopAndUnloadAsync: jest.fn(),
|
|
|
|
setOnRecordingStatusUpdate: jest.fn()
|
|
|
|
}))
|
|
|
|
}
|
|
|
|
}));
|
|
|
|
|
|
|
|
jest.mock('./app/lib/methods/search', () => ({
|
|
|
|
search: () => []
|
|
|
|
}));
|
|
|
|
|
2023-08-18 17:48:33 +00:00
|
|
|
jest.mock('./app/lib/database', () => jest.fn(() => null));
|
2022-06-10 20:33:48 +00:00
|
|
|
|
2024-01-25 14:11:07 +00:00
|
|
|
jest.mock('./app/containers/MessageComposer/components/EmojiKeyboard', () => jest.fn(() => null));
|
|
|
|
|
|
|
|
jest.mock('./app/lib/hooks/useFrequentlyUsedEmoji', () => ({
|
|
|
|
useFrequentlyUsedEmoji: () => ({
|
|
|
|
frequentlyUsed: [],
|
|
|
|
loaded: true
|
|
|
|
})
|
|
|
|
}));
|
|
|
|
|
|
|
|
jest.mock('./app/lib/database/services/Message', () => ({
|
|
|
|
getMessageById: messageId => ({
|
|
|
|
id: messageId,
|
|
|
|
rid: 'rid',
|
|
|
|
msg: `Message ${messageId}`
|
|
|
|
})
|
|
|
|
}));
|
|
|
|
|
2024-02-19 14:08:17 +00:00
|
|
|
jest.mock('@react-navigation/native', () => {
|
|
|
|
const actualNav = jest.requireActual('@react-navigation/native');
|
|
|
|
const { useEffect } = require('react');
|
|
|
|
return {
|
|
|
|
...actualNav,
|
|
|
|
useFocusEffect: useEffect,
|
|
|
|
isFocused: () => true,
|
|
|
|
useIsFocused: () => true,
|
|
|
|
useRoute: () => jest.fn(),
|
|
|
|
useNavigation: () => ({
|
|
|
|
navigate: jest.fn(),
|
|
|
|
addListener: () => jest.fn()
|
|
|
|
}),
|
|
|
|
createNavigationContainerRef: jest.fn(),
|
feat: new audio player (#5160)
* feat: media auto-download view
* media auto download view completed and saving the settings in mmkv
* audio download preference
* audio auto download when the user who sent the audio is the same logged on mobile
* creation of isAutoDownloadEnabled, evaluate hist hook, Image Full Size preload done
* minor tweak audio show play button after download
* refactor audioFile to handleMediaDownload and fixed the audio download
* desestructured params to download too
* image download and autoDownload, algo fix the formatAttachmentUrl to show the image from local
* add the possibility to cancel image download and clear local images
* refactor blur component
* video download and auto download, also keeped the behavior to download unsuportted videos to the gallery
* add the possibility to start downloading a video, then exit the room, back again to room and cancel the video previously downloading
* remove the custom hook for autoDownload
* remove blurcomponent, fix the blur style in image.tsx, minor tweak video function name
* send messageId to video
* introducing the reducer to keep the downloads in progress
* create a media download selector
* remove all the redux stuff and do the same as file upload
* video download behavior
* done for image and audio
* fix the try catch download media
* clean up
* image container uiKit
* fix lint
* change rn-fetch-blob to expo-filesystem
* add pt-br
* pass the correct message id when there is an attachment on reply
* refactor some changes requested
* fix audio and move the netInfo from autoDownloadPreference to redux
* variable isAutoDownloadEnable name and handleMediaDownload getExtension
* message/Image refactored, change the component to show the image from FastImage to Image
* refactor handleMediaDownload and deleteMedia
* minor tweak
* refactor audio
* refactor video
* fix the type on the messagesView(the view of files)
* minor tweak
* fix the name of searchMediaFIleAsync's result
* minor tweak, add the default behavior, add the OFF as label
* minor tweaks
* verify if the media auto download exists on settings view
* fix media auto download view layout and minor tweak wifi
* avoid auto download from reply
* minor tweak at comment
* tweak list.section
* change the name to netInfoState and Local_document_directory
* remove mediaType and refactor audio and image
* separate blurview
* thumbnail video and video behavior
* add Audio to i18n and minor tweak
* set the blur as always dark and add the possibility to overlay
* don't need to controle the filepath in the view
* fix the loading in image and video at begin
* save the file with a similar filename as expected
* removed the necessity of messageId or id
* minor tweak
* switch useLayoutEffect to useEffect
* avoid onpress do some edge case because of cached at video
* minor tweak
* tweak at audio comment extension
* minor tweak type userpreferences
* remove test id from mediaAutoDownloadView
* change action's name to SET_NET_INFO_STATE
* caching and deleting video's thumbnails
* remove generate thumbnail
* minor tweak in image
* update camera-roll and save the file from local url
* remove local_cache_directory and deleteThumbnail
* update blur to fix error on android
* first commit
* fix togglePlayPause
* separate audio to a folder inside components and minor tweak attachment
* created the slider with text
* play/pause button, currentTime equal the sound, can change the slider and reflect to the sound
* play/pause, track is working and onEnd
* update the icons with play-shaped-filled, pause-shape-filled, loading
* start the tweaks on layout
* can play multiple audios, pausing the previous to execute the new one
* loading animated
* added the audio rate
* layout fixed
* removed the sound manipulation from Slider to manipulate only in the index
* fix time margin horizontal
* fix play 2 audios and play/pause properly
* change the way we treat the audio
* remove audio copy
* minor tweak
* fix rate state
* remove the PAUSE_AUDIO
* fix unloadAll, add hit slop to slider, show the duration on the first render
* refactor colors to be the same as figmas name
* change the class' name and add the method pauseCurrentAudio
* pause audio when unmount a RoomView and unloadAll when focusing at RoomsListView
* pause audio when entering a thread
* fix where call the pauseCurrentAudio
* moved the player from messageAudio to audioPlayer
* refactor audio component
* remove loading
* update snapshot
* fix colors name
* pauseAudio when roomview is blur
* moved audio from message/component/audio to message/Audio
* add navigation focus to AudioPlayer component and fix the jest
* add the { androidImplementation: 'MediaPlayer' }
* fix action sheet swipe 02-room
* fix action sheet swipe 05-threads
* tweak touchable
* remove react.memo from playbutton
* hitSlop
* speed playback from array
* textinputprops
* tweak at names
* minor tweak at onEnd
* minor tweak at names
* update styles
* thumb seek size
* change marginBottom
* add the clamp, adjust the thumb position, remove the necessity of OnEndGestureHandler
* change the utils to constants
* change to audioState
* fix the seek for android
* TDownloadState
* speed array
* pause audio from messagesView when open the files
* update test
* minor tweak
* change the time after ony one click, fixes the thumb to move sync with the click
* Fix seek
* minor tweak Sound to Audio.Sound
* name of Icon
* enable PlaybackSpeed only when playing the audio
* playbackSpeed to mmkv
* mock implementation
* create native button
* minor tweak
* minor tweaks
* playbackSpeed after loadAudio
* avoid show the error when try to setRate without audio
* add messageID to differ audios inside a quote/forward from original one
* unloadRoomAudios instead of unloadAllAudios inside the roomsListView
* minor tweak
---------
Co-authored-by: Diego Mello <diegolmello@gmail.com>
Co-authored-by: Gleidson Daniel Silva <gleidson10daniel@hotmail.com>
2023-11-20 14:13:15 +00:00
|
|
|
navigate: jest.fn(),
|
2024-02-19 14:08:17 +00:00
|
|
|
addListener: jest.fn(() => jest.fn())
|
|
|
|
};
|
|
|
|
});
|
2022-06-10 20:33:48 +00:00
|
|
|
|
|
|
|
jest.mock('react-native-notifications', () => ({
|
|
|
|
Notifications: {
|
|
|
|
getInitialNotification: jest.fn(() => Promise.resolve()),
|
|
|
|
registerRemoteNotifications: jest.fn(),
|
|
|
|
events: () => ({
|
|
|
|
registerRemoteNotificationsRegistered: jest.fn(),
|
|
|
|
registerRemoteNotificationsRegistrationFailed: jest.fn(),
|
|
|
|
registerNotificationReceivedForeground: jest.fn(),
|
|
|
|
registerNotificationReceivedBackground: jest.fn(),
|
|
|
|
registerNotificationOpened: jest.fn()
|
|
|
|
})
|
|
|
|
}
|
|
|
|
}));
|
2022-06-22 12:24:25 +00:00
|
|
|
|
|
|
|
jest.mock('@gorhom/bottom-sheet', () => {
|
|
|
|
const react = require('react-native');
|
|
|
|
return {
|
|
|
|
__esModule: true,
|
|
|
|
default: react.View,
|
|
|
|
BottomSheetScrollView: react.ScrollView
|
|
|
|
};
|
|
|
|
});
|
2022-07-20 21:02:18 +00:00
|
|
|
|
|
|
|
// If you need to manually mock a lib use this mock pattern and set exports.
|
|
|
|
jest.mock('react-native-math-view', () => {
|
|
|
|
const react = require('react-native');
|
|
|
|
return {
|
|
|
|
__esModule: true,
|
|
|
|
default: react.View, // Default export
|
|
|
|
MathText: react.View // {...} Named export
|
|
|
|
};
|
|
|
|
});
|
feat: new audio player (#5160)
* feat: media auto-download view
* media auto download view completed and saving the settings in mmkv
* audio download preference
* audio auto download when the user who sent the audio is the same logged on mobile
* creation of isAutoDownloadEnabled, evaluate hist hook, Image Full Size preload done
* minor tweak audio show play button after download
* refactor audioFile to handleMediaDownload and fixed the audio download
* desestructured params to download too
* image download and autoDownload, algo fix the formatAttachmentUrl to show the image from local
* add the possibility to cancel image download and clear local images
* refactor blur component
* video download and auto download, also keeped the behavior to download unsuportted videos to the gallery
* add the possibility to start downloading a video, then exit the room, back again to room and cancel the video previously downloading
* remove the custom hook for autoDownload
* remove blurcomponent, fix the blur style in image.tsx, minor tweak video function name
* send messageId to video
* introducing the reducer to keep the downloads in progress
* create a media download selector
* remove all the redux stuff and do the same as file upload
* video download behavior
* done for image and audio
* fix the try catch download media
* clean up
* image container uiKit
* fix lint
* change rn-fetch-blob to expo-filesystem
* add pt-br
* pass the correct message id when there is an attachment on reply
* refactor some changes requested
* fix audio and move the netInfo from autoDownloadPreference to redux
* variable isAutoDownloadEnable name and handleMediaDownload getExtension
* message/Image refactored, change the component to show the image from FastImage to Image
* refactor handleMediaDownload and deleteMedia
* minor tweak
* refactor audio
* refactor video
* fix the type on the messagesView(the view of files)
* minor tweak
* fix the name of searchMediaFIleAsync's result
* minor tweak, add the default behavior, add the OFF as label
* minor tweaks
* verify if the media auto download exists on settings view
* fix media auto download view layout and minor tweak wifi
* avoid auto download from reply
* minor tweak at comment
* tweak list.section
* change the name to netInfoState and Local_document_directory
* remove mediaType and refactor audio and image
* separate blurview
* thumbnail video and video behavior
* add Audio to i18n and minor tweak
* set the blur as always dark and add the possibility to overlay
* don't need to controle the filepath in the view
* fix the loading in image and video at begin
* save the file with a similar filename as expected
* removed the necessity of messageId or id
* minor tweak
* switch useLayoutEffect to useEffect
* avoid onpress do some edge case because of cached at video
* minor tweak
* tweak at audio comment extension
* minor tweak type userpreferences
* remove test id from mediaAutoDownloadView
* change action's name to SET_NET_INFO_STATE
* caching and deleting video's thumbnails
* remove generate thumbnail
* minor tweak in image
* update camera-roll and save the file from local url
* remove local_cache_directory and deleteThumbnail
* update blur to fix error on android
* first commit
* fix togglePlayPause
* separate audio to a folder inside components and minor tweak attachment
* created the slider with text
* play/pause button, currentTime equal the sound, can change the slider and reflect to the sound
* play/pause, track is working and onEnd
* update the icons with play-shaped-filled, pause-shape-filled, loading
* start the tweaks on layout
* can play multiple audios, pausing the previous to execute the new one
* loading animated
* added the audio rate
* layout fixed
* removed the sound manipulation from Slider to manipulate only in the index
* fix time margin horizontal
* fix play 2 audios and play/pause properly
* change the way we treat the audio
* remove audio copy
* minor tweak
* fix rate state
* remove the PAUSE_AUDIO
* fix unloadAll, add hit slop to slider, show the duration on the first render
* refactor colors to be the same as figmas name
* change the class' name and add the method pauseCurrentAudio
* pause audio when unmount a RoomView and unloadAll when focusing at RoomsListView
* pause audio when entering a thread
* fix where call the pauseCurrentAudio
* moved the player from messageAudio to audioPlayer
* refactor audio component
* remove loading
* update snapshot
* fix colors name
* pauseAudio when roomview is blur
* moved audio from message/component/audio to message/Audio
* add navigation focus to AudioPlayer component and fix the jest
* add the { androidImplementation: 'MediaPlayer' }
* fix action sheet swipe 02-room
* fix action sheet swipe 05-threads
* tweak touchable
* remove react.memo from playbutton
* hitSlop
* speed playback from array
* textinputprops
* tweak at names
* minor tweak at onEnd
* minor tweak at names
* update styles
* thumb seek size
* change marginBottom
* add the clamp, adjust the thumb position, remove the necessity of OnEndGestureHandler
* change the utils to constants
* change to audioState
* fix the seek for android
* TDownloadState
* speed array
* pause audio from messagesView when open the files
* update test
* minor tweak
* change the time after ony one click, fixes the thumb to move sync with the click
* Fix seek
* minor tweak Sound to Audio.Sound
* name of Icon
* enable PlaybackSpeed only when playing the audio
* playbackSpeed to mmkv
* mock implementation
* create native button
* minor tweak
* minor tweaks
* playbackSpeed after loadAudio
* avoid show the error when try to setRate without audio
* add messageID to differ audios inside a quote/forward from original one
* unloadRoomAudios instead of unloadAllAudios inside the roomsListView
* minor tweak
---------
Co-authored-by: Diego Mello <diegolmello@gmail.com>
Co-authored-by: Gleidson Daniel Silva <gleidson10daniel@hotmail.com>
2023-11-20 14:13:15 +00:00
|
|
|
|
2024-01-25 14:11:07 +00:00
|
|
|
jest.mock('react-native-ui-lib/keyboard', () => {
|
|
|
|
const react = jest.requireActual('react');
|
|
|
|
return {
|
|
|
|
__esModule: true,
|
|
|
|
KeyboardAccessoryView: react.forwardRef((props, ref) => {
|
|
|
|
const MockName = 'keyboard-accessory-view-mock';
|
|
|
|
return <MockName>{props.renderContent()}</MockName>;
|
|
|
|
})
|
|
|
|
};
|
|
|
|
});
|