d8cb5dfd6f
* [FIX] RoomItem using deprecated animated event signature (#2771) * [FIX] Server autocomplete text breaking line (#2774) * [FIX] ServerDropdown flashing bigger server icon (#2775) * [FIX] ServerDropdown flashing bigger server icon * Remove unused logo and update image path where needed * Minor tweak Co-authored-by: Diego Mello <diegolmello@gmail.com> * [FIX] Rooms list not being updated on some cases (#2765) * Request subscriptions on RoomsListView.constructor * Removes opened rooms from last message persisting * Change server reducer * Prevent undefined ids causing query error * [FIX] Share Extension hitting memory limit on iOS (#2788) * [FIX] Disallow swipe to dismiss on share extension * Limit query to 20 and clean up props * Remove rn-extension-share branch pointer * Test new branch * Remove branch * [IMPROVEMENT] Threads layout tweaks (#2686) * improvement: Thread Details * fix: re-render Thread Messages Item * fix: update snapshots * improve: thread details component * fix: cast replies length * improvement: format date of threads * improvement: thread details styles * fix: wrap text * tests: update snapshot * improvement: use same date format for all dates * Icon size 24 * Remove date * Remove prop drill * Badge position * Badge container tweak * Fix inline style * Move ThreadDetails to containers * Update stories * Fix lint * Remove wrong prop Co-authored-by: Diego Mello <diegolmello@gmail.com> * [CHORE] Remove some migrations (#2792) * Remove force rooms refresh * Remove MMKV migration * Bump version to 4.14.0 (#2797) * [FIX] Messagebox tracking lost on pop gesture navigation (#2799) * Use setTimeout instead of InteractionManager * Update tracking lib * [FIX] Back button closing activity when on root stack screen (#2804) * Make hardware back button to behave as home button on root screens * Remove unnecessary code * Remove handleBackPress from OnboardingView * Fix lint * [i18n] Add missing German strings (#2715) Co-authored-by: Diego Mello <diegolmello@gmail.com> * [NEW] Encrypted Discussions (#2813) * I18n key fix * Add encrypted switch * Remove unused i18n keys * Add enabled to encryption reducer * Show encrypted option on CreateDiscussionView only when e2e encryption is properly set * Add localSearch and use it on search * Use encrypted from parent channel * Fix method calls as rest api with 2fa enabled * Fix logout after reset keys * Use encryption reducer instead of lib directly to check render * Check for room type logic to display encryption option on create discussion * Check toggle-room-e2e-encryption permission on RoomActionsView * Check for encryption status instead of setting on server * Fix * Disable switch instead of hide it * Fix spotlight for DMs * Fix server test * [FIX] Messagebox missing style for text color (#2786) * Changing auxilaryTintColor * Changed Placeholder color to BodyText color * added color prop * eslint changes * used array for styles Co-authored-by: Diego Mello <diegolmello@gmail.com> * [I18N] Update arabic (#2696) * Update ar.js * Update ar.js Co-authored-by: Diego Mello <diegolmello@gmail.com> * [FIX] Workspace input without i18n (#2689) * [FIX] Translation of strings in Login page * Strings are added for translation. fixes: #2620 * Add pt-BR Co-authored-by: Diego Mello <diegolmello@gmail.com> * [FIX] Spotlight returning duplicated entries (#2805) * Update rocketchat.js * Updated search function * Minor improvements * Remove atIndex * Add remove logic to remove duplicate data from response Co-authored-by: Diego Mello <diegolmello@gmail.com> * [CHORE] Refactor ServerItem (#2778) * Updated ServerDropdown and ServerItem * Added ServerItem stories * Update ServerDropdown.js * Updated ServerItem stories * Updated ServerItem stories and ServerItem component * Updated SelectServerView, ServerItem and ServerItem stories * Updated ServerItem stories * Updated ServerItem stories * Update tests Co-authored-by: Diego Mello <diegolmello@gmail.com> * [DOCS] Updated Quick Start docs link in e2e/readme (#2802) Co-authored-by: Diego Mello <diegolmello@gmail.com> * [I18N] Add Turkish (#2793) * Turkish language support added * Update tr.js Co-authored-by: Diego Mello <diegolmello@gmail.com> * [FIX] Lint on #2793 (#2818) * [I18N] Add missing german strings (#2689) (#2820) * [I18N] Add missing italian strings (#2817) * [FIX] Server version becoming null on server change (#2821) * [FIX] Wrong styling on E2E encryption banner (#2767) * [FIX] Wrong styling on E2E encryption banner * [FIX] Wrong styling on E2E encryption banner * [FIX] Wrong styling on E2E encryption banner * [FIX] Wrong styling on E2E encryption banner (#2767) * Updated SortDropdown, ListHeader, ListItem and added stories for List.Item * Updated SortDropdown * Removed unused component * Updated List.Item and stories * Reverted unnecessary changes and updated ListItem stories * Fix minor indentation * Stop breaking Touch's default underlay color * Fix indentation * Remove falsy comparison from render * Fix left icon * Use List.Item on OmnichannelStatus * Add missing separator * Lint * Fix sort dropdown * Remove unnecessary styles * Fix detox Co-authored-by: Diego Mello <diegolmello@gmail.com> * [FIX] App Store using Experimental's app id (#2826) * [FIX] Wrong username on push notifications (#2825) Co-authored-by: Gerzon Z <gerzonzcanario@gmail.com> Co-authored-by: Gerzon Z <gerzonc@icloud.com> Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com> Co-authored-by: phriedrich <info@phriedrich.de> Co-authored-by: yash-rajpal <58601732+yash-rajpal@users.noreply.github.com> Co-authored-by: Fazil Boudjelal <fazildiablou@hotmail.fr> Co-authored-by: Sumukha Hegde <SUMUKHA214@GMAIL.COM> Co-authored-by: Hakan YILMAZ <mukerrem.yilmaz@hotmail.com> Co-authored-by: Vincenzo Esposito <aenon.esposito@gmail.com> |
||
---|---|---|
.. | ||
data | ||
docker | ||
helpers | ||
tests | ||
.mocharc.json | ||
README.md | ||
data.js |
README.md
E2E Testing
Contents
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
andadminPassword
to an admin user on that environment (or a user with at leastcreate-user
andcreate-c
).
- Set the
- Working example configs exist in
./e2e/data/
. SettingFORCE_DEFAULT_DOCKER_DATA
to1
in therunTestsInDocker.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 orcd /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