d8c8817f04
* [NEW] Custom Status * [FIX] Subscribe to changes * [FIX] Improve code using Banner component * [IMPROVEMENT] Toggle modal * [NEW] Edit custom status from Sidebar * [FIX] Modal when tablet * [FIX] Styles * [FIX] Switch to react-native-promp-android * [FIX] Custom Status UI * [TESTS] E2E Custom Status * Fix banner * Fix banner * Fix subtitle * status text * Fix topic header * Fix RoomActionsView topic * Fix header alignment on Android * [FIX] RoomInfo crashes when without statusText * [FIX] Use users.setStatus * [FIX] Remove customStatus of ProfileView * [FIX] Room View Thread Header Co-authored-by: Diego Mello <diegolmello@gmail.com> |
||
---|---|---|
.. | ||
helpers | ||
00-onboarding.spec.js | ||
01-welcome.spec.js | ||
02-legal.spec.js | ||
03-forgotpassword.spec.js | ||
04-createuser.spec.js | ||
05-login.spec.js | ||
06-roomslist.spec.js | ||
07-createroom.spec.js | ||
08-room.spec.js | ||
09-roomactions.spec.js | ||
10-roominfo.spec.js | ||
11-changeserver.spec.js | ||
12-broadcast.spec.js | ||
13-profile.spec.js | ||
14-setting.spec.js | ||
15-joinpublicroom.spec.js | ||
16-status.spec.js | ||
README.md | ||
data.js | ||
init.js | ||
mocha.opts |
README.md
Contents:
1. Prepare test environment
1.1. Set up local Rocket Chat server
- Install Rocket Chat meteor app by following this guide.
1.2. Set up detox
- Install dependencies by following this guide (only Step 1).
2. Prepare test data
- Run Rocket Chat meteor app:
meteor npm start
(make sure you to run this command from project that you created on Step 1.1.). - Open
localhost:3000
in browser. - Sign up as admin.
- Create public room
detox-public
. - Create user with role:
user
, username:detoxrn
, email:YOUR@EMAIL.COM
, password:123
. - Create user with role:
user
, username:YOUR.NAME
, email:YOUR.SECOND@EMAIL.COM
, password:123
. - In file
e2e/data.js
change valuesexistingEmail
withYOUR.SECOND@EMAIL.COM
,existingName
withYOUR.NAME
. - Login as user
detoxrn
-> open My Account -> Settings tab -> click Enable 2FA -> copy TTOLP code -> paste TTOLP code into./e2e/data.js
file into field:alternateUserTOTPSecret
.
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
3.1. 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
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.