verdnatura-chat/e2e
Gerzon Z c087780ccf
[TEST] E2E Tests for Teams (#3178)
* Added Create Team

* Added actionTypes, actions, ENG strings for Teams and updated NewMessageView

* Added createTeam sagas, createTeam reducer, new Team string and update CreateChannelView

* Remove unnecessary actionTypes, reducers and sagas, e2e tests and navigation to team view

* Minor tweaks

* Show TeamChannelsView only if joined the team

* Minor tweak

* Added AddChannelTeamView

* Added permissions, translations strings for teams,  deleteTeamRoom and addTeamRooms, AddExistingChannelView, updated CreateChannelView, TeamChannelsView

* Refactor touch component and update removeRoom and deleteRoom methods

* Minor tweaks

* Minor tweaks for removing channels and addExistingChannelView

* Added missing events and fixed channels list

* Minor tweaks for refactored touch component

* Added SelectListView and logic for leaving team

* Added addTeamMember and removeTeamMember

* Minor tweak

* Added deleteTeam function

* Minor tweak

* Minor tweaks

* Remove unnecesary changes, update TeamChannelsView, AddExistingChannelView, AddChannelTeamView, createChannel, goRoom and Touchable

* Remove unnecesary prop

* Add screens to ModalStack, events, autoJoin, update createChannel, addRoomsToTeam and Touchable

* Minor tweak

* Update loadMessagesForRoom.js

* Updated schema, tag component, touch, AddChannelTeamView, AddExistingChannelView, ActionSheet Item

* Fix unnecessary changes

* Add i18n, update createChannel, AddExistingChannelTeamView, AddChannelTeamView, RightButton and TeamChannelsView

* Updated styles, added tag story

* Minor tweak

* Minor tweaks

* Auto-join tweak

* Minor tweaks

* Minor tweak on search

* Minor refactor to ListItem, add SelectListView to ModalStack, update handleLeaveTeam

* Minor tweaks

* Update SelectListView

* Update handleLeaveTeam, remove unnecessary method, add story

* Minor tweak

* Minor visual tweaks

* Update SelectListView.js

* Update index.js

* Update RoomMembersView

* Updated SelectListView, RoomActionsView, leaveTeam method and string translations

* Update SelectListVIew

* Minor tweak

* Update SelectListView

* Minor tweak

* Minor tweaks

* Fix for List.Item subtitles being pushed down by title's flex

* Minor tweaks

* Update RoomActionsView

* Use showConfirmationAlert and showErrorAlert

* Remove addTeamMember, update removeTeamMember

* Update Alert

* Minor tweaks

* Minor tweaks

* Minor tweak

* Update showActionSheet on RoomMembersView

* Remove team main from query and move code around

* Fetch roles

* Update RoomMembersView and SelectListView

* Update rocketchat.js

* Updated leaveTeam and handleRemoveFromTeam

* Fix validation

* Remove unnecessary function

* Update RoomActionsView

* Update en.json

* updated deleteTeam function and permissions

* Added showConfirmationAlert

* Added string translations for teams

* Fix permission

* Added moveChannelToTeam and convertToTeam functionality

* Fix SelectListView RadioButton

* Fix moveToTeam

* Added searchBar to SelectListVIew

* Update RoomView , SelectListVIew and string translation for error

* E2E for Teams

* Fix tests and cleanup

* Minor refactor

* Wrong label

* Move/convert

* Fix convert

Co-authored-by: Diego Mello <diegolmello@gmail.com>
2021-06-04 13:16:05 -03:00
..
data [TEST] E2E Tests for Teams (#3178) 2021-06-04 13:16:05 -03:00
docker [TESTS] Fix some simple text (#2332) 2020-07-24 16:19:30 -03:00
helpers [TEST] E2E Tests for Teams (#3178) 2021-06-04 13:16:05 -03:00
tests [TEST] E2E Tests for Teams (#3178) 2021-06-04 13:16:05 -03:00
.mocharc.json [TESTS] Test in docker (#2290) 2020-07-15 13:28:34 -03:00
README.md [DOCS] Updated Quick Start docs link in e2e/readme (#2802) 2021-01-20 17:48:01 -03:00
data.js [NEW] Create Team (#3082) 2021-05-12 16:01:29 -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