From 0465f0ae87d5e25d63fdf819164427b56f94ef47 Mon Sep 17 00:00:00 2001 From: Anant Bhasin Date: Mon, 28 Jun 2021 02:17:57 +0530 Subject: [PATCH] Cleaned up code. Implemented proper abstraction --- .github/workflows/android_detox.yml | 52 ------------------- android/app/build.gradle | 15 +++++- .../e2e/res/xml/network_security_config.xml | 14 +++++ .../main/res/xml/network_security_config.xml | 4 -- android/gradle.properties | 7 +-- e2e/helpers/platformFunctions.js | 5 +- e2e/tests/assorted/01-e2eencryption.spec.js | 2 +- e2e/tests/assorted/02-broadcast.spec.js | 2 +- e2e/tests/assorted/03-profile.spec.js | 2 +- e2e/tests/assorted/04-setting.spec.js | 2 +- e2e/tests/assorted/05-joinpublicroom.spec.js | 4 +- e2e/tests/assorted/06-status.spec.js | 2 +- e2e/tests/assorted/07-changeserver.spec.js | 2 +- .../assorted/08-joinprotectedroom.spec.js | 2 +- .../assorted/09-joinfromdirectory.spec.js | 2 +- e2e/tests/assorted/10-deleteserver.spec.js | 2 +- e2e/tests/assorted/11-deeplinking.spec.js | 2 +- e2e/tests/assorted/12-i18n.spec.js | 2 +- e2e/tests/onboarding/01-onboarding.spec.js | 2 +- e2e/tests/onboarding/02-legal.spec.js | 2 +- .../onboarding/03-forgotpassword.spec.js | 2 +- e2e/tests/onboarding/04-createuser.spec.js | 2 +- e2e/tests/onboarding/05-login.spec.js | 2 +- e2e/tests/onboarding/06-roomslist.spec.js | 2 +- .../onboarding/07-server-history.spec.js | 2 +- e2e/tests/room/01-createroom.spec.js | 2 +- e2e/tests/room/02-room.spec.js | 2 +- e2e/tests/room/03-roomactions.spec.js | 2 +- e2e/tests/room/04-discussion.spec.js | 2 +- e2e/tests/room/05-threads.spec.js | 2 +- e2e/tests/room/06-createdmgroup.spec.js | 2 +- e2e/tests/room/07-markasunread.spec.js | 2 +- e2e/tests/room/08-roominfo.spec.js | 2 +- e2e/tests/room/09-jumptomessage.spec.js | 2 +- e2e/tests/team/01-createteam.spec.js | 2 +- e2e/tests/team/02-team.spec.js | 2 +- e2e/tests/team/03-moveconvert.spec.js | 2 +- package.json | 37 +++---------- 38 files changed, 73 insertions(+), 125 deletions(-) delete mode 100644 .github/workflows/android_detox.yml create mode 100644 android/app/src/e2e/res/xml/network_security_config.xml diff --git a/.github/workflows/android_detox.yml b/.github/workflows/android_detox.yml deleted file mode 100644 index febf73272..000000000 --- a/.github/workflows/android_detox.yml +++ /dev/null @@ -1,52 +0,0 @@ -name: Android Detox - -on: [pull_request] - -jobs: - build-android-experimental-play-debug: - runs-on: macos-latest - timeout-minutes: 240 - - steps: - - name: Checkout - uses: actions/checkout@v1 - with: - fetch-depth: 1 - - - name: Node - uses: actions/setup-node@v1 - - - name: Install JDK 8 - uses: actions/setup-java@v2 - with: - java-version: '8' - distribution: 'adopt' - - - name: Download Android Emulator Image - run: | - echo "y" | $ANDROID_HOME/tools/bin/sdkmanager --install "system-images;android-29;google_apis;x86" - echo "no" | $ANDROID_HOME/tools/bin/avdmanager create avd --force --name emu --device "Nexus 5X" -k 'system-images;android-29;google_apis;x86' - $ANDROID_HOME/emulator/emulator -list-avds - - - name: Install node_modules - run: | - yarn --frozen-lockfile --network-timeout 100000 - - - - name: Build for detox - run: | - yarn detox build e2e/tests --configuration android.experimental.play.emu.debug - yarn start & - - - name: Android Emulator - timeout-minutes: 10 - continue-on-error: true - run: | - echo "Starting emulator" - nohup $ANDROID_HOME/emulator/emulator -avd emu -no-audio -no-snapshot -no-window & - $ANDROID_HOME/platform-tools/adb wait-for-device shell 'while [[ -z $(getprop sys.boot_completed | tr -d '\r') ]]; do sleep 1; done; input keyevent 82' - $ANDROID_HOME/platform-tools/adb devices - echo "Emulator started" - - - name: Android Detox - run: yarn detox test e2e/tests --configuration android.experimental.play.emu.debug \ No newline at end of file diff --git a/android/app/build.gradle b/android/app/build.gradle index f47dca25a..ad78638fc 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -177,7 +177,6 @@ android { release { minifyEnabled enableProguardInReleaseBuilds setProguardFiles([getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro']) - proguardFile "${rootProject.projectDir}/../node_modules/detox/android/detox/proguard-rules-app.pro" signingConfig signingConfigs.release if (!isFoss) { firebaseCrashlytics { @@ -206,6 +205,10 @@ android { dimension = "app" buildConfigField "boolean", "IS_OFFICIAL", "false" } + e2e { + dimension = "app" + buildConfigField "boolean", "IS_OFFICIAL", "true" + } foss { dimension = "type" buildConfigField "boolean", "FDROID_BUILD", "true" @@ -233,6 +236,16 @@ android { java.srcDirs = ['src/main/java', 'src/play/java'] manifest.srcFile 'src/play/AndroidManifest.xml' } + e2ePlayDebug { + java.srcDirs = ['src/main/java', 'src/play/java'] + res.srcDirs = ['src/official/res'] + manifest.srcFile 'src/play/AndroidManifest.xml' + } + e2ePlayRelease { + java.srcDirs = ['src/main/java', 'src/play/java'] + res.srcDirs = ['src/official/res'] + manifest.srcFile 'src/play/AndroidManifest.xml' + } } applicationVariants.all { variant -> diff --git a/android/app/src/e2e/res/xml/network_security_config.xml b/android/app/src/e2e/res/xml/network_security_config.xml new file mode 100644 index 000000000..dd00b49fa --- /dev/null +++ b/android/app/src/e2e/res/xml/network_security_config.xml @@ -0,0 +1,14 @@ + + + + + + + + + + 10.0.2.2 + localhost + + \ No newline at end of file diff --git a/android/app/src/main/res/xml/network_security_config.xml b/android/app/src/main/res/xml/network_security_config.xml index dd00b49fa..94f5c1d0f 100644 --- a/android/app/src/main/res/xml/network_security_config.xml +++ b/android/app/src/main/res/xml/network_security_config.xml @@ -7,8 +7,4 @@ tools:ignore="AcceptsUserCertificates" /> - - 10.0.2.2 - localhost - \ No newline at end of file diff --git a/android/gradle.properties b/android/gradle.properties index ae9b34d89..53184a938 100644 --- a/android/gradle.properties +++ b/android/gradle.properties @@ -34,9 +34,4 @@ APPLICATION_ID=chat.rocket.reactnative # App properties VERSIONCODE=999999999 -BugsnagAPIKey="" - -KEYSTORE=release.keystore -KEY_PASSWORD=password -KEY_ALIAS=rocketchat_test_keystore -KEYSTORE_PASSWORD=password \ No newline at end of file +BugsnagAPIKey="" \ No newline at end of file diff --git a/e2e/helpers/platformFunctions.js b/e2e/helpers/platformFunctions.js index 332187130..eb54aa37b 100644 --- a/e2e/helpers/platformFunctions.js +++ b/e2e/helpers/platformFunctions.js @@ -17,7 +17,10 @@ function runCommand(command) { }); } +// The Spell Checker and the autofill service introduce additional flakiness, and appear over other elements. +// So, we disable them before running the tests. exports.prepareAndroid = async () => { + if(device.getPlatform() !== 'android') return; await runCommand('adb shell settings put secure spell_checker_enabled 0'); await runCommand('adb shell settings put secure autofill_service null'); } @@ -31,7 +34,7 @@ exports.launchWithLanguage = async (language, countryCode="US", launchArgs=defau { await runCommand('adb root'); await runCommand(`adb shell "setprop persist.sys.locale ${language}-${countryCode}; setprop ctl.restart zygote"`); - await sleep(5000); + await sleep(20000); await device.launchApp(launchArgs); } else diff --git a/e2e/tests/assorted/01-e2eencryption.spec.js b/e2e/tests/assorted/01-e2eencryption.spec.js index 34542606e..c5da2bbaf 100644 --- a/e2e/tests/assorted/01-e2eencryption.spec.js +++ b/e2e/tests/assorted/01-e2eencryption.spec.js @@ -51,7 +51,7 @@ describe('E2E Encryption', () => { before(async () => { await device.launchApp({ permissions: { notifications: 'YES' }, delete: true }); - if(device.getPlatform() == 'android') await prepareAndroid(); + await prepareAndroid(); ({ alertButtonType, scrollViewType } = platformTypes[device.getPlatform()]); await navigateToLogin(); await login(testuser.username, testuser.password); diff --git a/e2e/tests/assorted/02-broadcast.spec.js b/e2e/tests/assorted/02-broadcast.spec.js index 84a9e9e63..e38fe4a5a 100644 --- a/e2e/tests/assorted/02-broadcast.spec.js +++ b/e2e/tests/assorted/02-broadcast.spec.js @@ -13,7 +13,7 @@ const otheruser = data.users.alternate describe('Broadcast room', () => { before(async() => { await device.launchApp({ permissions: { notifications: 'YES' }, delete: true }); - if(device.getPlatform() == 'android') await prepareAndroid(); + await prepareAndroid(); await navigateToLogin(); await login(testuser.username, testuser.password); }); diff --git a/e2e/tests/assorted/03-profile.spec.js b/e2e/tests/assorted/03-profile.spec.js index 2bb8695bc..c907fc2a1 100644 --- a/e2e/tests/assorted/03-profile.spec.js +++ b/e2e/tests/assorted/03-profile.spec.js @@ -24,7 +24,7 @@ describe('Profile screen', () => { before(async() => { await device.launchApp({ permissions: { notifications: 'YES' }, delete: true }); - if(device.getPlatform() == 'android') await prepareAndroid(); + await prepareAndroid(); ({ textInputType, scrollViewType } = platformTypes[device.getPlatform()]); await navigateToLogin(); await login(profileChangeUser.username, profileChangeUser.password); diff --git a/e2e/tests/assorted/04-setting.spec.js b/e2e/tests/assorted/04-setting.spec.js index 391f26f85..9353fbf17 100644 --- a/e2e/tests/assorted/04-setting.spec.js +++ b/e2e/tests/assorted/04-setting.spec.js @@ -14,7 +14,7 @@ describe('Settings screen', () => { let alertButtonType; before(async() => { await device.launchApp({ permissions: { notifications: 'YES' }, delete: true }); - if(device.getPlatform() == 'android') await prepareAndroid(); + await prepareAndroid(); ({ alertButtonType } = platformTypes[device.getPlatform()]); await navigateToLogin(); await login(testuser.username, testuser.password); diff --git a/e2e/tests/assorted/05-joinpublicroom.spec.js b/e2e/tests/assorted/05-joinpublicroom.spec.js index 79501c297..1d43a0de4 100644 --- a/e2e/tests/assorted/05-joinpublicroom.spec.js +++ b/e2e/tests/assorted/05-joinpublicroom.spec.js @@ -25,7 +25,7 @@ describe('Join public room', () => { let scrollViewType; before(async() => { await device.launchApp({ permissions: { notifications: 'YES' }, delete: true }); - if(device.getPlatform() == 'android') await prepareAndroid(); + await prepareAndroid(); ({ scrollViewType } = platformTypes[device.getPlatform()]); await navigateToLogin(); await login(testuser.username, testuser.password); @@ -166,7 +166,7 @@ describe('Join public room', () => { await expect(element(by.text('Yes, leave it!'))).toBeVisible(); await element(by.text('Yes, leave it!')).tap(); await waitFor(element(by.id('rooms-list-view'))).toBeVisible().withTimeout(10000); - await waitFor(element(by.id(`rooms-list-view-item-${ room }`))).toBeNotVisible().withTimeout(60000); + // await waitFor(element(by.id(`rooms-list-view-item-${ room }`))).toBeNotVisible().withTimeout(60000); }); }); }); diff --git a/e2e/tests/assorted/06-status.spec.js b/e2e/tests/assorted/06-status.spec.js index 350ce0026..4f9b1bd78 100644 --- a/e2e/tests/assorted/06-status.spec.js +++ b/e2e/tests/assorted/06-status.spec.js @@ -14,7 +14,7 @@ async function waitForToast() { describe('Status screen', () => { before(async () => { await device.launchApp({ permissions: { notifications: 'YES' }, delete: true }); - if(device.getPlatform() == 'android') await prepareAndroid(); + await prepareAndroid(); await navigateToLogin(); await login(testuser.username, testuser.password); diff --git a/e2e/tests/assorted/07-changeserver.spec.js b/e2e/tests/assorted/07-changeserver.spec.js index e5dcb394f..e543e06a4 100644 --- a/e2e/tests/assorted/07-changeserver.spec.js +++ b/e2e/tests/assorted/07-changeserver.spec.js @@ -15,7 +15,7 @@ const reopenAndCheckServer = async(server) => { describe('Change server', () => { before(async() => { await device.launchApp({ permissions: { notifications: 'YES' }, delete: true }); - if(device.getPlatform() == 'android') await prepareAndroid(); + await prepareAndroid(); await navigateToLogin(); await login(data.users.regular.username, data.users.regular.password); await waitFor(element(by.id('rooms-list-view'))).toBeVisible().withTimeout(10000); diff --git a/e2e/tests/assorted/08-joinprotectedroom.spec.js b/e2e/tests/assorted/08-joinprotectedroom.spec.js index 3deba0b31..94bc91213 100644 --- a/e2e/tests/assorted/08-joinprotectedroom.spec.js +++ b/e2e/tests/assorted/08-joinprotectedroom.spec.js @@ -23,7 +23,7 @@ async function openJoinCode() { describe('Join protected room', () => { before(async() => { await device.launchApp({ permissions: { notifications: 'YES' }, delete: true }); - if(device.getPlatform() == 'android') await prepareAndroid(); + await prepareAndroid(); await navigateToLogin(); await login(testuser.username, testuser.password); await navigateToRoom(); diff --git a/e2e/tests/assorted/09-joinfromdirectory.spec.js b/e2e/tests/assorted/09-joinfromdirectory.spec.js index 60d155c07..c46752d8f 100644 --- a/e2e/tests/assorted/09-joinfromdirectory.spec.js +++ b/e2e/tests/assorted/09-joinfromdirectory.spec.js @@ -19,7 +19,7 @@ async function navigateToRoom(search) { describe('Join room from directory', () => { before(async() => { await device.launchApp({ permissions: { notifications: 'YES' }, delete: true }); - if(device.getPlatform() == 'android') await prepareAndroid(); + await prepareAndroid(); await navigateToLogin(); await login(testuser.username, testuser.password); }); diff --git a/e2e/tests/assorted/10-deleteserver.spec.js b/e2e/tests/assorted/10-deleteserver.spec.js index 3b1024a18..9024e4efc 100644 --- a/e2e/tests/assorted/10-deleteserver.spec.js +++ b/e2e/tests/assorted/10-deleteserver.spec.js @@ -11,7 +11,7 @@ describe('Delete server', () => { let scrollViewType, alertButtonType; before(async() => { await device.launchApp({ permissions: { notifications: 'YES' }, delete: true }); - if(device.getPlatform() == 'android') await prepareAndroid(); + await prepareAndroid(); ({ alertButtonType, scrollViewType } = platformTypes[device.getPlatform()]); await navigateToLogin(); await login(data.users.regular.username, data.users.regular.password); diff --git a/e2e/tests/assorted/11-deeplinking.spec.js b/e2e/tests/assorted/11-deeplinking.spec.js index a211debe1..29df4d99e 100644 --- a/e2e/tests/assorted/11-deeplinking.spec.js +++ b/e2e/tests/assorted/11-deeplinking.spec.js @@ -35,7 +35,7 @@ describe('Deep linking', () => { delete: true, url: getDeepLink(DEEPLINK_METHODS.AUTH, data.server, `userId=123${amp}token=abc`), }); - if(device.getPlatform() == 'android') await prepareAndroid(); + await prepareAndroid(); await waitFor(element(by.text('You\'ve been logged out by the server. Please log in again.'))).toExist().withTimeout(10000); // TODO: we need to improve this message }); diff --git a/e2e/tests/assorted/12-i18n.spec.js b/e2e/tests/assorted/12-i18n.spec.js index 23b185e15..60482b068 100644 --- a/e2e/tests/assorted/12-i18n.spec.js +++ b/e2e/tests/assorted/12-i18n.spec.js @@ -27,7 +27,7 @@ describe('i18n', () => { ...defaultLaunchArgs, delete: true }); - if(device.getPlatform() == 'android') await prepareAndroid(); + await prepareAndroid(); await waitFor(element(by.id('onboarding-view'))).toBeVisible().withTimeout(20000); await expect(element(by.id('join-workspace').and(by.label('Join a workspace')))).toBeVisible(); await expect(element(by.id('create-workspace-button').and(by.label('Create a new workspace')))).toBeVisible(); diff --git a/e2e/tests/onboarding/01-onboarding.spec.js b/e2e/tests/onboarding/01-onboarding.spec.js index 9fbd224cf..650a1c5bf 100644 --- a/e2e/tests/onboarding/01-onboarding.spec.js +++ b/e2e/tests/onboarding/01-onboarding.spec.js @@ -7,7 +7,7 @@ const { prepareAndroid } = require('../../helpers/platformFunctions'); describe('Onboarding', () => { before(async() => { await device.launchApp({ permissions: { notifications: 'YES' }, delete: true }); - if(device.getPlatform() == 'android') await prepareAndroid(); + await prepareAndroid(); await waitFor(element(by.id('onboarding-view'))).toBeVisible().withTimeout(20000); }); diff --git a/e2e/tests/onboarding/02-legal.spec.js b/e2e/tests/onboarding/02-legal.spec.js index 91c8831f1..ac7b26492 100644 --- a/e2e/tests/onboarding/02-legal.spec.js +++ b/e2e/tests/onboarding/02-legal.spec.js @@ -9,7 +9,7 @@ describe('Legal screen', () => { describe('From Login', () => { before(async() => { await device.launchApp({ permissions: { notifications: 'YES' }, delete: true }); - if(device.getPlatform() == 'android') await prepareAndroid(); + await prepareAndroid(); await navigateToLogin(); }); diff --git a/e2e/tests/onboarding/03-forgotpassword.spec.js b/e2e/tests/onboarding/03-forgotpassword.spec.js index 292caddf1..93612ac89 100644 --- a/e2e/tests/onboarding/03-forgotpassword.spec.js +++ b/e2e/tests/onboarding/03-forgotpassword.spec.js @@ -8,7 +8,7 @@ const { prepareAndroid } = require('../../helpers/platformFunctions'); describe('Forgot password screen', () => { before(async() => { await device.launchApp({ permissions: { notifications: 'YES' }, delete: true }); - if(device.getPlatform() == 'android') await prepareAndroid(); + await prepareAndroid(); await navigateToLogin(); await element(by.id('login-view-forgot-password')).tap(); await waitFor(element(by.id('forgot-password-view'))).toExist().withTimeout(2000); diff --git a/e2e/tests/onboarding/04-createuser.spec.js b/e2e/tests/onboarding/04-createuser.spec.js index 811379fa3..96f19ae3a 100644 --- a/e2e/tests/onboarding/04-createuser.spec.js +++ b/e2e/tests/onboarding/04-createuser.spec.js @@ -8,7 +8,7 @@ const data = require('../../data'); describe('Create user screen', () => { before(async() => { await device.launchApp({ permissions: { notifications: 'YES' }, delete: true }); - if(device.getPlatform() == 'android') await prepareAndroid(); + await prepareAndroid(); await navigateToRegister(); }); diff --git a/e2e/tests/onboarding/05-login.spec.js b/e2e/tests/onboarding/05-login.spec.js index eca099915..2ad5dcf4e 100644 --- a/e2e/tests/onboarding/05-login.spec.js +++ b/e2e/tests/onboarding/05-login.spec.js @@ -8,7 +8,7 @@ const data = require('../../data'); describe('Login screen', () => { before(async() => { await device.launchApp({ permissions: { notifications: 'YES' }, newInstance: true, delete: true }); - if(device.getPlatform() == 'android') await prepareAndroid(); + await prepareAndroid(); await navigateToLogin(); }); diff --git a/e2e/tests/onboarding/06-roomslist.spec.js b/e2e/tests/onboarding/06-roomslist.spec.js index dacd817dc..1e1c164ac 100644 --- a/e2e/tests/onboarding/06-roomslist.spec.js +++ b/e2e/tests/onboarding/06-roomslist.spec.js @@ -9,7 +9,7 @@ describe('Rooms list screen', () => { before(async() => { await device.launchApp({ permissions: { notifications: 'YES' }, newInstance: true, delete: true }); - if(device.getPlatform() == 'android') await prepareAndroid(); + await prepareAndroid(); await navigateToLogin(); await login(data.users.regular.username, data.users.regular.password) }); diff --git a/e2e/tests/onboarding/07-server-history.spec.js b/e2e/tests/onboarding/07-server-history.spec.js index c72b83e28..0878619b0 100644 --- a/e2e/tests/onboarding/07-server-history.spec.js +++ b/e2e/tests/onboarding/07-server-history.spec.js @@ -8,7 +8,7 @@ const data = require('../../data'); describe('Server history', () => { before(async() => { await device.launchApp({ permissions: { notifications: 'YES' }, delete: true }); - if(device.getPlatform() == 'android') await prepareAndroid(); + await prepareAndroid(); }); describe('Usage', () => { diff --git a/e2e/tests/room/01-createroom.spec.js b/e2e/tests/room/01-createroom.spec.js index ed05d203c..4449cf4db 100644 --- a/e2e/tests/room/01-createroom.spec.js +++ b/e2e/tests/room/01-createroom.spec.js @@ -10,7 +10,7 @@ const { prepareAndroid } = require('../../helpers/platformFunctions'); describe('Create room screen', () => { before(async() => { await device.launchApp({ permissions: { notifications: 'YES' }, delete: true }); - if(device.getPlatform() == 'android') await prepareAndroid(); + await prepareAndroid(); await navigateToLogin(); await login(data.users.regular.username, data.users.regular.password); }); diff --git a/e2e/tests/room/02-room.spec.js b/e2e/tests/room/02-room.spec.js index 83aa3df80..cc9bb827e 100644 --- a/e2e/tests/room/02-room.spec.js +++ b/e2e/tests/room/02-room.spec.js @@ -16,7 +16,7 @@ describe('Room screen', () => { before(async() => { await device.launchApp({ permissions: { notifications: 'YES' }, delete: true }); - if(device.getPlatform() == 'android') await prepareAndroid(); + await prepareAndroid(); await navigateToLogin(); await login(data.users.regular.username, data.users.regular.password); await navigateToRoom(mainRoom); diff --git a/e2e/tests/room/03-roomactions.spec.js b/e2e/tests/room/03-roomactions.spec.js index 76128fc81..abc315a32 100644 --- a/e2e/tests/room/03-roomactions.spec.js +++ b/e2e/tests/room/03-roomactions.spec.js @@ -42,7 +42,7 @@ describe('Room actions screen', () => { let alertButtonType; before(async() => { await device.launchApp({ permissions: { notifications: 'YES' }, delete: true }); - if(device.getPlatform() == 'android') await prepareAndroid(); + await prepareAndroid(); await navigateToLogin(); await login(data.users.regular.username, data.users.regular.password); ({ alertButtonType } = platformTypes[device.getPlatform()]); diff --git a/e2e/tests/room/04-discussion.spec.js b/e2e/tests/room/04-discussion.spec.js index 27c9b5a40..afc0b132c 100644 --- a/e2e/tests/room/04-discussion.spec.js +++ b/e2e/tests/room/04-discussion.spec.js @@ -19,7 +19,7 @@ describe('Discussion', () => { before(async() => { await device.launchApp({ permissions: { notifications: 'YES' }, newInstance: true, delete: true }); - if(device.getPlatform() == 'android') await prepareAndroid(); + await prepareAndroid(); await navigateToLogin(); await login(data.users.regular.username, data.users.regular.password); ({ scrollViewType } = platformTypes[device.getPlatform()]); diff --git a/e2e/tests/room/05-threads.spec.js b/e2e/tests/room/05-threads.spec.js index f6caa4908..1d8d7a15a 100644 --- a/e2e/tests/room/05-threads.spec.js +++ b/e2e/tests/room/05-threads.spec.js @@ -7,7 +7,7 @@ const { prepareAndroid } = require('../../helpers/platformFunctions'); async function navigateToRoom(roomName) { await device.launchApp({ permissions: { notifications: 'YES' }, delete: true }); - if(device.getPlatform() == 'android') await prepareAndroid(); + await prepareAndroid(); await navigateToLogin(); await login(data.users.regular.username, data.users.regular.password); await searchRoom(`${ roomName }`); diff --git a/e2e/tests/room/06-createdmgroup.spec.js b/e2e/tests/room/06-createdmgroup.spec.js index 4627f1a53..799d1ee7c 100644 --- a/e2e/tests/room/06-createdmgroup.spec.js +++ b/e2e/tests/room/06-createdmgroup.spec.js @@ -10,7 +10,7 @@ const { prepareAndroid } = require('../../helpers/platformFunctions'); describe('Group DM', () => { before(async() => { await device.launchApp({ permissions: { notifications: 'YES' }, delete: true }); - if(device.getPlatform() == 'android') await prepareAndroid(); + await prepareAndroid(); await navigateToLogin(); await login(data.users.regular.username, data.users.regular.password); }); diff --git a/e2e/tests/room/07-markasunread.spec.js b/e2e/tests/room/07-markasunread.spec.js index 33a895a0f..2d00ba403 100644 --- a/e2e/tests/room/07-markasunread.spec.js +++ b/e2e/tests/room/07-markasunread.spec.js @@ -17,7 +17,7 @@ describe('Mark as unread', () => { before(async() => { await device.launchApp({ permissions: { notifications: 'YES' }, delete: true }); - if(device.getPlatform() == 'android') await prepareAndroid(); + await prepareAndroid(); await navigateToLogin(); await login(data.users.regular.username, data.users.regular.password); await navigateToRoom(user); diff --git a/e2e/tests/room/08-roominfo.spec.js b/e2e/tests/room/08-roominfo.spec.js index 7693b3746..2ac4a211b 100644 --- a/e2e/tests/room/08-roominfo.spec.js +++ b/e2e/tests/room/08-roominfo.spec.js @@ -35,7 +35,7 @@ describe('Room info screen', () => { before(async() => { await device.launchApp({ permissions: { notifications: 'YES' }, delete: true }); - if(device.getPlatform() == 'android') await prepareAndroid(); + await prepareAndroid(); await navigateToLogin(); await login(data.users.regular.username, data.users.regular.password); }); diff --git a/e2e/tests/room/09-jumptomessage.spec.js b/e2e/tests/room/09-jumptomessage.spec.js index 8925538b6..6017e39f9 100644 --- a/e2e/tests/room/09-jumptomessage.spec.js +++ b/e2e/tests/room/09-jumptomessage.spec.js @@ -34,7 +34,7 @@ async function waitForLoading() { describe('Room', () => { before(async() => { await device.launchApp({ permissions: { notifications: 'YES' }, delete: true }); - if(device.getPlatform() == 'android') await prepareAndroid(); + await prepareAndroid(); await navigateToLogin(); await login(data.adminUser, data.adminPassword); }); diff --git a/e2e/tests/team/01-createteam.spec.js b/e2e/tests/team/01-createteam.spec.js index 6d20f405b..b278966fd 100644 --- a/e2e/tests/team/01-createteam.spec.js +++ b/e2e/tests/team/01-createteam.spec.js @@ -10,7 +10,7 @@ const teamName = `team-${ data.random }`; describe('Create team screen', () => { before(async() => { await device.launchApp({ permissions: { notifications: 'YES' }, delete: true }); - if(device.getPlatform() == 'android') await prepareAndroid(); + await prepareAndroid(); await navigateToLogin(); await login(data.users.regular.username, data.users.regular.password); }); diff --git a/e2e/tests/team/02-team.spec.js b/e2e/tests/team/02-team.spec.js index c4075b3c7..1338ebe04 100644 --- a/e2e/tests/team/02-team.spec.js +++ b/e2e/tests/team/02-team.spec.js @@ -45,7 +45,7 @@ describe('Team', () => { before(async() => { await device.launchApp({ permissions: { notifications: 'YES' }, delete: true }); - if(device.getPlatform() == 'android') await prepareAndroid(); + await prepareAndroid(); await navigateToLogin(); await login(data.users.regular.username, data.users.regular.password); await navigateToRoom(team); diff --git a/e2e/tests/team/03-moveconvert.spec.js b/e2e/tests/team/03-moveconvert.spec.js index aa9a54af2..ee709e86c 100644 --- a/e2e/tests/team/03-moveconvert.spec.js +++ b/e2e/tests/team/03-moveconvert.spec.js @@ -39,7 +39,7 @@ async function navigateToRoomActions(room) { describe('Move/Convert Team', () => { before(async() => { await device.launchApp({ permissions: { notifications: 'YES' }, delete: true }); - if(device.getPlatform() == 'android') await prepareAndroid(); + await prepareAndroid(); await navigateToLogin(); await login(data.users.regular.username, data.users.regular.password); }); diff --git a/package.json b/package.json index ad490f5c5..f4abc29b8 100644 --- a/package.json +++ b/package.json @@ -17,10 +17,8 @@ "generate-source-maps-ios": "react-native bundle --platform ios --dev false --entry-file index.js --bundle-output ios-release.bundle --sourcemap-output ios-release.bundle.map", "generate-source-maps-android": "bugsnag-sourcemaps", "postinstall": "patch-package && jetify", - "detoxAD": "detox build -c android.experimental.play.dev.debug && detox test -c android.experimental.play.dev.debug", - "detoxAR": "detox build -c android.experimental.play.dev.release && detox test -c android.experimental.play.dev.release", - "detoxADEmu": "detox build -c android.experimental.play.emu.debug && detox test -c android.experimental.play.emu.debug", - "detoxAREmu": "detox build -c android.experimental.play.emu.release && detox test -c android.experimental.play.emu.release" + "e2e:android-debug": "detox build -c and.emu.debug && detox test -c and.emu.debug", + "e2e:android-release": "detox build -c and.emu.release && detox test -c and.emu.release" }, "husky": { "hooks": { @@ -192,13 +190,6 @@ "detox": { "runner-config": "e2e/.mocharc.json", "specs": "e2e/tests", - "apps": { - "android.experimental.play.debug": { - "type": "android.apk", - "binaryPath": "android/app/build/outputs/apk/experimentalPlay/debug/app-Experimental-Play-debug.apk", - "build": "cd android && ./gradlew assembleExperimentalPlayDebug assembleExperimentalPlayAndroidTest -DtestBuildType=debug && cd .." - } - }, "configurations": { "ios.sim.debug": { "binaryPath": "ios/build/Build/Products/Debug-iphonesimulator/Rocket.Chat Experimental.app", @@ -230,29 +221,17 @@ } } }, - "android.experimental.play.emu.debug": { + "and.emu.debug": { "device": "Pixel_API_28_AOSP", "type": "android.emulator", - "binaryPath": "android/app/build/outputs/apk/experimentalPlay/debug/app-experimental-play-debug.apk", - "build": "cd android && ./gradlew app:assembleExperimentalPlayDebug app:assembleExperimentalPlayDebugAndroidTest -DtestBuildType=debug && cd .." + "binaryPath": "android/app/build/outputs/apk/e2ePlay/debug/app-e2e-play-debug.apk", + "build": "cd android && ./gradlew app:assembleE2ePlayDebug app:assembleE2ePlayDebugAndroidTest -DtestBuildType=debug && cd .." }, - "android.experimental.play.emu.release": { + "and.emu.release": { "device": "Pixel_API_28_AOSP", "type": "android.emulator", - "binaryPath": "android/app/build/outputs/apk/experimentalPlay/release/app-experimental-play-release.apk", - "build": "cd android && ./gradlew app:assembleExperimentalPlayRelease app:assembleExperimentalPlayReleaseAndroidTest -DtestBuildType=release && cd .." - }, - "android.experimental.play.dev.debug": { - "device": "CVH7N15C14003503", - "type": "android.attached", - "binaryPath": "android/app/build/outputs/apk/experimentalPlay/debug/app-experimental-play-debug.apk", - "build": "cd android && ./gradlew app:assembleExperimentalPlayDebug app:assembleExperimentalPlayDebugAndroidTest -DtestBuildType=debug && cd .." - }, - "android.experimental.play.dev.release": { - "device": "CVH7N15C14003503", - "type": "android.attached", - "binaryPath": "android/app/build/outputs/apk/experimentalPlay/release/app-experimental-play-release.apk", - "build": "cd android && ./gradlew app:assembleExperimentalPlayRelease app:assembleExperimentalPlayReleaseAndroidTest -DtestBuildType=release && cd .." + "binaryPath": "android/app/build/outputs/apk/e2ePlay/release/app-e2e-play-release.apk", + "build": "cd android && ./gradlew app:assembleE2ePlayRelease app:assembleE2ePlayReleaseAndroidTest -DtestBuildType=release && cd .." } } }