6271b885ee
* [IMPROVEMENT] Mentions layout without background * Fix RoomItem * Fix tests * Smaller messagebox * Messagebox colors tweak * Beginning header buttons refactor * Add HeaderButtons * item with title * Refactor * Remove lib * Refactor * Update snapshot * Send to channel on messagebox * Add tshow * Add showMessageInMainThread to login.user reducer * Filter threads on main channel based on user setting * Send tshow * Add tunread * Move unread colors logic away from UnreadBadge component so it can be used on other components * Export UnreadBadge on index * Add empty test * Refactor * Update tests * Lint * Thread unread user and group on RoomItem * Thread badge working * Started ThreadMessagesView.Item * Fix separator * Reactivity working * Lint * custom emojis aren't necessary * Basic filter layout * Filtering layout * Refactor * apply filter * DropdownItemHeader * default all * few fixes * No data found * Fixes list performance issues * Use locale on date formats * Fixed minor styles * Thread badge * Refactor getBadgeColor * Fix send to channel background color * starting search threads * Fix lint and tests * Bump to 4.12.0 just for testing :) * Search input layout * query * starting threads header * fix unnecessary tlm on tmid messages * Fix thread header * lint * Fix thread header on ShareView * Add e2e tests * Fix subscriptions sort * Update stories and minor fixes * Fix button sizes on Messagebox * Remove comment * Unnecessary conditional * Add showMessageInMainThread to user collection * Fix thread header * Fix thread messages not working on tablet * Reset Messagebox.tshow after sending a message * Allow to send to channel when replying to a thread from main channel * Unnecessary theme prop * Address comments * Remove re-render * Fix scroll indicator bug * Fix style * Minor i18n fix * Fix dropdown height * I18n ptbr * I18n |
||
---|---|---|
.. | ||
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