Rocket.Chat.ReactNative/e2e
Gleidson Daniel Silva 2a1b59cd57
tests: add draft e2e tests (#5553)
* chore: update detox

* chore: improve mocks

* chore: add testId

* chore: add e2e tests

* add more time

* Fix tests

* fxi tests

* update yarn lock

* fix import

* wip

* test

* Fix deep linking tests

---------

Co-authored-by: Diego Mello <diegolmello@gmail.com>
2024-02-15 16:41:03 -03:00
..
helpers tests: add draft e2e tests (#5553) 2024-02-15 16:41:03 -03:00
tests tests: add draft e2e tests (#5553) 2024-02-15 16:41:03 -03:00
README.md feat: Change Avatar View (#4746) 2023-04-10 11:59:00 -03:00
data.ts fix: show user's full name when searching (#5043) 2023-05-10 16:32:39 -03:00
e2e_account.example.ts Chore: Migrate E2E tests from JS to TS (#4475) 2022-09-12 11:51:33 -03:00
jest.config.js Chore: Update Detox to 20.1.2 (#4866) 2023-03-07 09:28:51 -03:00
testSequencer.js Chore: Update Detox to 20.1.2 (#4866) 2023-03-07 09:28:51 -03:00
tsconfig.json Chore: Update Detox to 20.1.2 (#4866) 2023-03-07 09:28:51 -03:00

README.md

Overview and folder structure

WIP: End-to-end tests are a work in progress and they're going to change.

|-- e2e
  |-- helpers
	|-- tests
	|-- data.ts
	|-- e2e_account.ts
  • e2e/helpers
    • This folder contains a few functions to setup and help write tests.
  • e2e/tests
    • This folder contains the actual test files
    • It's currently split into assorted, onboarding, room, and team folders
    • There's not a clear convention on where a test should be placed yet, but the folders above exist to try to separate them into features
    • Keep every test file truly idempotent
      • Each file can only impact on the tests written inside of it
      • They should not impact on other files, so pay attention on the data you use
  • data.ts
    • Contains seeds to common test data, like server url, public channels, etc
    • Currently we point to https://mobile.rocket.chat as main server
      • Pointing to a local server is not recommended yet, as you would need to create a few public channels and change some permissions
      • Ideally we should point to a docker or even a mocked server, but that's tbd
    • Try not to add new data there. Use random values instead.
      • It's hard to keep track of where each value is used
  • e2e_account.ts
    • Contains user and password with correct permissions on main server
      • Check e2e_account.example.ts for structure
    • It needs to be added manually on local (it's already set on CI)
      • Ask Diego Mello for credentials

Shared config

  • To start the Metro bundler in the mocked mode, you should run yarn e2e:start

Setup and run iOS

  • Install applesimutils
brew tap wix/brew
brew install applesimutils

Run on debug mode

  • Build the app with yarn e2e:ios-build-debug
  • Test the app with yarn e2e:ios-test-debug

Run on release mode

  • Build the app with yarn e2e:ios-build
  • Test the app with yarn e2e:ios-test

Setup and run Android

sh ./scripts/create-avd.sh

Run on debug mode

  • Build the app with yarn e2e:android-build-debug
  • Test the app with yarn e2e:android-test-debug

Run on release mode

  • Build the app with yarn e2e:android-build
  • Test the app with yarn e2e:android-test