From 8fb041347e115034a3e682b89690e576f93f51f1 Mon Sep 17 00:00:00 2001 From: Diego Mello Date: Mon, 11 May 2026 16:15:29 -0300 Subject: [PATCH 1/3] chore: begin Experimental app sunset MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR1 of the phased Experimental → Official migration. - Adds an English-only DeprecationModal shown on every launch in Experimental builds (gated by !isOfficial) pointing users to the official App Store and Play Store listings. - Repoints E2E to Official: new build_official_simulator fastlane lane, assembleOfficialRelease on Android, IS_OFFICIAL=YES PlistBuddy on iOS, Official keystore secrets, and Official APK / .app artifact paths. - Templates all .maestro flow files appId to ${APP_ID}, with the value injected per-platform by run-maestro.sh (chat.rocket.ios on iOS, chat.rocket.android on Android). No deletions of Experimental build infra, code paths, or store records — those come in PR2 and PR3 once current Experimental users have migrated. --- .github/scripts/run-maestro.sh | 16 +++- .github/workflows/e2e-build-android.yml | 34 ++++--- .github/workflows/e2e-build-ios.yml | 9 +- .github/workflows/maestro-android.yml | 2 +- .maestro/config.yml | 2 +- .maestro/helpers/create-account.yaml | 2 +- .maestro/helpers/erase-text.yaml | 2 +- .maestro/helpers/go-back.yaml | 2 +- .maestro/helpers/hide-keyboard.yaml | 2 +- .maestro/helpers/launch-app.yaml | 2 +- .maestro/helpers/login-with-deeplink.yaml | 6 +- .maestro/helpers/login.yaml | 2 +- .maestro/helpers/logout.yaml | 2 +- .maestro/helpers/navigate-to-login.yaml | 2 +- .maestro/helpers/navigate-to-recent-room.yaml | 2 +- .maestro/helpers/navigate-to-register.yaml | 2 +- .maestro/helpers/navigate-to-room-action.yaml | 2 +- .maestro/helpers/navigate-to-room.yaml | 2 +- .maestro/helpers/navigate-to-workspace.yaml | 2 +- .maestro/helpers/open-deeplink.yaml | 2 +- .../helpers/search-and-navigate-room.yaml | 2 +- .maestro/helpers/search-room.yaml | 2 +- .maestro/helpers/send-message.yaml | 2 +- .maestro/helpers/setup.yaml | 2 +- .../ToastsAndDialogs.yml | 2 +- .../accessibility-and-appearance.yaml | 2 +- .maestro/tests/assorted/broadcast.yaml | 2 +- .maestro/tests/assorted/change-avatar.yaml | 2 +- .maestro/tests/assorted/changeserver.yaml | 2 +- .maestro/tests/assorted/deeplink.yaml | 24 ++--- .maestro/tests/assorted/delete-server.yaml | 2 +- .maestro/tests/assorted/display-perf.yaml | 2 +- .maestro/tests/assorted/i18n.yaml | 2 +- .../tests/assorted/in-app-notification.yaml | 2 +- .../tests/assorted/join-from-directory.yaml | 2 +- .../tests/assorted/join-protected-room.yaml | 2 +- .maestro/tests/assorted/join-public-room.yaml | 2 +- .maestro/tests/assorted/profile.yaml | 2 +- .maestro/tests/assorted/setting.yaml | 2 +- .maestro/tests/assorted/status.yaml | 2 +- .maestro/tests/assorted/user-preferences.yaml | 2 +- .../tests/assorted/utils/check-server.yaml | 2 +- .../utils/go-to-accessibility-appearance.yaml | 2 +- .../assorted/utils/go-to-display-pref.yaml | 2 +- .../tests/assorted/utils/go-to-room-list.yaml | 2 +- .../assorted/utils/go-to-user-preference.yaml | 2 +- .../tests/assorted/utils/nav-to-language.yaml | 2 +- .maestro/tests/e2ee/e2e-encryption.yaml | 2 +- .../e2ee/flows/accept-new-key-and-verify.yaml | 2 +- .../check-encrypted-room-without-key.yaml | 2 +- .../tests/e2ee/flows/create-e2ee-room.yaml | 2 +- .../e2ee/flows/edit-message-and-verify.yaml | 2 +- .../e2ee/flows/enter-key-read-and-send.yaml | 2 +- .maestro/tests/e2ee/flows/quote-message.yaml | 2 +- .../tests/e2ee/flows/reset-keys-and-send.yaml | 2 +- .../e2ee/flows/send-and-verify-message.yaml | 2 +- .maestro/tests/e2ee/flows/setup-user.yaml | 2 +- .../e2ee/flows/verify-message-unread.yaml | 2 +- .../e2ee/flows/verify-messages-read.yaml | 2 +- .../tests/e2ee/utils/change-e2ee-key.yaml | 2 +- .maestro/tests/e2ee/utils/enter-e2e-key.yaml | 2 +- .../e2ee/utils/navigate-to-e2ee-security.yaml | 2 +- .maestro/tests/e2ee/utils/reset-e2ee-key.yaml | 2 +- .../keyboard-navigation-components.yaml | 2 +- .../keyboard-navigation-onboarding.yaml | 2 +- .../keyboard-navigation-room.yaml | 2 +- .../tests/onboarding/change-password.yaml | 2 +- .../tests/onboarding/forgot-password.yaml | 2 +- .maestro/tests/onboarding/legal.yaml | 2 +- .../onboarding/login/invalid-credentials.yaml | 2 +- .maestro/tests/onboarding/login/login.yaml | 2 +- .../onboarding/register/create-account.yaml | 2 +- .../tests/onboarding/register/email-used.yaml | 2 +- .../onboarding/register/username-used.yaml | 2 +- .maestro/tests/onboarding/roomslist.yaml | 2 +- .maestro/tests/onboarding/server-history.yaml | 2 +- .../workspace/invalid-workspace.yaml | 2 +- .../onboarding/workspace/valid-workspace.yaml | 2 +- .maestro/tests/room/create-dm-group.yaml | 2 +- .maestro/tests/room/create-room.yaml | 2 +- .maestro/tests/room/discussion.yaml | 2 +- .maestro/tests/room/ignoreuser.yaml | 2 +- .maestro/tests/room/jump-to-message.yaml | 2 +- .maestro/tests/room/mark-as-unread.yaml | 2 +- .../tests/room/message-markdown-click.yaml | 2 +- .maestro/tests/room/room-actions.yaml | 2 +- .maestro/tests/room/room-info.yaml | 2 +- .../room-last-message-thread-50-plus.yaml | 2 +- .maestro/tests/room/room.yaml | 2 +- .maestro/tests/room/search-member.yaml | 2 +- .maestro/tests/room/search.yaml | 2 +- .maestro/tests/room/share-message.yaml | 2 +- .maestro/tests/room/threads.yaml | 2 +- .maestro/tests/room/unread-badge.yaml | 2 +- .maestro/tests/room/utils/clear-cache.yaml | 2 +- .../room/utils/expect-thread-messages.yaml | 2 +- .../room/utils/navigate-to-info-view.yaml | 2 +- .../room/utils/navigate-to-room-info.yaml | 2 +- .maestro/tests/teams/convert-team.yaml | 2 +- .maestro/tests/teams/create-team.yaml | 2 +- .maestro/tests/teams/team.yaml | 2 +- .../tests/teams/utils/close-action-sheet.yaml | 2 +- .../tests/teams/utils/create-channel.yaml | 2 +- .../tests/teams/utils/open-action-sheet.yaml | 2 +- app/containers/DeprecationModal/index.tsx | 92 +++++++++++++++++++ app/containers/DeprecationModal/styles.ts | 59 ++++++++++++ app/index.tsx | 2 + ios/fastlane/Fastfile | 17 ++++ 108 files changed, 319 insertions(+), 138 deletions(-) create mode 100644 app/containers/DeprecationModal/index.tsx create mode 100644 app/containers/DeprecationModal/styles.ts diff --git a/.github/scripts/run-maestro.sh b/.github/scripts/run-maestro.sh index a0705a4f442..206d532671f 100755 --- a/.github/scripts/run-maestro.sh +++ b/.github/scripts/run-maestro.sh @@ -9,6 +9,12 @@ MAX_RERUN_ROUNDS="${MAX_RERUN_ROUNDS:-3}" RERUN_REPORT_PREFIX="maestro-rerun" export MAESTRO_DRIVER_STARTUP_TIMEOUT="${MAESTRO_DRIVER_STARTUP_TIMEOUT:-120000}" +if [ "$PLATFORM" = "android" ]; then + APP_ID="chat.rocket.android" +else + APP_ID="chat.rocket.ios" +fi + if ! command -v maestro >/dev/null 2>&1; then echo "ERROR: maestro not found in PATH" exit 2 @@ -65,12 +71,13 @@ printf ' %s\n' "${FLOW_FILES[@]}" if [ "$PLATFORM" = "android" ]; then adb shell settings put system show_touches 1 || true - adb install -r "app-experimental-release.apk" || true - adb shell monkey -p "chat.rocket.reactnative" -c android.intent.category.LAUNCHER 1 || true + adb install -r "app-official-release.apk" || true + adb shell monkey -p "$APP_ID" -c android.intent.category.LAUNCHER 1 || true sleep 6 - adb shell am force-stop "chat.rocket.reactnative" || true + adb shell am force-stop "$APP_ID" || true maestro test "${FLOW_FILES[@]}" \ + -e APP_ID="$APP_ID" \ --exclude-tags=util \ --include-tags="test-${SHARD}" \ --exclude-tags=ios-only \ @@ -79,6 +86,7 @@ if [ "$PLATFORM" = "android" ]; then else maestro test "${FLOW_FILES[@]}" \ + -e APP_ID="$APP_ID" \ --exclude-tags=util \ --include-tags="test-${SHARD}" \ --exclude-tags=android-only \ @@ -140,6 +148,7 @@ while [ ${#CURRENT_FAILS[@]} -gt 0 ] && [ "$ROUND" -le "$MAX_RERUN_ROUNDS" ]; do if [ "$PLATFORM" = "android" ]; then maestro test "${CURRENT_FAILS[@]}" \ + -e APP_ID="$APP_ID" \ --exclude-tags=util \ --include-tags="test-${SHARD}" \ --exclude-tags=ios-only \ @@ -147,6 +156,7 @@ while [ ${#CURRENT_FAILS[@]} -gt 0 ] && [ "$ROUND" -le "$MAX_RERUN_ROUNDS" ]; do --output "$RPT" || true else maestro test "${CURRENT_FAILS[@]}" \ + -e APP_ID="$APP_ID" \ --exclude-tags=util \ --include-tags="test-${SHARD}" \ --exclude-tags=android-only \ diff --git a/.github/workflows/e2e-build-android.yml b/.github/workflows/e2e-build-android.yml index 043d6c98032..f15c593ecce 100644 --- a/.github/workflows/e2e-build-android.yml +++ b/.github/workflows/e2e-build-android.yml @@ -3,15 +3,13 @@ name: E2E Build Android on: workflow_call: secrets: - EXPERIMENTAL_KEYSTORE_BASE64: + KEYSTORE_OFFICIAL_BASE64: required: true - EXPERIMENTAL_KEYSTORE_PASSWORD: + KEYSTORE_OFFICIAL_PASSWORD: required: true - EXPERIMENTAL_KEY_ALIAS: + KEYSTORE_OFFICIAL_ALIAS: required: true - EXPERIMENTAL_KEY_PASSWORD: - required: true - BUGSNAG_KEY: + BUGSNAG_KEY_OFFICIAL: required: true jobs: @@ -19,10 +17,10 @@ jobs: runs-on: ubuntu-latest outputs: - artifact_name: Android Experimental APK + artifact_name: Android Official APK steps: - - name: Checkout Repository + - name: Checkout Repository uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 - name: Checkout and Setup Node @@ -64,7 +62,7 @@ jobs: - name: Decode Keystore run: | - echo "${{ secrets.EXPERIMENTAL_KEYSTORE_BASE64 }}" | base64 -d > android/app/release.keystore + echo "${{ secrets.KEYSTORE_OFFICIAL_BASE64 }}" | base64 -d > android/app/release.keystore - name: Set gradle.properties working-directory: android @@ -74,24 +72,24 @@ jobs: echo -e "android.useAndroidX=true" >> ./gradle.properties echo -e "android.enableJetifier=true" >> ./gradle.properties echo -e "reactNativeArchitectures=x86_64" >> ./gradle.properties - echo -e "APPLICATION_ID=chat.rocket.reactnative" >> ./gradle.properties + echo -e "APPLICATION_ID=chat.rocket.android" >> ./gradle.properties echo -e "newArchEnabled=true" >> ./gradle.properties echo -e "hermesEnabled=true" >> ./gradle.properties echo -e "VERSIONCODE=999999" >> ./gradle.properties echo -e "KEYSTORE=release.keystore" >> ./gradle.properties - echo -e "KEYSTORE_PASSWORD=${{ secrets.EXPERIMENTAL_KEYSTORE_PASSWORD }}" >> ./gradle.properties - echo -e "KEY_ALIAS=${{ secrets.EXPERIMENTAL_KEY_ALIAS }}" >> ./gradle.properties - echo -e "KEY_PASSWORD=${{ secrets.EXPERIMENTAL_KEY_PASSWORD }}" >> ./gradle.properties - echo -e "BugsnagAPIKey=${{ secrets.BUGSNAG_KEY }}" >> ./gradle.properties - + echo -e "KEYSTORE_PASSWORD=${{ secrets.KEYSTORE_OFFICIAL_PASSWORD }}" >> ./gradle.properties + echo -e "KEY_ALIAS=${{ secrets.KEYSTORE_OFFICIAL_ALIAS }}" >> ./gradle.properties + echo -e "KEY_PASSWORD=${{ secrets.KEYSTORE_OFFICIAL_PASSWORD }}" >> ./gradle.properties + echo -e "BugsnagAPIKey=${{ secrets.BUGSNAG_KEY_OFFICIAL }}" >> ./gradle.properties + - name: Build Android Release APK working-directory: android - run: ./gradlew assembleExperimentalRelease --build-cache --parallel --max-workers=4 --no-daemon --stacktrace + run: ./gradlew assembleOfficialRelease --build-cache --parallel --max-workers=4 --no-daemon --stacktrace env: RUNNING_E2E_TESTS: true - name: Upload APK uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 with: - name: Android Experimental APK - path: android/app/build/outputs/apk/experimental/release/app-experimental-release.apk + name: Android Official APK + path: android/app/build/outputs/apk/official/release/app-official-release.apk diff --git a/.github/workflows/e2e-build-ios.yml b/.github/workflows/e2e-build-ios.yml index 3a6416d2770..240c2501c92 100644 --- a/.github/workflows/e2e-build-ios.yml +++ b/.github/workflows/e2e-build-ios.yml @@ -70,17 +70,20 @@ jobs: run: | echo ${{ secrets.APP_STORE_CONNECT_API_KEY_BASE64 }} | base64 --decode > ./ios/fastlane/app_store_connect_api_key.p8 - - name: Set bugsnag key + - name: Set bugsnag key and IS_OFFICIAL run: | cd ios /usr/libexec/PlistBuddy -c "Set :bugsnag:apiKey ${{ secrets.BUGSNAG_KEY}}" ./RocketChatRN/Info.plist /usr/libexec/PlistBuddy -c "Set :bugsnag:apiKey ${{ secrets.BUGSNAG_KEY}}" ./ShareRocketChatRN/Info.plist + /usr/libexec/PlistBuddy -c "Set IS_OFFICIAL YES" ./RocketChatRN/Info.plist + /usr/libexec/PlistBuddy -c "Set IS_OFFICIAL YES" ./ShareRocketChatRN/Info.plist + /usr/libexec/PlistBuddy -c "Set IS_OFFICIAL YES" ./NotificationService/Info.plist - name: Build iOS app run: | cd ios export RUNNING_E2E_TESTS=true - bundle exec fastlane ios build_experimental_simulator \ + bundle exec fastlane ios build_official_simulator \ disable_xcpretty:false \ skip_package_ipa:true \ skip_archive:true @@ -104,4 +107,4 @@ jobs: uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 with: name: ios-simulator-app - path: ${{ steps.find_xcarchive.outputs.archive_path }}/Products/Applications/Rocket.Chat Experimental.app + path: ${{ steps.find_xcarchive.outputs.archive_path }}/Products/Applications/Rocket.Chat.app diff --git a/.github/workflows/maestro-android.yml b/.github/workflows/maestro-android.yml index 506b67b6426..0026e64d027 100644 --- a/.github/workflows/maestro-android.yml +++ b/.github/workflows/maestro-android.yml @@ -42,7 +42,7 @@ jobs: - name: Download APK uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 with: - name: Android Experimental APK + name: Android Official APK - name: Setup E2E Account uses: ./.github/actions/e2e-account diff --git a/.maestro/config.yml b/.maestro/config.yml index 0f63df93323..5eeda4b7f56 100644 --- a/.maestro/config.yml +++ b/.maestro/config.yml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} flows: - tests/** excludeTags: diff --git a/.maestro/helpers/create-account.yaml b/.maestro/helpers/create-account.yaml index 01350a1d8d1..9332cb03121 100644 --- a/.maestro/helpers/create-account.yaml +++ b/.maestro/helpers/create-account.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Create Account tags: - 'util' diff --git a/.maestro/helpers/erase-text.yaml b/.maestro/helpers/erase-text.yaml index 616f8863b71..c1633ff81aa 100644 --- a/.maestro/helpers/erase-text.yaml +++ b/.maestro/helpers/erase-text.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Erase Text tags: - 'util' diff --git a/.maestro/helpers/go-back.yaml b/.maestro/helpers/go-back.yaml index 2e189a8f5cd..667f678c475 100644 --- a/.maestro/helpers/go-back.yaml +++ b/.maestro/helpers/go-back.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Go back tags: - 'util' diff --git a/.maestro/helpers/hide-keyboard.yaml b/.maestro/helpers/hide-keyboard.yaml index e85077c5f7c..36ba31b8d87 100644 --- a/.maestro/helpers/hide-keyboard.yaml +++ b/.maestro/helpers/hide-keyboard.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Hide Keyboard tags: - 'util' diff --git a/.maestro/helpers/launch-app.yaml b/.maestro/helpers/launch-app.yaml index fa6607fa60a..a992c663aec 100644 --- a/.maestro/helpers/launch-app.yaml +++ b/.maestro/helpers/launch-app.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Launch app tags: - 'util' diff --git a/.maestro/helpers/login-with-deeplink.yaml b/.maestro/helpers/login-with-deeplink.yaml index d9b1ee77ae5..3f3e93e3c83 100644 --- a/.maestro/helpers/login-with-deeplink.yaml +++ b/.maestro/helpers/login-with-deeplink.yaml @@ -1,15 +1,15 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Login with Deeplink tags: - 'util' --- -- stopApp: chat.rocket.reactnative +- stopApp: ${APP_ID} - runFlow: when: true: CLEAR_STATE commands: - - clearState: chat.rocket.reactnative + - clearState: ${APP_ID} - setPermissions: permissions: all: allow diff --git a/.maestro/helpers/login.yaml b/.maestro/helpers/login.yaml index 8d3d8ea4491..7b0ae9f69c0 100644 --- a/.maestro/helpers/login.yaml +++ b/.maestro/helpers/login.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Login tags: - 'util' diff --git a/.maestro/helpers/logout.yaml b/.maestro/helpers/logout.yaml index e58688f6463..ccc663c80ac 100644 --- a/.maestro/helpers/logout.yaml +++ b/.maestro/helpers/logout.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Logout tags: - 'util' diff --git a/.maestro/helpers/navigate-to-login.yaml b/.maestro/helpers/navigate-to-login.yaml index d6acb3d955e..88fcab0429d 100644 --- a/.maestro/helpers/navigate-to-login.yaml +++ b/.maestro/helpers/navigate-to-login.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Navigate to login tags: - 'util' diff --git a/.maestro/helpers/navigate-to-recent-room.yaml b/.maestro/helpers/navigate-to-recent-room.yaml index 844905540b0..fdfc1057707 100644 --- a/.maestro/helpers/navigate-to-recent-room.yaml +++ b/.maestro/helpers/navigate-to-recent-room.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Navigate to recent room tags: - 'util' diff --git a/.maestro/helpers/navigate-to-register.yaml b/.maestro/helpers/navigate-to-register.yaml index 9f99887bc32..9bfae640c6e 100644 --- a/.maestro/helpers/navigate-to-register.yaml +++ b/.maestro/helpers/navigate-to-register.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Navigate to register tags: - 'util' diff --git a/.maestro/helpers/navigate-to-room-action.yaml b/.maestro/helpers/navigate-to-room-action.yaml index 4e182b71ad8..08a0dfeb718 100644 --- a/.maestro/helpers/navigate-to-room-action.yaml +++ b/.maestro/helpers/navigate-to-room-action.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Navigate to room action tags: - 'util' diff --git a/.maestro/helpers/navigate-to-room.yaml b/.maestro/helpers/navigate-to-room.yaml index 6b71c565378..e8eba0728b0 100644 --- a/.maestro/helpers/navigate-to-room.yaml +++ b/.maestro/helpers/navigate-to-room.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Navigate to room tags: - 'util' diff --git a/.maestro/helpers/navigate-to-workspace.yaml b/.maestro/helpers/navigate-to-workspace.yaml index 091c10f50a8..b49a611a621 100644 --- a/.maestro/helpers/navigate-to-workspace.yaml +++ b/.maestro/helpers/navigate-to-workspace.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Navigate to workspace tags: - 'util' diff --git a/.maestro/helpers/open-deeplink.yaml b/.maestro/helpers/open-deeplink.yaml index 2ca10361e47..8f988e8f1f1 100644 --- a/.maestro/helpers/open-deeplink.yaml +++ b/.maestro/helpers/open-deeplink.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Open Deep Link tags: - 'util' diff --git a/.maestro/helpers/search-and-navigate-room.yaml b/.maestro/helpers/search-and-navigate-room.yaml index a62e032c375..ba8479a1c02 100644 --- a/.maestro/helpers/search-and-navigate-room.yaml +++ b/.maestro/helpers/search-and-navigate-room.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Search and navigate room tags: - 'util' diff --git a/.maestro/helpers/search-room.yaml b/.maestro/helpers/search-room.yaml index 59eef9262ed..10abc7dba89 100644 --- a/.maestro/helpers/search-room.yaml +++ b/.maestro/helpers/search-room.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Search room tags: - 'util' diff --git a/.maestro/helpers/send-message.yaml b/.maestro/helpers/send-message.yaml index c315e8dd354..b5210b7d4d6 100644 --- a/.maestro/helpers/send-message.yaml +++ b/.maestro/helpers/send-message.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Send message tags: - 'util' diff --git a/.maestro/helpers/setup.yaml b/.maestro/helpers/setup.yaml index 7367920f405..2dc640f475a 100644 --- a/.maestro/helpers/setup.yaml +++ b/.maestro/helpers/setup.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} tags: - 'util' diff --git a/.maestro/tests/accessibilityAndAppearance/ToastsAndDialogs.yml b/.maestro/tests/accessibilityAndAppearance/ToastsAndDialogs.yml index 973e6f430f3..2a2cea33ceb 100644 --- a/.maestro/tests/accessibilityAndAppearance/ToastsAndDialogs.yml +++ b/.maestro/tests/accessibilityAndAppearance/ToastsAndDialogs.yml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Toasts and Dialogs onFlowStart: - runFlow: '../../helpers/setup.yaml' diff --git a/.maestro/tests/assorted/accessibility-and-appearance.yaml b/.maestro/tests/assorted/accessibility-and-appearance.yaml index c3df95a495f..04a79a29fcd 100644 --- a/.maestro/tests/assorted/accessibility-and-appearance.yaml +++ b/.maestro/tests/assorted/accessibility-and-appearance.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Accessibility and Appearance onFlowStart: - runFlow: '../../helpers/setup.yaml' diff --git a/.maestro/tests/assorted/broadcast.yaml b/.maestro/tests/assorted/broadcast.yaml index f8bca168bc4..254c6b78b1b 100644 --- a/.maestro/tests/assorted/broadcast.yaml +++ b/.maestro/tests/assorted/broadcast.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Broadcast onFlowStart: - runFlow: '../../helpers/setup.yaml' diff --git a/.maestro/tests/assorted/change-avatar.yaml b/.maestro/tests/assorted/change-avatar.yaml index 7a40abd5638..72285dfc884 100644 --- a/.maestro/tests/assorted/change-avatar.yaml +++ b/.maestro/tests/assorted/change-avatar.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Change Avatar onFlowStart: - runFlow: '../../helpers/setup.yaml' diff --git a/.maestro/tests/assorted/changeserver.yaml b/.maestro/tests/assorted/changeserver.yaml index c87fcfc4dd0..897eabe427d 100644 --- a/.maestro/tests/assorted/changeserver.yaml +++ b/.maestro/tests/assorted/changeserver.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Change Server onFlowStart: - runFlow: '../../helpers/setup.yaml' diff --git a/.maestro/tests/assorted/deeplink.yaml b/.maestro/tests/assorted/deeplink.yaml index b6fac536505..4c5780f8b29 100644 --- a/.maestro/tests/assorted/deeplink.yaml +++ b/.maestro/tests/assorted/deeplink.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: DeepLink Test onFlowStart: - runFlow: '../../helpers/setup.yaml' @@ -18,7 +18,7 @@ tags: # should run a deep link to an invalid account and raise error - runFlow: file: '../../helpers/launch-app.yaml' -- stopApp: chat.rocket.reactnative +- stopApp: ${APP_ID} - runFlow: file: '../../helpers/open-deeplink.yaml' env: @@ -31,7 +31,7 @@ tags: # should authenticate and navigate - runFlow: file: '../../helpers/launch-app.yaml' -- stopApp: chat.rocket.reactnative +- stopApp: ${APP_ID} - evalScript: ${output.utils.getDeepLink('auth', output.data.server, 'userId=', output.login.userId, '&token=', output.login.authToken, '&path=group/', output.room.name)} - runFlow: file: '../../helpers/open-deeplink.yaml' @@ -65,7 +65,7 @@ tags: - runFlow: '../../helpers/create-account.yaml' # should authenticate and navigate back to the previous server -- stopApp: chat.rocket.reactnative +- stopApp: ${APP_ID} - runFlow: file: '../../helpers/open-deeplink.yaml' env: @@ -89,7 +89,7 @@ tags: timeout: 60000 # should navigate to the room using path -- stopApp: chat.rocket.reactnative +- stopApp: ${APP_ID} - runFlow: file: '../../helpers/open-deeplink.yaml' env: @@ -100,7 +100,7 @@ tags: timeout: 60000 # should navigate to the thread using path -- stopApp: chat.rocket.reactnative +- stopApp: ${APP_ID} - runFlow: file: '../../helpers/open-deeplink.yaml' env: @@ -111,7 +111,7 @@ tags: timeout: 60000 # should navigate to the room using rid -- stopApp: chat.rocket.reactnative +- stopApp: ${APP_ID} - runFlow: file: '../../helpers/open-deeplink.yaml' env: @@ -162,7 +162,7 @@ tags: file: './utils/check-server.yaml' env: server: ${output.data.alternateServer} -- stopApp: chat.rocket.reactnative +- stopApp: ${APP_ID} - runFlow: file: '../../helpers/open-deeplink.yaml' env: @@ -173,7 +173,7 @@ tags: timeout: 60000 # should add a not existing server and fallback to the previous one -- stopApp: chat.rocket.reactnative +- stopApp: ${APP_ID} - runFlow: file: '../../helpers/open-deeplink.yaml' env: @@ -185,7 +185,7 @@ tags: # should share text - evalScript: ${output.message = output.random()} -- stopApp: chat.rocket.reactnative +- stopApp: ${APP_ID} - runFlow: file: '../../helpers/open-deeplink.yaml' env: @@ -243,7 +243,7 @@ tags: file: './utils/check-server.yaml' env: server: ${output.data.alternateServer} -- stopApp: chat.rocket.reactnative +- stopApp: ${APP_ID} - runFlow: file: '../../helpers/open-deeplink.yaml' env: @@ -301,7 +301,7 @@ tags: # should open share without being logged in and go to onboarding - runFlow: file: '../../helpers/launch-app.yaml' -- stopApp: chat.rocket.reactnative +- stopApp: ${APP_ID} - runFlow: file: '../../helpers/open-deeplink.yaml' env: diff --git a/.maestro/tests/assorted/delete-server.yaml b/.maestro/tests/assorted/delete-server.yaml index 3e930bc7746..5728d753b7a 100644 --- a/.maestro/tests/assorted/delete-server.yaml +++ b/.maestro/tests/assorted/delete-server.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Delete Server onFlowStart: - runFlow: '../../helpers/setup.yaml' diff --git a/.maestro/tests/assorted/display-perf.yaml b/.maestro/tests/assorted/display-perf.yaml index be6f47955e7..57f8a6c6591 100644 --- a/.maestro/tests/assorted/display-perf.yaml +++ b/.maestro/tests/assorted/display-perf.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Display Perf onFlowStart: - runFlow: '../../helpers/setup.yaml' diff --git a/.maestro/tests/assorted/i18n.yaml b/.maestro/tests/assorted/i18n.yaml index f156ccfe320..b4be402f7b2 100644 --- a/.maestro/tests/assorted/i18n.yaml +++ b/.maestro/tests/assorted/i18n.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: I18N Test onFlowStart: - runFlow: '../../helpers/setup.yaml' diff --git a/.maestro/tests/assorted/in-app-notification.yaml b/.maestro/tests/assorted/in-app-notification.yaml index 3913ca98c1e..7b60d11506f 100644 --- a/.maestro/tests/assorted/in-app-notification.yaml +++ b/.maestro/tests/assorted/in-app-notification.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: In App Notification onFlowStart: - runFlow: '../../helpers/setup.yaml' diff --git a/.maestro/tests/assorted/join-from-directory.yaml b/.maestro/tests/assorted/join-from-directory.yaml index d536cb874bb..748345c4f5d 100644 --- a/.maestro/tests/assorted/join-from-directory.yaml +++ b/.maestro/tests/assorted/join-from-directory.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Join From Directory onFlowStart: - runFlow: '../../helpers/setup.yaml' diff --git a/.maestro/tests/assorted/join-protected-room.yaml b/.maestro/tests/assorted/join-protected-room.yaml index 071727b8759..3268412d28b 100644 --- a/.maestro/tests/assorted/join-protected-room.yaml +++ b/.maestro/tests/assorted/join-protected-room.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Join Protected Room onFlowStart: - runFlow: '../../helpers/setup.yaml' diff --git a/.maestro/tests/assorted/join-public-room.yaml b/.maestro/tests/assorted/join-public-room.yaml index 4e4860783b6..c7f82ad1bd9 100644 --- a/.maestro/tests/assorted/join-public-room.yaml +++ b/.maestro/tests/assorted/join-public-room.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Join Public Room onFlowStart: - runFlow: '../../helpers/setup.yaml' diff --git a/.maestro/tests/assorted/profile.yaml b/.maestro/tests/assorted/profile.yaml index e6741045fc4..42e26a06df7 100644 --- a/.maestro/tests/assorted/profile.yaml +++ b/.maestro/tests/assorted/profile.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Profile onFlowStart: - runFlow: '../../helpers/setup.yaml' diff --git a/.maestro/tests/assorted/setting.yaml b/.maestro/tests/assorted/setting.yaml index e5991253235..04e7578fe6b 100644 --- a/.maestro/tests/assorted/setting.yaml +++ b/.maestro/tests/assorted/setting.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Setting onFlowStart: - runFlow: '../../helpers/setup.yaml' diff --git a/.maestro/tests/assorted/status.yaml b/.maestro/tests/assorted/status.yaml index 52898e8a441..88e5f418369 100644 --- a/.maestro/tests/assorted/status.yaml +++ b/.maestro/tests/assorted/status.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Status onFlowStart: - runFlow: '../../helpers/setup.yaml' diff --git a/.maestro/tests/assorted/user-preferences.yaml b/.maestro/tests/assorted/user-preferences.yaml index a11f1c2a48e..80e026160c5 100644 --- a/.maestro/tests/assorted/user-preferences.yaml +++ b/.maestro/tests/assorted/user-preferences.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: User Preferences onFlowStart: - runFlow: '../../helpers/setup.yaml' diff --git a/.maestro/tests/assorted/utils/check-server.yaml b/.maestro/tests/assorted/utils/check-server.yaml index 1afb7eec96b..7e180616e21 100644 --- a/.maestro/tests/assorted/utils/check-server.yaml +++ b/.maestro/tests/assorted/utils/check-server.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Check Server tags: - 'util' diff --git a/.maestro/tests/assorted/utils/go-to-accessibility-appearance.yaml b/.maestro/tests/assorted/utils/go-to-accessibility-appearance.yaml index 3ffd45d33c6..f54a4946e4c 100644 --- a/.maestro/tests/assorted/utils/go-to-accessibility-appearance.yaml +++ b/.maestro/tests/assorted/utils/go-to-accessibility-appearance.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Go To Accessibility and Appearance tags: - 'util' diff --git a/.maestro/tests/assorted/utils/go-to-display-pref.yaml b/.maestro/tests/assorted/utils/go-to-display-pref.yaml index 41fba08efeb..4acea68390c 100644 --- a/.maestro/tests/assorted/utils/go-to-display-pref.yaml +++ b/.maestro/tests/assorted/utils/go-to-display-pref.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Go To Display Pref tags: - 'util' diff --git a/.maestro/tests/assorted/utils/go-to-room-list.yaml b/.maestro/tests/assorted/utils/go-to-room-list.yaml index 66b5ee58489..6734380e054 100644 --- a/.maestro/tests/assorted/utils/go-to-room-list.yaml +++ b/.maestro/tests/assorted/utils/go-to-room-list.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Go To Room List tags: - 'util' diff --git a/.maestro/tests/assorted/utils/go-to-user-preference.yaml b/.maestro/tests/assorted/utils/go-to-user-preference.yaml index 255182b02c1..3a735db6b03 100644 --- a/.maestro/tests/assorted/utils/go-to-user-preference.yaml +++ b/.maestro/tests/assorted/utils/go-to-user-preference.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Go To User Preferences tags: - 'util' diff --git a/.maestro/tests/assorted/utils/nav-to-language.yaml b/.maestro/tests/assorted/utils/nav-to-language.yaml index 8971996dfb5..e92b341fad1 100644 --- a/.maestro/tests/assorted/utils/nav-to-language.yaml +++ b/.maestro/tests/assorted/utils/nav-to-language.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Navigation To Language tags: - 'util' diff --git a/.maestro/tests/e2ee/e2e-encryption.yaml b/.maestro/tests/e2ee/e2e-encryption.yaml index c33017c39c3..a4852dbb510 100644 --- a/.maestro/tests/e2ee/e2e-encryption.yaml +++ b/.maestro/tests/e2ee/e2e-encryption.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: E2E Encryption onFlowStart: - runFlow: '../../helpers/setup.yaml' diff --git a/.maestro/tests/e2ee/flows/accept-new-key-and-verify.yaml b/.maestro/tests/e2ee/flows/accept-new-key-and-verify.yaml index 83efffea638..88217a6336d 100644 --- a/.maestro/tests/e2ee/flows/accept-new-key-and-verify.yaml +++ b/.maestro/tests/e2ee/flows/accept-new-key-and-verify.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Accept New Key and Verify Messages tags: - 'flow' diff --git a/.maestro/tests/e2ee/flows/check-encrypted-room-without-key.yaml b/.maestro/tests/e2ee/flows/check-encrypted-room-without-key.yaml index b84d816072b..99477fe2c96 100644 --- a/.maestro/tests/e2ee/flows/check-encrypted-room-without-key.yaml +++ b/.maestro/tests/e2ee/flows/check-encrypted-room-without-key.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Check Encrypted Room Without Key tags: - 'flow' diff --git a/.maestro/tests/e2ee/flows/create-e2ee-room.yaml b/.maestro/tests/e2ee/flows/create-e2ee-room.yaml index 551a94362c6..02219c31d1d 100644 --- a/.maestro/tests/e2ee/flows/create-e2ee-room.yaml +++ b/.maestro/tests/e2ee/flows/create-e2ee-room.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Create E2EE Room tags: - 'flow' diff --git a/.maestro/tests/e2ee/flows/edit-message-and-verify.yaml b/.maestro/tests/e2ee/flows/edit-message-and-verify.yaml index 158da7a36e4..be4c8776db0 100644 --- a/.maestro/tests/e2ee/flows/edit-message-and-verify.yaml +++ b/.maestro/tests/e2ee/flows/edit-message-and-verify.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Edit Message and Verify tags: - 'flow' diff --git a/.maestro/tests/e2ee/flows/enter-key-read-and-send.yaml b/.maestro/tests/e2ee/flows/enter-key-read-and-send.yaml index fc964dee4ba..30fe8e92199 100644 --- a/.maestro/tests/e2ee/flows/enter-key-read-and-send.yaml +++ b/.maestro/tests/e2ee/flows/enter-key-read-and-send.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Enter Key, Read Messages and Send tags: - 'flow' diff --git a/.maestro/tests/e2ee/flows/quote-message.yaml b/.maestro/tests/e2ee/flows/quote-message.yaml index a5529bef310..8de62565e22 100644 --- a/.maestro/tests/e2ee/flows/quote-message.yaml +++ b/.maestro/tests/e2ee/flows/quote-message.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Quote Message tags: - 'flow' diff --git a/.maestro/tests/e2ee/flows/reset-keys-and-send.yaml b/.maestro/tests/e2ee/flows/reset-keys-and-send.yaml index 177fd27a304..f607b8d3957 100644 --- a/.maestro/tests/e2ee/flows/reset-keys-and-send.yaml +++ b/.maestro/tests/e2ee/flows/reset-keys-and-send.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Reset Keys and Send Message tags: - 'flow' diff --git a/.maestro/tests/e2ee/flows/send-and-verify-message.yaml b/.maestro/tests/e2ee/flows/send-and-verify-message.yaml index 4abba6a4124..e6bac2b319b 100644 --- a/.maestro/tests/e2ee/flows/send-and-verify-message.yaml +++ b/.maestro/tests/e2ee/flows/send-and-verify-message.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Send and Verify Message tags: - 'flow' diff --git a/.maestro/tests/e2ee/flows/setup-user.yaml b/.maestro/tests/e2ee/flows/setup-user.yaml index c69d9630a87..d08592d1832 100644 --- a/.maestro/tests/e2ee/flows/setup-user.yaml +++ b/.maestro/tests/e2ee/flows/setup-user.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Setup User tags: - 'flow' diff --git a/.maestro/tests/e2ee/flows/verify-message-unread.yaml b/.maestro/tests/e2ee/flows/verify-message-unread.yaml index 67cd44695fd..562c458cba0 100644 --- a/.maestro/tests/e2ee/flows/verify-message-unread.yaml +++ b/.maestro/tests/e2ee/flows/verify-message-unread.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Verify Message Unread tags: - 'flow' diff --git a/.maestro/tests/e2ee/flows/verify-messages-read.yaml b/.maestro/tests/e2ee/flows/verify-messages-read.yaml index 36704d60962..9aa78aa18da 100644 --- a/.maestro/tests/e2ee/flows/verify-messages-read.yaml +++ b/.maestro/tests/e2ee/flows/verify-messages-read.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Verify Messages Read tags: - 'flow' diff --git a/.maestro/tests/e2ee/utils/change-e2ee-key.yaml b/.maestro/tests/e2ee/utils/change-e2ee-key.yaml index de401fc5c96..c032e330666 100644 --- a/.maestro/tests/e2ee/utils/change-e2ee-key.yaml +++ b/.maestro/tests/e2ee/utils/change-e2ee-key.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Change E2EE Key tags: - 'util' diff --git a/.maestro/tests/e2ee/utils/enter-e2e-key.yaml b/.maestro/tests/e2ee/utils/enter-e2e-key.yaml index 33d9c0c6ca2..806a6fd5687 100644 --- a/.maestro/tests/e2ee/utils/enter-e2e-key.yaml +++ b/.maestro/tests/e2ee/utils/enter-e2e-key.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Enter E2EE Key tags: - 'util' diff --git a/.maestro/tests/e2ee/utils/navigate-to-e2ee-security.yaml b/.maestro/tests/e2ee/utils/navigate-to-e2ee-security.yaml index 33a13e9b05a..00c21e89233 100644 --- a/.maestro/tests/e2ee/utils/navigate-to-e2ee-security.yaml +++ b/.maestro/tests/e2ee/utils/navigate-to-e2ee-security.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Navigate to E2EE Security tags: - 'util' diff --git a/.maestro/tests/e2ee/utils/reset-e2ee-key.yaml b/.maestro/tests/e2ee/utils/reset-e2ee-key.yaml index 8c9cd91df71..5bba55cde2b 100644 --- a/.maestro/tests/e2ee/utils/reset-e2ee-key.yaml +++ b/.maestro/tests/e2ee/utils/reset-e2ee-key.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Reset E2EE Key tags: - 'util' diff --git a/.maestro/tests/keyboardNavigation/keyboard-navigation-components.yaml b/.maestro/tests/keyboardNavigation/keyboard-navigation-components.yaml index ef5ee2fc5d8..da7b8376cad 100644 --- a/.maestro/tests/keyboardNavigation/keyboard-navigation-components.yaml +++ b/.maestro/tests/keyboardNavigation/keyboard-navigation-components.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Keyboard Navigation Components onFlowStart: - runFlow: '../../helpers/setup.yaml' diff --git a/.maestro/tests/keyboardNavigation/keyboard-navigation-onboarding.yaml b/.maestro/tests/keyboardNavigation/keyboard-navigation-onboarding.yaml index 1571c6c9be9..8d48340f4ef 100644 --- a/.maestro/tests/keyboardNavigation/keyboard-navigation-onboarding.yaml +++ b/.maestro/tests/keyboardNavigation/keyboard-navigation-onboarding.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Keyboard Navigation Onboarding onFlowStart: - runFlow: '../../helpers/setup.yaml' diff --git a/.maestro/tests/keyboardNavigation/keyboard-navigation-room.yaml b/.maestro/tests/keyboardNavigation/keyboard-navigation-room.yaml index ddc5cc993e6..a27fe8ec2c5 100644 --- a/.maestro/tests/keyboardNavigation/keyboard-navigation-room.yaml +++ b/.maestro/tests/keyboardNavigation/keyboard-navigation-room.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Keyboard Navigation Room jsEngine: graaljs onFlowStart: diff --git a/.maestro/tests/onboarding/change-password.yaml b/.maestro/tests/onboarding/change-password.yaml index 5c5276aa5e5..fda830d31e7 100644 --- a/.maestro/tests/onboarding/change-password.yaml +++ b/.maestro/tests/onboarding/change-password.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Required Password Change onFlowStart: - runFlow: '../../helpers/setup.yaml' diff --git a/.maestro/tests/onboarding/forgot-password.yaml b/.maestro/tests/onboarding/forgot-password.yaml index 2148d9accce..190913872b2 100644 --- a/.maestro/tests/onboarding/forgot-password.yaml +++ b/.maestro/tests/onboarding/forgot-password.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Forgot Password onFlowStart: - runFlow: '../../helpers/setup.yaml' diff --git a/.maestro/tests/onboarding/legal.yaml b/.maestro/tests/onboarding/legal.yaml index 9a059e8759e..f390ae68d76 100644 --- a/.maestro/tests/onboarding/legal.yaml +++ b/.maestro/tests/onboarding/legal.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Legal onFlowStart: - runFlow: '../../helpers/setup.yaml' diff --git a/.maestro/tests/onboarding/login/invalid-credentials.yaml b/.maestro/tests/onboarding/login/invalid-credentials.yaml index 6068f2761b1..cac52333e3e 100644 --- a/.maestro/tests/onboarding/login/invalid-credentials.yaml +++ b/.maestro/tests/onboarding/login/invalid-credentials.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Login (Invalid Credentials) onFlowStart: - runFlow: '../../../helpers/setup.yaml' diff --git a/.maestro/tests/onboarding/login/login.yaml b/.maestro/tests/onboarding/login/login.yaml index 133daf00888..474046928d8 100644 --- a/.maestro/tests/onboarding/login/login.yaml +++ b/.maestro/tests/onboarding/login/login.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Login onFlowStart: - runFlow: ../../../helpers/setup.yaml diff --git a/.maestro/tests/onboarding/register/create-account.yaml b/.maestro/tests/onboarding/register/create-account.yaml index 79364d8e509..06c7c234188 100644 --- a/.maestro/tests/onboarding/register/create-account.yaml +++ b/.maestro/tests/onboarding/register/create-account.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Create Account onFlowStart: - runFlow: '../../../helpers/setup.yaml' diff --git a/.maestro/tests/onboarding/register/email-used.yaml b/.maestro/tests/onboarding/register/email-used.yaml index 307a0e70e46..0b4c2c485cd 100644 --- a/.maestro/tests/onboarding/register/email-used.yaml +++ b/.maestro/tests/onboarding/register/email-used.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Create Account (Email Already Used) onFlowStart: - runFlow: '../../../helpers/setup.yaml' diff --git a/.maestro/tests/onboarding/register/username-used.yaml b/.maestro/tests/onboarding/register/username-used.yaml index 20129e6f451..124cb63c472 100644 --- a/.maestro/tests/onboarding/register/username-used.yaml +++ b/.maestro/tests/onboarding/register/username-used.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Create Account (Username Already Used) onFlowStart: - runFlow: '../../../helpers/setup.yaml' diff --git a/.maestro/tests/onboarding/roomslist.yaml b/.maestro/tests/onboarding/roomslist.yaml index 22087b72608..10086955d33 100644 --- a/.maestro/tests/onboarding/roomslist.yaml +++ b/.maestro/tests/onboarding/roomslist.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Rooms List onFlowStart: - runFlow: '../../helpers/setup.yaml' diff --git a/.maestro/tests/onboarding/server-history.yaml b/.maestro/tests/onboarding/server-history.yaml index 28dc94b701b..174708ee248 100644 --- a/.maestro/tests/onboarding/server-history.yaml +++ b/.maestro/tests/onboarding/server-history.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Server History onFlowStart: - runFlow: '../../helpers/setup.yaml' diff --git a/.maestro/tests/onboarding/workspace/invalid-workspace.yaml b/.maestro/tests/onboarding/workspace/invalid-workspace.yaml index 1033a7918a4..ad0f14623cf 100644 --- a/.maestro/tests/onboarding/workspace/invalid-workspace.yaml +++ b/.maestro/tests/onboarding/workspace/invalid-workspace.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Invalid Workspace tags: - test-3 diff --git a/.maestro/tests/onboarding/workspace/valid-workspace.yaml b/.maestro/tests/onboarding/workspace/valid-workspace.yaml index 17c6027ef29..e082dcceecd 100644 --- a/.maestro/tests/onboarding/workspace/valid-workspace.yaml +++ b/.maestro/tests/onboarding/workspace/valid-workspace.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Valid Workspace onFlowStart: - runFlow: '../../../helpers/setup.yaml' diff --git a/.maestro/tests/room/create-dm-group.yaml b/.maestro/tests/room/create-dm-group.yaml index e24fda7f561..12750ea7d0d 100644 --- a/.maestro/tests/room/create-dm-group.yaml +++ b/.maestro/tests/room/create-dm-group.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Create DM Group onFlowStart: - runFlow: '../../helpers/setup.yaml' diff --git a/.maestro/tests/room/create-room.yaml b/.maestro/tests/room/create-room.yaml index 5cbdf51a5b9..d7dc2f2df39 100644 --- a/.maestro/tests/room/create-room.yaml +++ b/.maestro/tests/room/create-room.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Create Room onFlowStart: - runFlow: '../../helpers/setup.yaml' diff --git a/.maestro/tests/room/discussion.yaml b/.maestro/tests/room/discussion.yaml index 3221343b4bb..ead9e56417c 100644 --- a/.maestro/tests/room/discussion.yaml +++ b/.maestro/tests/room/discussion.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Discussion onFlowStart: - runFlow: '../../helpers/setup.yaml' diff --git a/.maestro/tests/room/ignoreuser.yaml b/.maestro/tests/room/ignoreuser.yaml index 93b4df7c309..5a132da9c48 100644 --- a/.maestro/tests/room/ignoreuser.yaml +++ b/.maestro/tests/room/ignoreuser.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Ignore User onFlowStart: - runFlow: '../../helpers/setup.yaml' diff --git a/.maestro/tests/room/jump-to-message.yaml b/.maestro/tests/room/jump-to-message.yaml index 2f8c7f69d46..b6450b62dc3 100644 --- a/.maestro/tests/room/jump-to-message.yaml +++ b/.maestro/tests/room/jump-to-message.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Jump to message onFlowStart: - runFlow: '../../helpers/setup.yaml' diff --git a/.maestro/tests/room/mark-as-unread.yaml b/.maestro/tests/room/mark-as-unread.yaml index dbceb3d4c66..ec0718bbcf1 100644 --- a/.maestro/tests/room/mark-as-unread.yaml +++ b/.maestro/tests/room/mark-as-unread.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Mark as unread onFlowStart: - runFlow: '../../helpers/setup.yaml' diff --git a/.maestro/tests/room/message-markdown-click.yaml b/.maestro/tests/room/message-markdown-click.yaml index 3b6bab80b63..9f7db5977ad 100644 --- a/.maestro/tests/room/message-markdown-click.yaml +++ b/.maestro/tests/room/message-markdown-click.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Message Markdown jsEngine: graaljs onFlowStart: diff --git a/.maestro/tests/room/room-actions.yaml b/.maestro/tests/room/room-actions.yaml index df2b95a9a76..f4e26cb28d6 100644 --- a/.maestro/tests/room/room-actions.yaml +++ b/.maestro/tests/room/room-actions.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Room Actions onFlowStart: - runFlow: '../../helpers/setup.yaml' diff --git a/.maestro/tests/room/room-info.yaml b/.maestro/tests/room/room-info.yaml index 7360de99c59..07a3f6ecebf 100644 --- a/.maestro/tests/room/room-info.yaml +++ b/.maestro/tests/room/room-info.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Room Info onFlowStart: - runFlow: '../../helpers/setup.yaml' diff --git a/.maestro/tests/room/room-last-message-thread-50-plus.yaml b/.maestro/tests/room/room-last-message-thread-50-plus.yaml index f49bb0a35d0..4a212d38fb2 100644 --- a/.maestro/tests/room/room-last-message-thread-50-plus.yaml +++ b/.maestro/tests/room/room-last-message-thread-50-plus.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Open room with last message as thread with more than 50 messages onFlowStart: - runFlow: '../../helpers/setup.yaml' diff --git a/.maestro/tests/room/room.yaml b/.maestro/tests/room/room.yaml index b29ad58be49..40732df488b 100644 --- a/.maestro/tests/room/room.yaml +++ b/.maestro/tests/room/room.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Room jsEngine: graaljs onFlowStart: diff --git a/.maestro/tests/room/search-member.yaml b/.maestro/tests/room/search-member.yaml index 6d6bf982b37..50d4a41a647 100644 --- a/.maestro/tests/room/search-member.yaml +++ b/.maestro/tests/room/search-member.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Search Member onFlowStart: - runFlow: '../../helpers/setup.yaml' diff --git a/.maestro/tests/room/search.yaml b/.maestro/tests/room/search.yaml index 07b94cc03d3..b20d35c6195 100644 --- a/.maestro/tests/room/search.yaml +++ b/.maestro/tests/room/search.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Search onFlowStart: - runFlow: '../../helpers/setup.yaml' diff --git a/.maestro/tests/room/share-message.yaml b/.maestro/tests/room/share-message.yaml index d7a339a9030..6864b3df583 100644 --- a/.maestro/tests/room/share-message.yaml +++ b/.maestro/tests/room/share-message.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Share Message onFlowStart: - runFlow: '../../helpers/setup.yaml' diff --git a/.maestro/tests/room/threads.yaml b/.maestro/tests/room/threads.yaml index c67374ca194..43d3ede6ea5 100644 --- a/.maestro/tests/room/threads.yaml +++ b/.maestro/tests/room/threads.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Threads onFlowStart: - runFlow: '../../helpers/setup.yaml' diff --git a/.maestro/tests/room/unread-badge.yaml b/.maestro/tests/room/unread-badge.yaml index e60fcfc3fda..939de021616 100644 --- a/.maestro/tests/room/unread-badge.yaml +++ b/.maestro/tests/room/unread-badge.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Unread badge onFlowStart: - runFlow: '../../helpers/setup.yaml' diff --git a/.maestro/tests/room/utils/clear-cache.yaml b/.maestro/tests/room/utils/clear-cache.yaml index 313ac3f1e1c..bf087ac3e01 100644 --- a/.maestro/tests/room/utils/clear-cache.yaml +++ b/.maestro/tests/room/utils/clear-cache.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Clear Cache tags: - 'util' diff --git a/.maestro/tests/room/utils/expect-thread-messages.yaml b/.maestro/tests/room/utils/expect-thread-messages.yaml index 0a703206105..5f3fbc3ae44 100644 --- a/.maestro/tests/room/utils/expect-thread-messages.yaml +++ b/.maestro/tests/room/utils/expect-thread-messages.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Expect Thread Messages tags: - 'util' diff --git a/.maestro/tests/room/utils/navigate-to-info-view.yaml b/.maestro/tests/room/utils/navigate-to-info-view.yaml index a12fa716528..c2b33f0a718 100644 --- a/.maestro/tests/room/utils/navigate-to-info-view.yaml +++ b/.maestro/tests/room/utils/navigate-to-info-view.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Navigate to info view tags: - 'util' diff --git a/.maestro/tests/room/utils/navigate-to-room-info.yaml b/.maestro/tests/room/utils/navigate-to-room-info.yaml index 5725232cea3..b440852dcbe 100644 --- a/.maestro/tests/room/utils/navigate-to-room-info.yaml +++ b/.maestro/tests/room/utils/navigate-to-room-info.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Check Server tags: - 'util' diff --git a/.maestro/tests/teams/convert-team.yaml b/.maestro/tests/teams/convert-team.yaml index 6abc340eac9..09a2e49ab0b 100644 --- a/.maestro/tests/teams/convert-team.yaml +++ b/.maestro/tests/teams/convert-team.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Convert Team onFlowStart: - runFlow: '../../helpers/setup.yaml' diff --git a/.maestro/tests/teams/create-team.yaml b/.maestro/tests/teams/create-team.yaml index d6dc9703777..0c14d9ba0b2 100644 --- a/.maestro/tests/teams/create-team.yaml +++ b/.maestro/tests/teams/create-team.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Create Team and Delete onFlowStart: - runFlow: '../../helpers/setup.yaml' diff --git a/.maestro/tests/teams/team.yaml b/.maestro/tests/teams/team.yaml index 4207534d68c..8baa31991b8 100644 --- a/.maestro/tests/teams/team.yaml +++ b/.maestro/tests/teams/team.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} name: Team onFlowStart: - runFlow: '../../helpers/setup.yaml' diff --git a/.maestro/tests/teams/utils/close-action-sheet.yaml b/.maestro/tests/teams/utils/close-action-sheet.yaml index 8a19f95eebc..f28deb1e7bf 100644 --- a/.maestro/tests/teams/utils/close-action-sheet.yaml +++ b/.maestro/tests/teams/utils/close-action-sheet.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} tags: - 'util' diff --git a/.maestro/tests/teams/utils/create-channel.yaml b/.maestro/tests/teams/utils/create-channel.yaml index e8f9d91fcb2..b84015412ad 100644 --- a/.maestro/tests/teams/utils/create-channel.yaml +++ b/.maestro/tests/teams/utils/create-channel.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} tags: - 'util' diff --git a/.maestro/tests/teams/utils/open-action-sheet.yaml b/.maestro/tests/teams/utils/open-action-sheet.yaml index b3bbd9808aa..fd2e4d0a692 100644 --- a/.maestro/tests/teams/utils/open-action-sheet.yaml +++ b/.maestro/tests/teams/utils/open-action-sheet.yaml @@ -1,4 +1,4 @@ -appId: chat.rocket.reactnative +appId: ${APP_ID} tags: - 'util' diff --git a/app/containers/DeprecationModal/index.tsx b/app/containers/DeprecationModal/index.tsx new file mode 100644 index 00000000000..9d9c0e30854 --- /dev/null +++ b/app/containers/DeprecationModal/index.tsx @@ -0,0 +1,92 @@ +import React, { useState } from 'react'; +import { Linking, Text, View } from 'react-native'; +import Modal from 'react-native-modal'; +import { GestureHandlerRootView } from 'react-native-gesture-handler'; + +import Button from '../Button'; +import sharedStyles from '../../views/Styles'; +import { useTheme } from '../../theme'; +import { useAppSelector } from '../../lib/hooks/useAppSelector'; +import { isIOS } from '../../lib/methods/helpers/deviceInfo'; +import { isOfficial } from '../../lib/constants/environment'; +import log from '../../lib/methods/helpers/log'; +import styles from './styles'; + +const OFFICIAL_APP_STORE_URL = 'https://apps.apple.com/us/app/rocket-chat/id1148741252'; +const OFFICIAL_PLAY_STORE_URL = 'https://play.google.com/store/apps/details?id=chat.rocket.android'; + +const TITLE = 'Rocket.Chat Experimental is being retired'; +const BODY = + 'Please install the official Rocket.Chat app and sign back in to your workspace. This Experimental build will stop receiving updates.'; +const CONTINUE_LABEL = 'Continue to app'; +const URL_LABEL = 'Or open this link manually:'; + +const DeprecationModal = React.memo(() => { + const { colors } = useTheme(); + const isMasterDetail = useAppSelector(state => state.app.isMasterDetail as boolean); + const [visible, setVisible] = useState(!isOfficial); + + if (isOfficial) { + return null; + } + + const storeUrl = isIOS ? OFFICIAL_APP_STORE_URL : OFFICIAL_PLAY_STORE_URL; + const storeButtonLabel = isIOS ? 'Open App Store' : 'Open Play Store'; + + const onOpenStore = async () => { + try { + await Linking.openURL(storeUrl); + } catch (e) { + log(e); + } + }; + + const onDismiss = () => { + setVisible(false); + }; + + const color = colors.fontTitlesLabels; + + return ( + } + avoidKeyboard + useNativeDriver + isVisible={visible} + hideModalContentWhileAnimating> + + + {TITLE} + {BODY} + {URL_LABEL} + + {storeUrl} + + +