From 553f6b9d74f77fc22a64f9f9afee459b1d40dc4b Mon Sep 17 00:00:00 2001 From: Tyler Hackett Date: Thu, 12 Dec 2024 11:51:54 -0800 Subject: [PATCH 01/17] add update test --- bitrise.yml | 52 ++++++++++++ packages/core-mobile/detox.config.js | 20 +++++ .../updateAppVersion/getOldAndroidVersion.js | 83 +++++++++++++++++++ .../loginWithLatestVersion.e2e.smoke.ts | 15 ++++ .../updateAppVersion/loginWithOlderVerison.sh | 16 ++++ .../loginWithOlderVersion.e2e.smoke.ts | 16 ++++ .../updateAppVersion/oldVersionApk/log.txt | 0 .../updateAppVersion/updateToLatestVersion.sh | 14 ++++ yarn.lock | 2 +- 9 files changed, 217 insertions(+), 1 deletion(-) create mode 100644 packages/core-mobile/e2e/tests/updateAppVersion/getOldAndroidVersion.js create mode 100644 packages/core-mobile/e2e/tests/updateAppVersion/loginWithLatestVersion.e2e.smoke.ts create mode 100755 packages/core-mobile/e2e/tests/updateAppVersion/loginWithOlderVerison.sh create mode 100644 packages/core-mobile/e2e/tests/updateAppVersion/loginWithOlderVersion.e2e.smoke.ts create mode 100644 packages/core-mobile/e2e/tests/updateAppVersion/oldVersionApk/log.txt create mode 100755 packages/core-mobile/e2e/tests/updateAppVersion/updateToLatestVersion.sh diff --git a/bitrise.yml b/bitrise.yml index 6ed1447ed5..0535e94489 100644 --- a/bitrise.yml +++ b/bitrise.yml @@ -206,6 +206,18 @@ workflows: - tag: default - abi: x86_64 - profile: pixel_4 + _install-old-android-version: + steps: + - script-runner@0: + title: Update Android Test + inputs: + - file_path: ./e2e/tests/updateAppVersion/loginWithOlderVersion.sh + _install-latest-android-version: + steps: + - script-runner@0: + title: Update Android Test + inputs: + - file_path: ./e2e/tests/updateAppVersion/updateToLatestVersion.sh _pull_app_files: steps: - pull-intermediate-files@1: @@ -812,6 +824,46 @@ workflows: - abi: x86_64 - profile: pixel_6 - wait-for-android-emulator@1: {} + android-e2e-run-pixel6-update-app-version: + before_run: + - _install-and-set-env + - _pull_app_files + - _pull_external_app_files + after_run: + - _install-old-android-version + - _install-latest-android-version + - _upload-detox-artifacts + - _send-test-result-notification-slack + envs: + - ENVIRONMENT: production + opts: + is_expand: false + - PLATFORM: Android + opts: + is_expand: false + - ANDROID_BUILD_VARIANT: externalE2e + opts: + is_expand: false + - APP_TITLE: Core Mobile + opts: + is_expand: false + - E2E: "true" + opts: + is_expand: false + - POST_TO_TESTRAIL: "true" + opts: + is_expand: false + steps: + - avd-manager@1.2: + inputs: + - api_level: "34" + - emulator_id: emulator-5554 + - emulator_channel: "0" + - create_command_flags: --sdcard 512M + - tag: default + - abi: x86_64 + - profile: pixel_6 + - wait-for-android-emulator@1: {} android-e2e-run-pixel2-arm: before_run: - _install-and-set-env diff --git a/packages/core-mobile/detox.config.js b/packages/core-mobile/detox.config.js index 2e91f06d1f..6b0eb51ae3 100644 --- a/packages/core-mobile/detox.config.js +++ b/packages/core-mobile/detox.config.js @@ -74,6 +74,13 @@ module.exports = { 'android/app/build/outputs/apk/internal/e2e/app-internal-e2e.apk', testBinaryPath: 'android/app/build/outputs/apk/androidTest/internal/debug/app-internal-e2e-androidTest.apk' + }, + 'android.external.e2e.old_version': { + type: 'android.apk', + binaryPath: + './e2e/tests/updateAppVersion/oldVersionApk/app-external-e2e-bitrise-signed.apk', + testBinaryPath: + './e2e/tests/updateAppVersion/oldVersionApk/app-external-e2e-androidTest-bitrise-signed.apk' } }, artifacts: { @@ -498,6 +505,19 @@ module.exports = { 'android.internal.e2e': { device: 'emulator', app: 'android.internal.e2e' + }, + 'android.external.e2e.old_version': { + device: 'emulator', + app: 'android.external.e2e.old_version', + artifacts: { + rootDir: './e2e/artifacts/android' + }, + testRunner: { + $0: 'jest', + args: { + config: './e2e/configs/smokeTestConfig.json' + } + } } } } diff --git a/packages/core-mobile/e2e/tests/updateAppVersion/getOldAndroidVersion.js b/packages/core-mobile/e2e/tests/updateAppVersion/getOldAndroidVersion.js new file mode 100644 index 0000000000..82bb3f526d --- /dev/null +++ b/packages/core-mobile/e2e/tests/updateAppVersion/getOldAndroidVersion.js @@ -0,0 +1,83 @@ +const { createWriteStream } = require('fs') +const axios = require('axios') + +const slug = process.env.BITRISE_APP_SLUG +const artifactsToken = process.env.BITRISE_ARTIFACTS_TOKEN +const baseURL = 'https://api.bitrise.io/v0.1' + +// Get the build slug of external e2e regression run by index +const getAndroidBuildSlug = async buildIndex => { + const response = await axios.get( + `${baseURL}/apps/${slug}/builds?sort_by=created_at&branch=main&workflow=android-external-e2e-regression-run`, + { + headers: { Authorization: `${artifactsToken}` } + } + ) + const builds = response.data.data + return builds[buildIndex].slug +} + +// Returns the apk build slug and the url to get the download link +async function getAndroidArtifacts(buildIndex) { + const latestAndroidBuildSlug = await getAndroidBuildSlug(buildIndex) + const url = `${baseURL}/apps/${slug}/builds/${latestAndroidBuildSlug}/artifacts` + const response = await axios.get(url, { + headers: { Authorization: `${artifactsToken}` } + }) + const artifacts = response.data.data + // Filters the external build artifacts for the signed apk + const externalSignedApk = artifacts.find( + artifact => + artifact.title.indexOf('app-external-e2e-bitrise-signed.apk') > -1 && + artifact.artifact_type === 'android-apk' + ) + // Filters the external build artifacts for the test apk + const androidTestApk = artifacts.find( + artifact => + artifact.title.indexOf( + 'app-external-e2e-androidTest-bitrise-signed.apk' + ) > -1 && artifact.artifact_type === 'android-apk' + ) + return { + url: url, + slug: externalSignedApk.slug, + testSlug: androidTestApk.slug + } +} + +// Downloads the external signed and test apks +async function downloadExternalApk(buildIndex, apkName, testApkName) { + const writer = createWriteStream(apkName) + const testApkWriter = createWriteStream(testApkName) + const artifacts = await getAndroidArtifacts(buildIndex) + const apkSlug = artifacts.slug + const url = artifacts.url + const apkResponse = await axios.get(`${url}/${apkSlug}`, { + headers: { Authorization: `${artifactsToken}` } + }) + const testApkResponse = await axios.get(`${url}/${artifacts.testSlug}`, { + headers: { Authorization: `${artifactsToken}` } + }) + const testDownloadUrl = testApkResponse.data.data.expiring_download_url + const downloadUrl = apkResponse.data.data.expiring_download_url + const apkFile = await axios.get(downloadUrl, { + responseType: 'stream' + }) + const testApkFile = await axios.get(testDownloadUrl, { + responseType: 'stream' + }) + apkFile.data.pipe(writer) + testApkFile.data.pipe(testApkWriter) +} + +// Downloads the latest and old versions of the external signed and test apks +async function setupApksForTesting() { + console.log('Downloading older version external apks for testing') + downloadExternalApk( + 6, + './e2e/tests/updateAppVersion/oldVersionApk/app-external-e2e-bitrise-signed.apk', + './e2e/tests/updateAppVersion/oldVersionApk/app-external-e2e-androidTest-bitrise-signed.apk' + ) +} + +setupApksForTesting() diff --git a/packages/core-mobile/e2e/tests/updateAppVersion/loginWithLatestVersion.e2e.smoke.ts b/packages/core-mobile/e2e/tests/updateAppVersion/loginWithLatestVersion.e2e.smoke.ts new file mode 100644 index 0000000000..94598cf380 --- /dev/null +++ b/packages/core-mobile/e2e/tests/updateAppVersion/loginWithLatestVersion.e2e.smoke.ts @@ -0,0 +1,15 @@ +import assertions from '../../helpers/assertions' +import { warmup } from '../../helpers/warmup' +import portfolioPage from '../../pages/portfolio.page' + +describe('Install latest version of app and login', () => { + beforeAll(async () => { + await warmup() + console.log('Logged in successfully!') + }) + + it('Verify collectibles tab is displayed', async () => { + console.log('verifying collectibles tab is visible...') + await assertions.isVisible(portfolioPage.colectiblesTab) + }) +}) diff --git a/packages/core-mobile/e2e/tests/updateAppVersion/loginWithOlderVerison.sh b/packages/core-mobile/e2e/tests/updateAppVersion/loginWithOlderVerison.sh new file mode 100755 index 0000000000..da5e74e211 --- /dev/null +++ b/packages/core-mobile/e2e/tests/updateAppVersion/loginWithOlderVerison.sh @@ -0,0 +1,16 @@ +set -o pipefail + +npm rebuild detox + +npx ts-node ./e2e/tests/updateAppVersion/getOldAndroidVersion.js + +adb install -r "./e2e/tests/updateAppVersion/oldVersionApk/app-external-e2e-bitrise-signed.apk" +adb install -r "./e2e/tests/updateAppVersion/oldVersionApk/app-external-e2e-androidTest-bitrise-signed.apk" + +QT_QPA_PLATFORM=xcb ./node_modules/.bin/detox test loginWithOlderVersion.e2e.smoke.ts --configuration android.external.e2e.old_version; test_result=$? && sleep 5 + +# npx ts-node ./e2e/attachLogsSendResultsToTestrail.ts + +if ((test_result != 0)); then + exit 1 +fi \ No newline at end of file diff --git a/packages/core-mobile/e2e/tests/updateAppVersion/loginWithOlderVersion.e2e.smoke.ts b/packages/core-mobile/e2e/tests/updateAppVersion/loginWithOlderVersion.e2e.smoke.ts new file mode 100644 index 0000000000..dc60bd9fce --- /dev/null +++ b/packages/core-mobile/e2e/tests/updateAppVersion/loginWithOlderVersion.e2e.smoke.ts @@ -0,0 +1,16 @@ +import assertions from '../../helpers/assertions' +import { warmup } from '../../helpers/warmup' +import portfolioPage from '../../pages/portfolio.page' + +describe('Install older version of app and login', () => { + beforeAll(async () => { + await warmup() + console.log('Logged in successfully!') + }) + + it('Verify collectibles tab is displayed', async () => { + console.log('verifying collectibles tab is visible...') + await assertions.isVisible(portfolioPage.colectiblesTab) + await device.terminateApp() + }) +}) diff --git a/packages/core-mobile/e2e/tests/updateAppVersion/oldVersionApk/log.txt b/packages/core-mobile/e2e/tests/updateAppVersion/oldVersionApk/log.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/core-mobile/e2e/tests/updateAppVersion/updateToLatestVersion.sh b/packages/core-mobile/e2e/tests/updateAppVersion/updateToLatestVersion.sh new file mode 100755 index 0000000000..5237b6fec9 --- /dev/null +++ b/packages/core-mobile/e2e/tests/updateAppVersion/updateToLatestVersion.sh @@ -0,0 +1,14 @@ +set -o pipefail + +npm rebuild detox + +adb install -r $BITRISE_APK_PATH +adb install -r $BITRISE_TEST_APK_PATH + +QT_QPA_PLATFORM=xcb ./node_modules/.bin/detox test loginWithLatestVersion.e2e.smoke.ts --configuration android.external.release.ci --reuse; test_result=$? && sleep 5 + +# npx ts-node ./e2e/attachLogsSendResultsToTestrail.ts + +if ((test_result != 0)); then + exit 1 +fi \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index bfae265521..2ad171b0f3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -26667,7 +26667,7 @@ react-native-webview@ava-labs/react-native-webview: peerDependencies: react: "*" react-native: "*" - checksum: 6e268fad7aa8b8e56fd28cc95f94f35a33fdac4cec0085ae71a766d092760e3f9af35218706113ff7ae99a74baabc5112d32005dce9e66bdf4fda676fad9aa4e + checksum: 0efa24aa4da8f418f515b6be88e91948284856000fe5fde7026fa63ee814d84e7b7fbc1e8b8d98bc1833c05c9740a9fe2edf15b0909b77b4d012db22b75f5370 languageName: node linkType: hard From 774c4ef121591ca3c24804bfb8e6a0d73936776f Mon Sep 17 00:00:00 2001 From: Tyler Hackett Date: Thu, 12 Dec 2024 12:28:01 -0800 Subject: [PATCH 02/17] fix bash paths --- bitrise.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bitrise.yml b/bitrise.yml index 0535e94489..fe9d9da3dd 100644 --- a/bitrise.yml +++ b/bitrise.yml @@ -211,13 +211,13 @@ workflows: - script-runner@0: title: Update Android Test inputs: - - file_path: ./e2e/tests/updateAppVersion/loginWithOlderVersion.sh + - file_path: e2e/tests/updateAppVersion/loginWithOlderVersion.sh _install-latest-android-version: steps: - script-runner@0: title: Update Android Test inputs: - - file_path: ./e2e/tests/updateAppVersion/updateToLatestVersion.sh + - file_path: e2e/tests/updateAppVersion/updateToLatestVersion.sh _pull_app_files: steps: - pull-intermediate-files@1: From 0059ced77935c3ca600943a68bf84a29bdc58927 Mon Sep 17 00:00:00 2001 From: Tyler Hackett Date: Thu, 12 Dec 2024 12:44:53 -0800 Subject: [PATCH 03/17] fix script typo --- .../updateAppVersion/loginWithOlderVerison.sh | 16 ---------------- 1 file changed, 16 deletions(-) delete mode 100755 packages/core-mobile/e2e/tests/updateAppVersion/loginWithOlderVerison.sh diff --git a/packages/core-mobile/e2e/tests/updateAppVersion/loginWithOlderVerison.sh b/packages/core-mobile/e2e/tests/updateAppVersion/loginWithOlderVerison.sh deleted file mode 100755 index da5e74e211..0000000000 --- a/packages/core-mobile/e2e/tests/updateAppVersion/loginWithOlderVerison.sh +++ /dev/null @@ -1,16 +0,0 @@ -set -o pipefail - -npm rebuild detox - -npx ts-node ./e2e/tests/updateAppVersion/getOldAndroidVersion.js - -adb install -r "./e2e/tests/updateAppVersion/oldVersionApk/app-external-e2e-bitrise-signed.apk" -adb install -r "./e2e/tests/updateAppVersion/oldVersionApk/app-external-e2e-androidTest-bitrise-signed.apk" - -QT_QPA_PLATFORM=xcb ./node_modules/.bin/detox test loginWithOlderVersion.e2e.smoke.ts --configuration android.external.e2e.old_version; test_result=$? && sleep 5 - -# npx ts-node ./e2e/attachLogsSendResultsToTestrail.ts - -if ((test_result != 0)); then - exit 1 -fi \ No newline at end of file From 3d12927eeb8ca3a3747abc70bdc2bef5845c7fe6 Mon Sep 17 00:00:00 2001 From: Tyler Hackett Date: Thu, 12 Dec 2024 12:59:50 -0800 Subject: [PATCH 04/17] fix typo bash script --- .../updateAppVersion/loginWithOlderVersion.sh | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100755 packages/core-mobile/e2e/tests/updateAppVersion/loginWithOlderVersion.sh diff --git a/packages/core-mobile/e2e/tests/updateAppVersion/loginWithOlderVersion.sh b/packages/core-mobile/e2e/tests/updateAppVersion/loginWithOlderVersion.sh new file mode 100755 index 0000000000..da5e74e211 --- /dev/null +++ b/packages/core-mobile/e2e/tests/updateAppVersion/loginWithOlderVersion.sh @@ -0,0 +1,16 @@ +set -o pipefail + +npm rebuild detox + +npx ts-node ./e2e/tests/updateAppVersion/getOldAndroidVersion.js + +adb install -r "./e2e/tests/updateAppVersion/oldVersionApk/app-external-e2e-bitrise-signed.apk" +adb install -r "./e2e/tests/updateAppVersion/oldVersionApk/app-external-e2e-androidTest-bitrise-signed.apk" + +QT_QPA_PLATFORM=xcb ./node_modules/.bin/detox test loginWithOlderVersion.e2e.smoke.ts --configuration android.external.e2e.old_version; test_result=$? && sleep 5 + +# npx ts-node ./e2e/attachLogsSendResultsToTestrail.ts + +if ((test_result != 0)); then + exit 1 +fi \ No newline at end of file From 102044e7aabcd4ea961d26349f3b16fd527914b2 Mon Sep 17 00:00:00 2001 From: Tyler Hackett Date: Thu, 12 Dec 2024 13:10:41 -0800 Subject: [PATCH 05/17] fix ci emulator config --- packages/core-mobile/detox.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core-mobile/detox.config.js b/packages/core-mobile/detox.config.js index 6b0eb51ae3..8550992267 100644 --- a/packages/core-mobile/detox.config.js +++ b/packages/core-mobile/detox.config.js @@ -503,7 +503,7 @@ module.exports = { } }, 'android.internal.e2e': { - device: 'emulator', + device: 'emulator_ci', app: 'android.internal.e2e' }, 'android.external.e2e.old_version': { From 4eb4af53f1021626f6f4bd4afc9c588bce9c871b Mon Sep 17 00:00:00 2001 From: Tyler Hackett Date: Thu, 12 Dec 2024 13:18:58 -0800 Subject: [PATCH 06/17] fix ci emulator config --- packages/core-mobile/detox.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core-mobile/detox.config.js b/packages/core-mobile/detox.config.js index 8550992267..860907b0f2 100644 --- a/packages/core-mobile/detox.config.js +++ b/packages/core-mobile/detox.config.js @@ -507,7 +507,7 @@ module.exports = { app: 'android.internal.e2e' }, 'android.external.e2e.old_version': { - device: 'emulator', + device: 'emulator_ci', app: 'android.external.e2e.old_version', artifacts: { rootDir: './e2e/artifacts/android' From 23ba1e392f62f218008db655e51d8593eefc160d Mon Sep 17 00:00:00 2001 From: Tyler Hackett Date: Thu, 12 Dec 2024 13:38:03 -0800 Subject: [PATCH 07/17] remove test results send --- .../e2e/tests/updateAppVersion/loginWithOlderVersion.sh | 2 -- .../e2e/tests/updateAppVersion/updateToLatestVersion.sh | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/core-mobile/e2e/tests/updateAppVersion/loginWithOlderVersion.sh b/packages/core-mobile/e2e/tests/updateAppVersion/loginWithOlderVersion.sh index da5e74e211..dcda2e4120 100755 --- a/packages/core-mobile/e2e/tests/updateAppVersion/loginWithOlderVersion.sh +++ b/packages/core-mobile/e2e/tests/updateAppVersion/loginWithOlderVersion.sh @@ -9,8 +9,6 @@ adb install -r "./e2e/tests/updateAppVersion/oldVersionApk/app-external-e2e-andr QT_QPA_PLATFORM=xcb ./node_modules/.bin/detox test loginWithOlderVersion.e2e.smoke.ts --configuration android.external.e2e.old_version; test_result=$? && sleep 5 -# npx ts-node ./e2e/attachLogsSendResultsToTestrail.ts - if ((test_result != 0)); then exit 1 fi \ No newline at end of file diff --git a/packages/core-mobile/e2e/tests/updateAppVersion/updateToLatestVersion.sh b/packages/core-mobile/e2e/tests/updateAppVersion/updateToLatestVersion.sh index 5237b6fec9..25cb645257 100755 --- a/packages/core-mobile/e2e/tests/updateAppVersion/updateToLatestVersion.sh +++ b/packages/core-mobile/e2e/tests/updateAppVersion/updateToLatestVersion.sh @@ -7,7 +7,7 @@ adb install -r $BITRISE_TEST_APK_PATH QT_QPA_PLATFORM=xcb ./node_modules/.bin/detox test loginWithLatestVersion.e2e.smoke.ts --configuration android.external.release.ci --reuse; test_result=$? && sleep 5 -# npx ts-node ./e2e/attachLogsSendResultsToTestrail.ts +npx ts-node ./e2e/attachLogsSendResultsToTestrail.ts if ((test_result != 0)); then exit 1 From a86378c3d00f637b8bf6aeca96c21c4f84421586 Mon Sep 17 00:00:00 2001 From: Tyler Hackett Date: Thu, 12 Dec 2024 14:22:53 -0800 Subject: [PATCH 08/17] rename tests --- bitrise.yml | 40 ------------------- .../loginWithLatestVersion.e2e.smoke.ts | 15 ------- .../loginWithOlderVersion.e2e.smoke.ts | 16 -------- 3 files changed, 71 deletions(-) delete mode 100644 packages/core-mobile/e2e/tests/updateAppVersion/loginWithLatestVersion.e2e.smoke.ts delete mode 100644 packages/core-mobile/e2e/tests/updateAppVersion/loginWithOlderVersion.e2e.smoke.ts diff --git a/bitrise.yml b/bitrise.yml index fe9d9da3dd..29aad4e5cc 100644 --- a/bitrise.yml +++ b/bitrise.yml @@ -824,46 +824,6 @@ workflows: - abi: x86_64 - profile: pixel_6 - wait-for-android-emulator@1: {} - android-e2e-run-pixel6-update-app-version: - before_run: - - _install-and-set-env - - _pull_app_files - - _pull_external_app_files - after_run: - - _install-old-android-version - - _install-latest-android-version - - _upload-detox-artifacts - - _send-test-result-notification-slack - envs: - - ENVIRONMENT: production - opts: - is_expand: false - - PLATFORM: Android - opts: - is_expand: false - - ANDROID_BUILD_VARIANT: externalE2e - opts: - is_expand: false - - APP_TITLE: Core Mobile - opts: - is_expand: false - - E2E: "true" - opts: - is_expand: false - - POST_TO_TESTRAIL: "true" - opts: - is_expand: false - steps: - - avd-manager@1.2: - inputs: - - api_level: "34" - - emulator_id: emulator-5554 - - emulator_channel: "0" - - create_command_flags: --sdcard 512M - - tag: default - - abi: x86_64 - - profile: pixel_6 - - wait-for-android-emulator@1: {} android-e2e-run-pixel2-arm: before_run: - _install-and-set-env diff --git a/packages/core-mobile/e2e/tests/updateAppVersion/loginWithLatestVersion.e2e.smoke.ts b/packages/core-mobile/e2e/tests/updateAppVersion/loginWithLatestVersion.e2e.smoke.ts deleted file mode 100644 index 94598cf380..0000000000 --- a/packages/core-mobile/e2e/tests/updateAppVersion/loginWithLatestVersion.e2e.smoke.ts +++ /dev/null @@ -1,15 +0,0 @@ -import assertions from '../../helpers/assertions' -import { warmup } from '../../helpers/warmup' -import portfolioPage from '../../pages/portfolio.page' - -describe('Install latest version of app and login', () => { - beforeAll(async () => { - await warmup() - console.log('Logged in successfully!') - }) - - it('Verify collectibles tab is displayed', async () => { - console.log('verifying collectibles tab is visible...') - await assertions.isVisible(portfolioPage.colectiblesTab) - }) -}) diff --git a/packages/core-mobile/e2e/tests/updateAppVersion/loginWithOlderVersion.e2e.smoke.ts b/packages/core-mobile/e2e/tests/updateAppVersion/loginWithOlderVersion.e2e.smoke.ts deleted file mode 100644 index dc60bd9fce..0000000000 --- a/packages/core-mobile/e2e/tests/updateAppVersion/loginWithOlderVersion.e2e.smoke.ts +++ /dev/null @@ -1,16 +0,0 @@ -import assertions from '../../helpers/assertions' -import { warmup } from '../../helpers/warmup' -import portfolioPage from '../../pages/portfolio.page' - -describe('Install older version of app and login', () => { - beforeAll(async () => { - await warmup() - console.log('Logged in successfully!') - }) - - it('Verify collectibles tab is displayed', async () => { - console.log('verifying collectibles tab is visible...') - await assertions.isVisible(portfolioPage.colectiblesTab) - await device.terminateApp() - }) -}) From 8486ac94255cefa5f69309b29511b1d849b12e2e Mon Sep 17 00:00:00 2001 From: Tyler Hackett Date: Thu, 12 Dec 2024 14:30:01 -0800 Subject: [PATCH 09/17] setup for regression runs --- bitrise.yml | 2 ++ .../loginWithLatestVersion.e2e.ts | 15 +++++++++++++ .../loginWithOlderVersion.e2e.ts | 16 ++++++++++++++ .../updateAppVersion/loginWithOlderVersion.sh | 22 +++++++++++-------- .../updateAppVersion/updateToLatestVersion.sh | 21 ++++++++++-------- 5 files changed, 58 insertions(+), 18 deletions(-) create mode 100644 packages/core-mobile/e2e/tests/updateAppVersion/loginWithLatestVersion.e2e.ts create mode 100644 packages/core-mobile/e2e/tests/updateAppVersion/loginWithOlderVersion.e2e.ts diff --git a/bitrise.yml b/bitrise.yml index 29aad4e5cc..557743f68c 100644 --- a/bitrise.yml +++ b/bitrise.yml @@ -789,6 +789,8 @@ workflows: - _pull_external_app_files after_run: - _run_android_detox_tests + - _install-old-android-version + - _install-latest-android-version - _upload-detox-artifacts - _send-test-result-notification-slack envs: diff --git a/packages/core-mobile/e2e/tests/updateAppVersion/loginWithLatestVersion.e2e.ts b/packages/core-mobile/e2e/tests/updateAppVersion/loginWithLatestVersion.e2e.ts new file mode 100644 index 0000000000..94598cf380 --- /dev/null +++ b/packages/core-mobile/e2e/tests/updateAppVersion/loginWithLatestVersion.e2e.ts @@ -0,0 +1,15 @@ +import assertions from '../../helpers/assertions' +import { warmup } from '../../helpers/warmup' +import portfolioPage from '../../pages/portfolio.page' + +describe('Install latest version of app and login', () => { + beforeAll(async () => { + await warmup() + console.log('Logged in successfully!') + }) + + it('Verify collectibles tab is displayed', async () => { + console.log('verifying collectibles tab is visible...') + await assertions.isVisible(portfolioPage.colectiblesTab) + }) +}) diff --git a/packages/core-mobile/e2e/tests/updateAppVersion/loginWithOlderVersion.e2e.ts b/packages/core-mobile/e2e/tests/updateAppVersion/loginWithOlderVersion.e2e.ts new file mode 100644 index 0000000000..dc60bd9fce --- /dev/null +++ b/packages/core-mobile/e2e/tests/updateAppVersion/loginWithOlderVersion.e2e.ts @@ -0,0 +1,16 @@ +import assertions from '../../helpers/assertions' +import { warmup } from '../../helpers/warmup' +import portfolioPage from '../../pages/portfolio.page' + +describe('Install older version of app and login', () => { + beforeAll(async () => { + await warmup() + console.log('Logged in successfully!') + }) + + it('Verify collectibles tab is displayed', async () => { + console.log('verifying collectibles tab is visible...') + await assertions.isVisible(portfolioPage.colectiblesTab) + await device.terminateApp() + }) +}) diff --git a/packages/core-mobile/e2e/tests/updateAppVersion/loginWithOlderVersion.sh b/packages/core-mobile/e2e/tests/updateAppVersion/loginWithOlderVersion.sh index dcda2e4120..bdc166290e 100755 --- a/packages/core-mobile/e2e/tests/updateAppVersion/loginWithOlderVersion.sh +++ b/packages/core-mobile/e2e/tests/updateAppVersion/loginWithOlderVersion.sh @@ -1,14 +1,18 @@ set -o pipefail +if [ $IS_REGRESSION_RUN = true ]; then -npm rebuild detox + npm rebuild detox + adb uninstall com.avaxwallet + npx ts-node ./e2e/tests/updateAppVersion/getOldAndroidVersion.js -npx ts-node ./e2e/tests/updateAppVersion/getOldAndroidVersion.js + adb install -r "./e2e/tests/updateAppVersion/oldVersionApk/app-external-e2e-bitrise-signed.apk" + adb install -r "./e2e/tests/updateAppVersion/oldVersionApk/app-external-e2e-androidTest-bitrise-signed.apk" -adb install -r "./e2e/tests/updateAppVersion/oldVersionApk/app-external-e2e-bitrise-signed.apk" -adb install -r "./e2e/tests/updateAppVersion/oldVersionApk/app-external-e2e-androidTest-bitrise-signed.apk" + QT_QPA_PLATFORM=xcb ./node_modules/.bin/detox test loginWithOlderVersion.e2e.smoke.ts --configuration android.external.e2e.old_version; test_result=$? && sleep 5 -QT_QPA_PLATFORM=xcb ./node_modules/.bin/detox test loginWithOlderVersion.e2e.smoke.ts --configuration android.external.e2e.old_version; test_result=$? && sleep 5 - -if ((test_result != 0)); then - exit 1 -fi \ No newline at end of file + if ((test_result != 0)); then + exit 1 + fi +else + echo "This is not a regression run so not running the updateAppVersion tests" +fi diff --git a/packages/core-mobile/e2e/tests/updateAppVersion/updateToLatestVersion.sh b/packages/core-mobile/e2e/tests/updateAppVersion/updateToLatestVersion.sh index 25cb645257..7afddcb8bb 100755 --- a/packages/core-mobile/e2e/tests/updateAppVersion/updateToLatestVersion.sh +++ b/packages/core-mobile/e2e/tests/updateAppVersion/updateToLatestVersion.sh @@ -1,14 +1,17 @@ set -o pipefail +if [$IS_REGRESSION_RUN = true]; then + npm rebuild detox -npm rebuild detox + adb install -r $BITRISE_APK_PATH + adb install -r $BITRISE_TEST_APK_PATH -adb install -r $BITRISE_APK_PATH -adb install -r $BITRISE_TEST_APK_PATH + QT_QPA_PLATFORM=xcb ./node_modules/.bin/detox test loginWithLatestVersion.e2e.smoke.ts --configuration android.external.release.ci --reuse; test_result=$? && sleep 5 -QT_QPA_PLATFORM=xcb ./node_modules/.bin/detox test loginWithLatestVersion.e2e.smoke.ts --configuration android.external.release.ci --reuse; test_result=$? && sleep 5 + npx ts-node ./e2e/attachLogsSendResultsToTestrail.ts -npx ts-node ./e2e/attachLogsSendResultsToTestrail.ts - -if ((test_result != 0)); then - exit 1 -fi \ No newline at end of file + if ((test_result != 0)); then + exit 1 + fi +else + echo "This is not a regression run so not running the updateAppVersion tests" +fi From fbdd558906b06182a3132931e2a49911879ba647 Mon Sep 17 00:00:00 2001 From: Tyler Hackett Date: Thu, 12 Dec 2024 15:50:33 -0800 Subject: [PATCH 10/17] remove smoke test tag --- .../e2e/tests/updateAppVersion/loginWithOlderVersion.sh | 2 +- .../e2e/tests/updateAppVersion/updateToLatestVersion.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/core-mobile/e2e/tests/updateAppVersion/loginWithOlderVersion.sh b/packages/core-mobile/e2e/tests/updateAppVersion/loginWithOlderVersion.sh index bdc166290e..48a0d45239 100755 --- a/packages/core-mobile/e2e/tests/updateAppVersion/loginWithOlderVersion.sh +++ b/packages/core-mobile/e2e/tests/updateAppVersion/loginWithOlderVersion.sh @@ -8,7 +8,7 @@ if [ $IS_REGRESSION_RUN = true ]; then adb install -r "./e2e/tests/updateAppVersion/oldVersionApk/app-external-e2e-bitrise-signed.apk" adb install -r "./e2e/tests/updateAppVersion/oldVersionApk/app-external-e2e-androidTest-bitrise-signed.apk" - QT_QPA_PLATFORM=xcb ./node_modules/.bin/detox test loginWithOlderVersion.e2e.smoke.ts --configuration android.external.e2e.old_version; test_result=$? && sleep 5 + QT_QPA_PLATFORM=xcb ./node_modules/.bin/detox test loginWithOlderVersion.e2e.ts --configuration android.external.e2e.old_version; test_result=$? && sleep 5 if ((test_result != 0)); then exit 1 diff --git a/packages/core-mobile/e2e/tests/updateAppVersion/updateToLatestVersion.sh b/packages/core-mobile/e2e/tests/updateAppVersion/updateToLatestVersion.sh index 7afddcb8bb..f22d20c4bf 100755 --- a/packages/core-mobile/e2e/tests/updateAppVersion/updateToLatestVersion.sh +++ b/packages/core-mobile/e2e/tests/updateAppVersion/updateToLatestVersion.sh @@ -5,7 +5,7 @@ if [$IS_REGRESSION_RUN = true]; then adb install -r $BITRISE_APK_PATH adb install -r $BITRISE_TEST_APK_PATH - QT_QPA_PLATFORM=xcb ./node_modules/.bin/detox test loginWithLatestVersion.e2e.smoke.ts --configuration android.external.release.ci --reuse; test_result=$? && sleep 5 + QT_QPA_PLATFORM=xcb ./node_modules/.bin/detox test loginWithLatestVersion.e2e.ts --configuration android.external.release.ci --reuse; test_result=$? && sleep 5 npx ts-node ./e2e/attachLogsSendResultsToTestrail.ts From d06fa7005ae8cb1d0fdfbc92cb13fbc9ef3246f4 Mon Sep 17 00:00:00 2001 From: Tyler Hackett Date: Thu, 12 Dec 2024 16:36:24 -0800 Subject: [PATCH 11/17] make update test always run --- bitrise.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/bitrise.yml b/bitrise.yml index 557743f68c..6430894d4b 100644 --- a/bitrise.yml +++ b/bitrise.yml @@ -210,12 +210,14 @@ workflows: steps: - script-runner@0: title: Update Android Test + is_always_run: true inputs: - file_path: e2e/tests/updateAppVersion/loginWithOlderVersion.sh _install-latest-android-version: steps: - script-runner@0: title: Update Android Test + is_always_run: true inputs: - file_path: e2e/tests/updateAppVersion/updateToLatestVersion.sh _pull_app_files: From e4675fc107d8d22f0bd97d5305f83c3acfb22354 Mon Sep 17 00:00:00 2001 From: Tyler Hackett Date: Thu, 12 Dec 2024 18:30:57 -0800 Subject: [PATCH 12/17] fix bash script runner --- packages/core-mobile/detox.config.js | 2 +- .../e2e/tests/updateAppVersion/loginWithOlderVersion.sh | 2 +- .../e2e/tests/updateAppVersion/updateToLatestVersion.sh | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/core-mobile/detox.config.js b/packages/core-mobile/detox.config.js index 860907b0f2..a8e4d1f609 100644 --- a/packages/core-mobile/detox.config.js +++ b/packages/core-mobile/detox.config.js @@ -515,7 +515,7 @@ module.exports = { testRunner: { $0: 'jest', args: { - config: './e2e/configs/smokeTestConfig.json' + config: './e2e/configs/regressionConfig.json' } } } diff --git a/packages/core-mobile/e2e/tests/updateAppVersion/loginWithOlderVersion.sh b/packages/core-mobile/e2e/tests/updateAppVersion/loginWithOlderVersion.sh index 48a0d45239..f1982a88f5 100755 --- a/packages/core-mobile/e2e/tests/updateAppVersion/loginWithOlderVersion.sh +++ b/packages/core-mobile/e2e/tests/updateAppVersion/loginWithOlderVersion.sh @@ -1,5 +1,5 @@ set -o pipefail -if [ $IS_REGRESSION_RUN = true ]; then +if [ "$IS_REGRESSION_RUN" = true ]; then npm rebuild detox adb uninstall com.avaxwallet diff --git a/packages/core-mobile/e2e/tests/updateAppVersion/updateToLatestVersion.sh b/packages/core-mobile/e2e/tests/updateAppVersion/updateToLatestVersion.sh index f22d20c4bf..f61ea6283b 100755 --- a/packages/core-mobile/e2e/tests/updateAppVersion/updateToLatestVersion.sh +++ b/packages/core-mobile/e2e/tests/updateAppVersion/updateToLatestVersion.sh @@ -1,5 +1,5 @@ set -o pipefail -if [$IS_REGRESSION_RUN = true]; then +if ["$IS_REGRESSION_RUN" = true]; then npm rebuild detox adb install -r $BITRISE_APK_PATH From c0a8f43c5d52bf48d209183eabd0f7a797a0092f Mon Sep 17 00:00:00 2001 From: Tyler Hackett Date: Fri, 13 Dec 2024 08:12:10 -0800 Subject: [PATCH 13/17] fix bash script typo --- .../e2e/tests/updateAppVersion/updateToLatestVersion.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core-mobile/e2e/tests/updateAppVersion/updateToLatestVersion.sh b/packages/core-mobile/e2e/tests/updateAppVersion/updateToLatestVersion.sh index f61ea6283b..2a953d1925 100755 --- a/packages/core-mobile/e2e/tests/updateAppVersion/updateToLatestVersion.sh +++ b/packages/core-mobile/e2e/tests/updateAppVersion/updateToLatestVersion.sh @@ -1,5 +1,5 @@ set -o pipefail -if ["$IS_REGRESSION_RUN" = true]; then +if [ "$IS_REGRESSION_RUN" = true ]; then npm rebuild detox adb install -r $BITRISE_APK_PATH From ae006538536af3c405c135fc6250e8bc99bd0aee Mon Sep 17 00:00:00 2001 From: Tyler Hackett Date: Fri, 13 Dec 2024 13:31:58 -0800 Subject: [PATCH 14/17] fix detox local configuration --- packages/core-mobile/detox.config.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/core-mobile/detox.config.js b/packages/core-mobile/detox.config.js index a8e4d1f609..3366c83d14 100644 --- a/packages/core-mobile/detox.config.js +++ b/packages/core-mobile/detox.config.js @@ -449,7 +449,7 @@ module.exports = { } }, 'android.external.release.ci': { - device: 'emulator_ci', + device: 'emulator', app: 'android.external.release.ci', artifacts: { rootDir: './e2e/artifacts/android' @@ -463,7 +463,7 @@ module.exports = { } }, 'android.external.release.smoke.ci': { - device: 'emulator_ci', + device: 'emulator', app: 'android.external.release.ci', artifacts: { rootDir: './e2e/artifacts/android' @@ -476,7 +476,7 @@ module.exports = { } }, 'android.external.release.regression.ci': { - device: 'emulator_ci', + device: 'emulator', app: 'android.external.release.ci', artifacts: { rootDir: './e2e/artifacts/android' @@ -503,11 +503,11 @@ module.exports = { } }, 'android.internal.e2e': { - device: 'emulator_ci', + device: 'emulator', app: 'android.internal.e2e' }, 'android.external.e2e.old_version': { - device: 'emulator_ci', + device: 'emulator', app: 'android.external.e2e.old_version', artifacts: { rootDir: './e2e/artifacts/android' From 637272d6b2a9dddba02b31dfcb9bd1f855910ace Mon Sep 17 00:00:00 2001 From: Tyler Hackett Date: Fri, 13 Dec 2024 13:33:03 -0800 Subject: [PATCH 15/17] fix detox local configuration --- packages/core-mobile/detox.config.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/core-mobile/detox.config.js b/packages/core-mobile/detox.config.js index 3366c83d14..d9ee485fa2 100644 --- a/packages/core-mobile/detox.config.js +++ b/packages/core-mobile/detox.config.js @@ -463,7 +463,7 @@ module.exports = { } }, 'android.external.release.smoke.ci': { - device: 'emulator', + device: 'emulator_ci', app: 'android.external.release.ci', artifacts: { rootDir: './e2e/artifacts/android' @@ -476,7 +476,7 @@ module.exports = { } }, 'android.external.release.regression.ci': { - device: 'emulator', + device: 'emulator_ci', app: 'android.external.release.ci', artifacts: { rootDir: './e2e/artifacts/android' From ab22db2dbdfc7a91968f03014f8e8cef34acefc5 Mon Sep 17 00:00:00 2001 From: Tyler Hackett Date: Fri, 13 Dec 2024 13:33:35 -0800 Subject: [PATCH 16/17] fix detox local configuration --- packages/core-mobile/detox.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core-mobile/detox.config.js b/packages/core-mobile/detox.config.js index d9ee485fa2..b842ff7676 100644 --- a/packages/core-mobile/detox.config.js +++ b/packages/core-mobile/detox.config.js @@ -449,7 +449,7 @@ module.exports = { } }, 'android.external.release.ci': { - device: 'emulator', + device: 'emulator_ci', app: 'android.external.release.ci', artifacts: { rootDir: './e2e/artifacts/android' From 27d501d76a053f547d1a8d6c08ce7f6714d1fcfc Mon Sep 17 00:00:00 2001 From: Tyler Hackett Date: Tue, 17 Dec 2024 09:55:57 -0800 Subject: [PATCH 17/17] merge main --- yarn.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/yarn.lock b/yarn.lock index 4fba3ef71c..973b0d37f4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -26660,7 +26660,7 @@ react-native-webview@ava-labs/react-native-webview: peerDependencies: react: "*" react-native: "*" - checksum: a187edd718e1ea3a6b1e5da167744e6ee324bc3c3e492bcb0a9d028ab68a82907f053f37c23aa4229d6a9091541cee3c73549c3c850056e4cf5eb5b3cb2c9ffc + checksum: 0efa24aa4da8f418f515b6be88e91948284856000fe5fde7026fa63ee814d84e7b7fbc1e8b8d98bc1833c05c9740a9fe2edf15b0909b77b4d012db22b75f5370 languageName: node linkType: hard