verdnatura-chat/e2e
Diego Mello fc9e9a4f2a
Merge 4.25.0 into single-server (#3790)
* Chore: Migrate DefaultBrowserView to Typescript (#3488)

Co-authored-by: AlexAlexandre <alexalexandrejr@gmail.com>

* Chore: Migrate PickerView to Typescript (#3501)

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* Chore: Migrate AttachmentView to Typescript (#3483)

Co-authored-by: AlexAlexandre <alexalexandrejr@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>

* Chore: Migrate MarkdownTableView to Typescript (#3500)

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* Chore: Migrate E2EEncryptionSecurityView to Typescript (#3489)

Co-authored-by: AlexAlexandre <alexalexandrejr@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>

* Chore: Migrate E2EEnterYourPasswordView to Typescript (#3490)

Co-authored-by: AlexAlexandre <alexalexandrejr@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>

* Chore: Migrate E2EHowItWorksView to Typescript (#3492)

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* Chore: Migrate E2ESaveYourPasswordView to Typescript (#3493)

Co-authored-by: AlexAlexandre <alexalexandrejr@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>

* Chore: Migrate ForgotPasswordView to Typescript (#3496)

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* Chore: Migrate ForwardLivechatView to Typescript (#3497)

Co-authored-by: AlexAlexandre <alexalexandrejr@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>

* Chore: Migrate JitsiMeetView to Typescript (#3498)

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [FIX] Push notifications user preference not syncing correctly (#3494)

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [FIX] Display prefs showing wrong header icon on tablet (#3510)

* Merge 4.22.0 into master (#3523)

* Tests: Make Detox work on Android (#3051)

* Chore: Migrate NewMessageView to Typescript (#3502)

* Chore: Migrate ScreenLockConfigView to Typescript (#3517)

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* Chore: Migrate ScreenLockedView to Typescript (#3515)

* Chore: Migrate SecurityPrivacyView to Typescript (#3518)

* Chore: Migrate SelectListView to Typescript (#3519)

* Chore: Migrate SelectServerView to Typescript (#3521)

Co-authored-by: AlexAlexandre <alexalexandrejr@gmail.com>

* Chore: Migrate SetUsernameView to Typescript (#3526)

* Chore: Migrate ThemeView to Typescript (#3522)

Co-authored-by: AlexAlexandre <alexalexandrejr@gmail.com>

* Chore: Migrate StatusView to Typescript (#3527)

Co-authored-by: AlexAlexandre <alexalexandrejr@gmail.com>

* Chore: Migrate ShareListView to Typescript (#3459)

Co-authored-by: Gerzon Z <gerzonc@icloud.com>

* Chore: Migrate TeamChannelsView to Typescript (#3532)

Co-authored-by: Gerzon Z <gerzonzcanario@gmail.com>

* Language update from LingoHub 🤖 (#3529)

Project Name: Rocket.Chat.ReactNative
Project Link: https://translate.lingohub.com/rocketchat/dashboard/rocket-dot-chat-dot-reactnative
User: Robot LingoHub

Easy language translations with LingoHub 🚀

Co-authored-by: Robot LingoHub <robot@lingohub.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>

* Chore: Migrate react-navigation to TypeScript (#3480)

Co-authored-by: AlexAlexandre <alexalexandrejr@gmail.com>

* Bump version to 4.23.0 (#3546)

* [FIX] Certificate stops working after app update on iOS (#3537)

* [IMPROVE] Connection stability (#3531)

* [NEW] Permission for uploading files (#3505)

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [FIX] Files screen stopped listing content on server 4.2 (#3541)

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* Chore: Migrate ModalBlockView to Typescript (#3503)

* Chore: Migrate ModalBlockView to Typescript

* minor tweaks

* update the navigator

Co-authored-by: AlexAlexandre <alexalexandrejr@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>

* Chore: Migrate SelectedUsersView to Typescript (#3520)

Co-authored-by: AlexAlexandre <alexalexandrejr@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [IMPROVE] Remove Omnichannel visitor's navigation history (#3534)

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* Merge 4.23.0 into master (#3574)

* [FIX] Download video/quicktime in iOS (#3581)

* Chore: Migrate Redux to Typescript PoC (#3565)

* Chore: Migrate Model's folder to Typescript (#3564)

* Chore: Migrate lib user preferences to Typescript (#3578)

* Chore: Update React Native Device Info to 8.4.8 (#3560)

* [FIX] Roles rendering on dark theme (#3589)

* fix: Add height verification to fix modal dimension (#3573)

* chore: Change the lib `@types/url-parse` to devDependencies (#3585)

* [FIX] teams.removeMembers mobile usage (#3557)

* Chore: Migrate DisplayPrefsView to Typescript (#3555)

* Chore: Migrate Utils Folder to Typescript (#3544)

Co-authored-by: AlexAlexandre <alexalexandrejr@gmail.com>

* Chore: Migrate ThreadMessagesView to Typescript (#3538)

Co-authored-by: AlexAlexandre <alexalexandrejr@gmail.com>

* [FIX] RoomInfoView displaying different info depending on the origin (#3586)

Co-authored-by: GleidsonDaniel <gleidson10daniel@hotmail.com>

* [FIX] Message parser switch not updating field properly (#3576)

* [FIX] Lint not ignoring Markdown props (#3600)

* Bump version to 4.24.0 (#3601)

* Chore: Migrate notification/push to Typescript (#3587)

* chore: migrate connect to ts and add tests

* chore: add more tests

* Chore: Update react-native-device-info patch-package and pods (#3605)

* [FIX] App crashes when entering server after applying certificate (Android) (#3579)

* chore: migrate redux module encryption to typescript

* chore: migrate customEmoji to typescript and add tests

* chore: create IPreferences interface

* chore: migrate redux module sortPreferences to typescript

* chore: fix IPreference interface and organize import

* chore: migrate to typescript

* chore: migrate usersTyping to typescript

* Add DiscussionDetails and Item for DiscussionsView; update ThreadDetails, BackgroundContainer and DiscussionsView

* chore: migrate settings to typescript

* chore: add interface to IStateAplication

* chore: migrate redux module room to typescript

* update definitions

* chore: fix error on error interface

* [FIX] Joining and leaving messages in teams (#3591)

Co-authored-by: Gleidson Daniel Silva <gleidson10daniel@hotmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>

* minor tweak

* [FIX] TypeScript's errors raised by HOCs (#3535)

Co-authored-by: AlexAlexandre <alexalexandrejr@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>

* chore: migrate redux module roles to typescript

* wip: add IRoles to IAplicationState interface

* add storybooks, update snapshots and DiscussionsView

* Minor tweaks

* Fix lint

* Remove unused import

* chore: migrate redux module inviteUsers to typescript

* chore: migrate messages action to typescript

* chore: fix any interface and change null to empty string

* chore: implements IAplicationState on type

* chore: remove mapDispatchToProps and continue ts migration

* chore: fix types and apply IAplicationState to types

* Migrate redux server action/reducer to ts

* add tests

* [FIX] App crashes when opening a notification while app is closed (#3629)

* [FIX] makeThreadName asserting undefined as non-null (#3628)

* [FIX] Threads' pagination not working (#3631)

* update tests

* chore: update settings value types

* Send missing params to selectServerRequest

* [IMPROVE] Convert HEIC images to JPG and remove compression (#3633)

* update interface

* update action definition

* Move onDiscussionpress logic on message, update SearchHeader and DiscussionDetails component,  add useLayoutEffect at DiscussionsView

* Update interfaces and minor tweaks to DiscussionsView screen and components

* Fix navigation logic and update interfaces

* Minor tweaks

* Undo change on project.pbxproj

* Update project.pbxproj

* Update project.pbxproj

* Remove style.ts

* Minor tweak

* update snapshots

* Merge 4.24.0 into master (#3648)

* Chore: Change console.log to console.error when logging error

* chore: add as string to fix type

* Fix lint

* fix types

* test

* Remove console.log

* test

* [FIX] StoryShots not working for async rendered components (#3677)

* remove console.log

* Add missing DiscussionsView snapshot

* fix build and useless done and async generator

* update snapshot

* Chore: fix build and useless done and async generator (#3678)

* fix build and useless done and async generator

* update snapshot

* Chore: Migrate Database to Typescript (#3580)

Co-authored-by: Gleidson Daniel Silva <gleidson10daniel@hotmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>

* Chore: Migrate redux module permissions to typescript (#3630)

* Chore: Migrate redux module share to typescript (#3612)

* chore: migrate redux module share to typescript

* chore: fix types

* chore: update types

* chore: migrate redux module share to typescript

* remove double import

* chore: fix import

* Chore: Migrate redux module createChannel to typescript (#3602)

* chore: migrate createChannel to ts and add tests

* chore: fix naming

* chore: add more types and remove mapDispatchToProps from components

* remove todo

* update tests

* chore: migrate interface to reducer and fix errors on return

* chore: insert IApplicationState to mapStateToProps state type

* Remove spread

* fix type

* fix import and state type

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* Chore: Migrate redux module app to typescript (#3598)

* chore: migrate activeUsers reducer and action to TS

* chore: init types folder and set redux and BaseScreen interface

* chore: remove mapDispatchToProps to use dispatch prop and clear some types

* chore: type selectedUsers action and reducer and improvement in the code of other files

* chore: move IUser to base types

* chore: move state props to ISelectedUsersViewProps

* chore: create mocketStore

* chore: remove applyAppStateMiddleware

* test: create activeUser and selectedUser tests

* test: add more selectedUsers tests

* chore: fix action type

* chore: move types to definition folder and fix imports

* chore: remove unused const

* chore: migrate redux tests to reducer folder and add eslint jest plugin

* chore: exprot initial state and then import on tests

* chore: move interfaces to reducer and import on screen

* chore: set eslint-plugin-jest version to 24.7.0

* chore: fix IUser import

* chore: update interfaces and types names

* chore: update definitions

* chore: update IBaseScreen definitions

* chore: init reducer/app migration to ts

* chore: add tests and migrate RootEnum

* wip: migrate fixed consts to RootEnum

* chore: remove redux action inferences

* fix types

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* Chore: Migrate redux module createDiscussion to typescript  (#3604)

* chore: migrate createDiscussion to ts and add tests

* chore: add TActionCreateDiscussion to TApplicationActions

* fix types

* update types

* fix types

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* [FIX] ios-testflight-experimental unable to find cache (#3684)

* Chore: Remove Non-null assertion operator in ThreadMessagesView (#3632)

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* Chore: Migrate CannedResponsesListView to Typescript (#3553)

* Chore: Migrate CannedResponsesListView to TS

* Moved IcannedResponse to definitions and fixed the index

* Chore: Migrate CannedResponseDetail to TS

* minor tweaks

* refactor: update new types and interfaces for use ISubscription

* fix lint error and canned responses's dropdown

Co-authored-by: AlexAlexandre <alexalexandrejr@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>

* Chore: Migrate LivechatEditView to Typescript (#3499)

* Chore: Migrate LivechatEditView to Typescript

* refactor: minor tweak

* refactor: fix the interfaces for input

* refactor: fix lint erros

* minor tweak with new navigation types

* function

* iroom tweak

* livechateditview tweak

* TextInput tweak

* refactor: update new types and interfaces for use ISubscription

* refactor to default useState type

* change the component name in SearchBox

* changed state type

Co-authored-by: AlexAlexandre <alexalexandrejr@gmail.com>
Co-authored-by: Gerzon Z <gerzonc@icloud.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>

* Regression: Message press navigating to empty RoomView (#3680)

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* Regression: Prevent duplicated .jpg on file upload (#3658)

* [FIX] Regression: Prevent duplicated .jpg on file upload

* refactor to all files typed as image/jpeg

* isolate regexp to function

* refactor forceJpgExtension

* clean

* minor tweak

* [FIX] Regression: Prevent duplicated .jpg on file upload

* refactor to all files typed as image/jpeg

* isolate regexp to function

* refactor forceJpgExtension

* clean

* minor tweak

* refactored comment

* Chore: Migrate lib/utils to TypeScript (#3637)

* Migrate utils to TypeScript

* Add @types/semver

* Refactor compareServerVersion(currentVersion, oldVersion, func) to compareServerVersion(current, func, oldVersion)

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* Chore: Migrate readMessages to TS (#3669)

* Migrate readMessages to TS

* Update IRocketChat interface

* [FIX] Unnecessary login dispatch on adding new server (#3693)

* [FIX] Disable tap gesture on call messages (#3694)

* [IMPROVE] Keep biometry option from last session (#3668)

Co-authored-by: GleidsonDaniel <gleidson10daniel@hotmail.com>
Co-authored-by: Reinaldo Neto <reinaldonetof@hotmail.com>

* Fix reactotron multiple connections (#3622)

* Chore: Fix rocketchat interface (#3705)

* Chore: Migrate logout to Typescript (#3688)

* [NEW] Stream to get individual presence updates (#3606)

Co-authored-by: Gerzon Z <gerzonzcanario@gmail.com>

* [FIX] Inject Redux store to prevent/remove require cycles (#3691)

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* Chore: Migrate lib/rocketchat.js to TS - structure PoC (#3661)

Co-authored-by: Diego Mello <diegolmello@gmail.com>
Co-authored-by: Gleidson Daniel Silva <gleidson10daniel@hotmail.com>

* [FIX] #3606 merged using wrong JS SDK branch (#3709)

* [FIX] Remove deprecated database methods and other database operations (#3686)

* Fix PK error on subscriptions/room

* Instead of checking for pending update, wrap the call on a try catch and return null in case of error

* Generate delete operations before create/update to prevent errors

* Apply same logic on encryption

* Fix database operations on getRoles

* Fix a few database issues found on Bugsnag on ThreadMessagesView

* Run prettier :(

* Chore: Add REST API definitions from server (#3721)

* create first definitions

* chore: implements get and post types

* fix lint

* add ts-ignore

* add teams.removeRoom method

* Remove unused endpoints

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* Chore: Move some methods to SDK (#3736)

* [IMPROVE] Add support for ephemeral messages inside threads (#3687)

* Chore: dehydrate small server requests away from rocketchat.js (#3740)

* Bump version to 4.25.0 (#3745)

* [Snyk] Security upgrade url-parse from 1.5.1 to 1.5.6 (#3746)

The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-URLPARSE-2401205

* Language update from LingoHub 🤖 on 2022-02-14Z (#3730)

* Language update from LingoHub 🤖

Project Name: Rocket.Chat.ReactNative
Project Link: https://translate.lingohub.com/rocketchat/dashboard/rocket-dot-chat-dot-reactnative
User: Robot LingoHub

Easy language translations with LingoHub 🚀

* remove draft gl

Co-authored-by: Robot LingoHub <robot@lingohub.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>

* Chore: Migrate methods/getSingleMessage to TS (#3700)

* migrate getSingleMessage to TS

* minor tweak

* Chore: Migrate methods/getRooms to TS (#3702)

* migrate getRooms to TS

* add sdk and set any types

* Moved the new variable around and added ts-ignore to follow the pattern from /services/restApi.ts

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* Chore: Migrate updateMessages to Typescript (#3715)

* Chore: Migrate selector/login to TS (#3731)

* migrate selector/login to TS

* Fix lint errors

* set aliases for returns

* Chore: Migrate helpers/parseUrls to Typescript (#3735)

* Chore: Migrate methods/helpers/parseQuery to Typescript (#3742)

* Chore: Migrate methods/helpers/parseQuery to Typescript

* tweak in example

* Chore: Migrate app/commands to typescript (#3697)

* Chore: Migrate lib/encryption folder to TypeScript (#3639)

* Initial commit

* add types/bytebuffer, add type definitions to params and update interfaces

* add more types and type assertions

* update types

* change bang operator by type assertion and update class variables definitions

* add types for deferred class

* minor tweaks on types definitions

* add ts-ignore

* Update encryption.ts

* update deferred and encryption

* update encryption.ts

* Update room.ts

* update toDecrypt type

* initialize sessionKeyExportedString

* remove return types

* Chore: Migrate redux actions/enterpriseModules to TS (#3698)

* migrate enterpriseModules to TS

* update test file

* Chore: Migrate database/services and database/utils to TS (#3708)

* migrate database services and utils to ts

* Migrate tests

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* Chore: Migrate buildMessage to TS (#3732)

* migrate buildMessage to TS

* Fix lint

* minor tweak

* minor tweaks

* Chore: Migrate getPermissions to Typescript (#3720)

* Migrating...

* Fix IPermission

* Playing with types

* Remove `as const`

* Fix lint

* Fix test

* Apply sdk

* Fix lint and autocomplete

* [FIX] Add search and fix pagination for omnichannels departments (#3621)

* [FIX] Search and pagination for omnichannels departments

* pagination complete

* minor tweak

* renamed a param and workaround for a ux bug

* fix style of flatlist and search as header scrollable

* stick the header

* Merge branch 'fix.forward-department-list' of https://github.com/RocketChat/Rocket.Chat.ReactNative into fix.forward-department-list

* refactor pagination

* fix value type

* refactor render search

* refactor layout

* make ts happy

* Chore: Migrate Markdown to Typescript (#3558)

* Chore: Migrate Markdown to TS

* Chore: Migrate Markdown to TS

* minor tweak

* added preview where markdown was preview and fixed params within markdown

* removed ts-ignore

* fix lint

* removed numbersofline={0} and default value to numberOfLines=1

* change how to import markdown preview and remove numberOfLines

* using useTheme inside markdownPreview and remove theme from components

* minor tweak on interfaces

* isNewMarkdown return as boolean

* minor tweaks

* minor tweaks

* removed unused component

* fixed markdown stories

* updated snapshot because removed numberOfLines={0} from message/content

* create IEmoji.ts in definitions and refactor all places where getCustomEmoji was called

* onLinkPress typed

* todo: refactor navtoroominfo

* formatText.test.ts

* markdown stories to typescript too

* minor tweak

* IMessage definition

* refactor: update new types and interfaces for use ISubscription

* refactor: update threadItem for use new MarkdownPreview

* refactor: rollback wrong file commited

* formatHyperlink

* fix lint

* updated item story shot

* refactor and refactor some types

* Remove non-null assertion

* Minor change on useRealName

* tweak

Co-authored-by: AlexAlexandre <alexalexandrejr@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>

* Chore: Migrate methods/callJitsi to typescript (#3660)

* chore: migrate callJitsi to typescript

* change fixed string to type

* wip

* wip

* back to old times :)

* back to typescript

* Chore: Migrate redux module room to typescript (#3636)

* chore: migrate redux module room to typescript and remove dispatch on dependencies

* chore: add tests to redux module room

* chore: create ERoomType and use on implemention

* chore: update enum name

* fix test id

* Chore: Migrate redux module login to typescript (#3647)

* chore: migrate redux module login to typescript

chore: update redux module login tests

* update workers

* wip

* fix type

* remove partial

* add more status

* migrate the rest of the stuff to typescript

* fix tests and types

* fix types and tests

* Chore: Migrate method getSettings to typescript (#3703)

* chore: migrate getSettings to typescript and and some types

* chore: remove this and add current to code

* chore: add current

* Chore: Migrate getCustomEmojis to TS (#3724)

* update customEmoji interface and getCustomEmoji

* add sdk

* updated emojiCustom rest definition

* minor refactor

* update params object

* [FIX] getRooms request using param with wrong name (#3761)

* Chore: Migrate methods/getRoomInfo to TS (#3695)

* migrate getRoomInfo to TS

* update room type

* update types

* Fix lint error

* Chore: Migrate getSlashCommands to TS (#3711)

* migrate getSlashCommands to TS

* use sdk and update getSlashCommands

* minor tweak

* Remove implicit anys

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* Chore: Migrate getUsersPresence to TS (#3717)

* migrate getUsersPresence to ts

* use sdk and remove this context from getUsersPresence

* Chore: Migrate loadMissedMessages to typescript (#3704)

* chore: migrate loadMissedMessages to typescript

* remove loaderItem

* remove this from functions

* Chore: Migrate methods/getRoles to Typescript (#3741)

* chore: migrate getRoles to ts

* chore: removing unused const

* chore: minor tweak

* Type batch

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* Chore: Migrate methods/loadMessagesForRoom to Typescript (#3701)

* chore: change loadMessagesForRoom to typescript

* minor tweak

* chore: minor tweaks after merge with developer

* chore: minor tweaks after merge with developer

* chore: minor tweak

* chore: minor tweaks

* Fix return

Co-authored-by: Diego Mello <diegolmello@gmail.com>
Co-authored-by: Gleidson Daniel Silva <gleidson10daniel@hotmail.com>

* Chore: Migrate methods/sendFileMessage to typescript (#3683)

* chore: start the migration

* chore: update sendFileMessage to ts

* chore: removing an `any` from uploadQueue

* chore: minor tweak

* chore: minor tweak

* chore: minor tweaks after merge with developer

* chore: minor tweak after merge develop into current

* [FIX] Differ to Last Session Authenticated (#3667)

* [FIX] Differ to Last Session Authenticated

* Added timesync

* [FIX] Differ to Last Session Authenticated

* Added timesync

* timesync tweaks

* refactor diffLastLocalSession and saveLastLocalAuthentication

* did a race

* Update comment in app/utils/localAuthentication.ts

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* refactor getServerTimeSync and when use this route

* tweak

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* Chore: Migrate methods/loadNextMessages to typescript (#3719)

* feat: update loadNextMessages to ts

* minor tweak

* chore: minor tweaks after merge with developer

* chore: migrate getFileUrlFromMessage to ts (#3734)

* [IMPROVE] Team system messages feedback (#3771) (#3772)

* almost there

* Update stories

Co-authored-by: Reinaldo Neto <47038980+reinaldonetof@users.noreply.github.com>
Co-authored-by: AlexAlexandre <alexalexandrejr@gmail.com>
Co-authored-by: Matheus Barbosa Silva <36537004+matheusbsilva137@users.noreply.github.com>
Co-authored-by: Gerzon Z <gerzonc@icloud.com>
Co-authored-by: Anant Bhasin <38764067+aKn1ghtOut@users.noreply.github.com>
Co-authored-by: Gerzon Z <gerzonzcanario@gmail.com>
Co-authored-by: lingohub[bot] <69908207+lingohub[bot]@users.noreply.github.com>
Co-authored-by: Robot LingoHub <robot@lingohub.com>
Co-authored-by: Gleidson Daniel Silva <gleidson10daniel@hotmail.com>
Co-authored-by: Danish Ahmed Mirza <77742477+try-catch-stack@users.noreply.github.com>
Co-authored-by: Reinaldo Neto <reinaldonetof@hotmail.com>
Co-authored-by: Snyk bot <snyk-bot@snyk.io>
2022-02-28 16:03:42 -03:00
..
data Merge 4.21.0 into single-server (#3468) 2021-10-28 14:49:08 -03:00
docker Merge 4.22.0 into single-server (#3524) 2021-11-25 11:25:11 -03:00
helpers Merge 4.25.0 into single-server (#3790) 2022-02-28 16:03:42 -03:00
tests Merge 4.25.0 into single-server (#3790) 2022-02-28 16:03:42 -03:00
.mocharc.json Merge 4.20.0 into single-server (#3413) 2021-10-01 15:12:19 -03:00
README.md Merge 4.14.0 into single-server (#2833) 2021-01-25 14:14:45 -03:00
data.js Merge 4.21.0 into single-server (#3468) 2021-10-28 14:49:08 -03:00

README.md

E2E Testing

Contents

  1. Prepare test environment
  2. Prepare test data
  3. Running tests
  4. FAQ

1. Prepare test environment

1.1. A Rocket.Chat server

Either

  • Install Rocket.Chat meteor app by following this guide.

Or

  • Use the local Docker environment available in this folder. You can start the environment using ./e2e/docker/controlRCDemoEnv.sh startandwait, or you can use the packaged start & run script (see step 3). Either way, you'll need Docker and Docker Compose.

1.2. Set up detox

  • Install dependencies by following this guide (only Step 1).

2. Prepare test data

  • If you're running your own Rocket.Chat server, ensure it's started (e.g. meteor npm start in the server project directory).
  • Edit e2e/data.js:
    • Set the server to the address of the server under test
    • Set the adminUser and adminPassword to an admin user on that environment (or a user with at least create-user and create-c).
  • Working example configs exist in ./e2e/data/. Setting FORCE_DEFAULT_DOCKER_DATA to 1 in the runTestsInDocker.sh script will use the example config automatically

3. Running tests

3.1. iOS

  • Build app with detox: detox build -c ios.sim.release
  • Open Simulator which is used in tests (check in package.json under detox section) from Xcode and make sure that software keyboard is being displayed. To toggle keyboard press cmd+K.
  • Run tests: detox test -c ios.sim.release, or, if choosing Docker you can run the packaged environment & runner (./e2e/docker/runTestsInDocker.sh) which will start the Docker infrastructure, run the tests and tear it down again once done.

3.2. Android

  • Build app with detox: detox build -c android.emu.debug
  • Run: react-native start
  • Run Android emulator with name ANDROID_API_28 via Android studio or cd /Users/USERNAME/Library/Android/sdk/emulator/ && ./emulator -avd ANDROID_API_28 Note: if you need to run tests on different Android emulator then simply change emulator name in ./package.json detox configurations
  • Run tests: detox test -c android.emu.debug

3.3 Running a subset of tests

Tests have been grouped into subfolders. You can choose to run just one group of tests by running, for example:

detox test ./e2e/tests/onboarding -c ios.sim.release

To do the same with the Docker runner:

./e2e/docker/runTestsInDocker.sh onboarding

4. FAQ

4.1. Detox build fails

  • Delete node_modules, ios/build, android/build: rm -rf node_modules && rm -rf ios/build && rm -rf android/build
  • Install packages: yarn install
  • Kill metro bundler server by closing terminal or with following command: lsof -ti:8081 | xargs kill
  • Clear metro bundler cache: watchman watch-del-all && rm -rf $TMPDIR/react-native-packager-cache-* && rm -rf $TMPDIR/metro-bundler-cache-*
  • Make sure you have all required environment.
  • Now try building again with detox build (with specific configuration).

4.2. Detox iOS test run fails

  • Check if your meteor app is running by opening localhost:3000 in browser.
  • Make sure software keyboard is displayed in simulator when focusing some input. To enable keyboard press cmd+K.
  • Make sure you have prepared all test data.
  • Sometimes detox e2e tests fail for no reason so all you can do is simply re-run again.

5. Todo

  • TOTP test
  • Push notifications
  • Deep linking
  • Intermittent connectivity