vn-verdnaturachat/e2e
Djorkaeff Alexandre d8c8817f04
[NEW] Custom Status (#1811)
* [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>
2020-03-30 17:19:01 -03:00
..
helpers [FIX] Detox tests (#1790) 2020-03-03 17:27:38 -03:00
00-onboarding.spec.js [FIX] Detox tests (#1790) 2020-03-03 17:27:38 -03:00
01-welcome.spec.js [FIX] Detox tests (#1790) 2020-03-03 17:27:38 -03:00
02-legal.spec.js [FIX] Detox tests (#1790) 2020-03-03 17:27:38 -03:00
03-forgotpassword.spec.js [FIX] Detox tests (#1790) 2020-03-03 17:27:38 -03:00
04-createuser.spec.js [FIX] Detox tests (#1790) 2020-03-03 17:27:38 -03:00
05-login.spec.js [FIX] Detox tests (#1790) 2020-03-03 17:27:38 -03:00
06-roomslist.spec.js [FIX] Detox tests (#1790) 2020-03-03 17:27:38 -03:00
07-createroom.spec.js [FIX] Detox tests (#1790) 2020-03-03 17:27:38 -03:00
08-room.spec.js [FIX] Detox tests (#1790) 2020-03-03 17:27:38 -03:00
09-roomactions.spec.js [FIX] Detox tests (#1790) 2020-03-03 17:27:38 -03:00
10-roominfo.spec.js [REGRESSION] Room View header title (#1827) 2020-03-05 11:35:05 -03:00
11-changeserver.spec.js [FIX] Detox tests (#1790) 2020-03-03 17:27:38 -03:00
12-broadcast.spec.js [REGRESSION] Room View header title (#1827) 2020-03-05 11:35:05 -03:00
13-profile.spec.js [NEW] Custom Status (#1811) 2020-03-30 17:19:01 -03:00
14-setting.spec.js [FIX] Detox tests (#1790) 2020-03-03 17:27:38 -03:00
15-joinpublicroom.spec.js [FIX] Detox tests (#1790) 2020-03-03 17:27:38 -03:00
16-status.spec.js [NEW] Custom Status (#1811) 2020-03-30 17:19:01 -03:00
README.md [CHORE] Make e2e pass on CircleCI (#933) 2019-06-03 16:20:36 -03:00
data.js [CHORE] Make e2e pass on CircleCI (#933) 2019-06-03 16:20:36 -03:00
init.js Update dependencies (#587) 2019-01-29 17:52:56 -02:00
mocha.opts Unnecessary re-renders removed (#570) 2018-12-21 08:55:35 -02:00

README.md

Contents:

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

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 values existingEmail with YOUR.SECOND@EMAIL.COM, existingName with YOUR.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 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

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.