diff --git a/Makefile b/Makefile index 2f34278669..ed713e1493 100644 --- a/Makefile +++ b/Makefile @@ -298,23 +298,18 @@ shadow-server:##@ Start shadow-cljs in server mode for watching yarn shadow-cljs server test-watch: export TARGET := clojure -test-watch: status-go-library test-watch: ##@ Watch tests and re-run no changes to cljs files yarn install nodemon --exec 'yarn shadow-cljs compile mocks && yarn shadow-cljs compile test && node --require ./test-resources/override.js target/test/test.js' -e cljs test: export TARGET := clojure -test: status-go-library ##@test Run tests once in NodeJS +test: ##@test Run tests once in NodeJS # Here we creates the gyp bindings for nodejs yarn install yarn shadow-cljs compile mocks && \ yarn shadow-cljs compile test && \ node --require ./test-resources/override.js target/test/test.js - -coverage: ##@test Run tests once in NodeJS generating coverage - @scripts/run-coverage.sh - #-------------- # Other #-------------- diff --git a/ci/Jenkinsfile.android b/ci/Jenkinsfile.android index cfda26dabb..8f51a11d79 100644 --- a/ci/Jenkinsfile.android +++ b/ci/Jenkinsfile.android @@ -1,4 +1,4 @@ -library 'status-jenkins-lib@v1.5.0' +library 'status-jenkins-lib@v1.5.1' /* Options section can't access functions in objects. */ def isPRBuild = utils.isPRBuild() @@ -56,43 +56,14 @@ pipeline { } } } - stage('Parallel Assemble') { - parallel { - stage('Checks') { stages { - stage('Lint') { - steps { - script { - /* We want the build result to be uploaded */ - catchError( - message: 'Linting check failed!', - buildResult: 'FAILURE', - stageResult: 'FAILURE' - ) { - sh 'make lint' - } - } - } - } - stage('Tests') { - steps { - script { - sh 'make test' - } - } - } - } } - stage('Build') { stages { - stage('Bundle') { - steps { - script { apks = android.bundle() } - } - } - stage('Sign') { - steps { - script { apks = android.sign(apks) } - } - } - } } + stage('Bundle') { + steps { + script { apks = android.bundle() } + } + } + stage('Sign') { + steps { + script { apks = android.sign(apks) } } } stage('Parallel Upload') { @@ -103,37 +74,30 @@ pipeline { } } } stage('Upload') { - steps { - script { - def urls = apks.collect { s3.uploadArtifact(it) } - /* return only the universal APK */ - if (urls.size() > 1) { - env.PKG_URL = urls.find { it.contains('universal') } - } else { /* if no universal is available pick first */ - env.PKG_URL = urls.first() - } - jenkins.setBuildDesc(APK: env.PKG_URL) - /* e2e builds get tested in SauceLabs */ - if (utils.isE2EBuild()) { - env.SAUCE_URL = android.uploadToSauceLabs() - } - if (utils.isNightlyBuild()) { - env.DIAWI_URL = android.uploadToDiawi() - } + steps { script { + def urls = apks.collect { s3.uploadArtifact(it) } + /* return only the universal APK */ + if (urls.size() > 1) { + env.PKG_URL = urls.find { it.contains('universal') } + } else { /* if no universal is available pick first */ + env.PKG_URL = urls.first() } - } + jenkins.setBuildDesc(APK: env.PKG_URL) + /* e2e builds get tested in SauceLabs */ + if (utils.isE2EBuild()) { + env.SAUCE_URL = android.uploadToSauceLabs() + } + if (utils.isNightlyBuild()) { + env.DIAWI_URL = android.uploadToDiawi() + } + } } } } } - stage('Cleanup') { - steps { - sh 'make purge' - } - } } post { success { script { github.notifyPR(true) } } failure { script { github.notifyPR(false) } } - always { sh 'make _fix-node-perms' } + always { sh 'make purge' } } } diff --git a/ci/Jenkinsfile.combined b/ci/Jenkinsfile.combined index 89eb215933..22e398f6c5 100644 --- a/ci/Jenkinsfile.combined +++ b/ci/Jenkinsfile.combined @@ -1,4 +1,4 @@ -library 'status-jenkins-lib@v1.5.0' +library 'status-jenkins-lib@v1.5.1' pipeline { agent { label 'linux' } @@ -49,6 +49,9 @@ pipeline { stage('Android e2e') { steps { script { apke2e = jenkins.Build('status-mobile/platforms/android-e2e') } } } + stage('Tests') { steps { script { + ios = jenkins.Build('status-mobile/platforms/tests') + } } } } } stage('Archive') { diff --git a/ci/Jenkinsfile.ios b/ci/Jenkinsfile.ios index a635922f39..9c7439039f 100644 --- a/ci/Jenkinsfile.ios +++ b/ci/Jenkinsfile.ios @@ -1,4 +1,4 @@ -library 'status-jenkins-lib@v1.5.0' +library 'status-jenkins-lib@v1.5.1' /* Options section can't access functions in objects. */ def isPRBuild = utils.isPRBuild() @@ -55,43 +55,14 @@ pipeline { } } } - stage('Parallel Assemble') { - parallel { - stage('Checks') { stages { - stage('Lint') { - steps { - script { - /* We want the build result to be uploaded */ - catchError( - message: 'Linting check failed!', - buildResult: 'FAILURE', - stageResult: 'FAILURE' - ) { - sh 'make lint' - } - } - } - } - stage('Tests') { - steps { - script { - sh 'make test' - } - } - } - } } - stage('Build') { stages { - stage('JSBundle') { - steps { - script { ios.jsbundle() } - } - } - stage('Bundle') { - steps { - script { api = ios.bundle() } - } - } - } } + stage('JSBundle') { + steps { + script { ios.jsbundle() } + } + } + stage('Bundle') { + steps { + script { api = ios.bundle() } } } stage('Parallel Upload') { @@ -102,31 +73,23 @@ pipeline { } } stage('Upload') { - steps { - script { - env.PKG_URL = s3.uploadArtifact(api) - jenkins.setBuildDesc(IPA: env.PKG_URL) - /* e2e builds get tested in SauceLabs */ - if (utils.isE2EBuild()) { - env.SAUCE_URL = ios.uploadToSauceLabs() - } else { - env.DIAWI_URL = ios.uploadToDiawi() - } + steps { script { + env.PKG_URL = s3.uploadArtifact(api) + jenkins.setBuildDesc(IPA: env.PKG_URL) + /* e2e builds get tested in SauceLabs */ + if (utils.isE2EBuild()) { + env.SAUCE_URL = ios.uploadToSauceLabs() + } else { + env.DIAWI_URL = ios.uploadToDiawi() } - } + } } } } } - stage('Cleanup') { - steps { - sh 'make watchman-clean' - sh 'make purge' - } - } } post { success { script { github.notifyPR(true) } } failure { script { github.notifyPR(false) } } - always { sh 'make _fix-node-perms' } + always { sh 'make purge' } } } diff --git a/ci/Jenkinsfile.nix-cache b/ci/Jenkinsfile.nix-cache index 085f14cd27..7468b1ee0d 100644 --- a/ci/Jenkinsfile.nix-cache +++ b/ci/Jenkinsfile.nix-cache @@ -1,4 +1,4 @@ -library 'status-jenkins-lib@v1.5.0' +library 'status-jenkins-lib@v1.5.1' pipeline { agent { label params.AGENT_LABEL } diff --git a/ci/Jenkinsfile.tests b/ci/Jenkinsfile.tests new file mode 100644 index 0000000000..d90fe8b930 --- /dev/null +++ b/ci/Jenkinsfile.tests @@ -0,0 +1,77 @@ +library 'status-jenkins-lib@v1.5.0' + +/* Options section can't access functions in objects. */ +def isPRBuild = utils.isPRBuild() + +pipeline { + agent { label 'linux && x86_64 && nix-2.8' } + + options { + timestamps() + /* Prevent Jenkins jobs from running forever */ + timeout(time: 10, unit: 'MINUTES') + /* Limit builds retained */ + buildDiscarder(logRotator( + numToKeepStr: '10', + daysToKeepStr: '20', + artifactNumToKeepStr: '10', + )) + /* Abort old PR builds. */ + disableConcurrentBuilds( + abortPrevious: isPRBuild + ) + } + + parameters { + string( + name: 'BUILD_TYPE', + description: 'Specify build type. Values: pr / e2e / nightly / release', + defaultValue: 'pr', + ) + } + + environment { + LANG = "en_US.UTF-8" + LC_ALL = "en_US.UTF-8" + LANGUAGE = "en_US.UTF-8" + TARGET = 'tests' + BUILD_ENV = 'prod' + NIX_CONF_DIR = "${env.WORKSPACE}/nix" + LOG_FILE = utils.pkgFilename(ext: 'log', arch: 'tests') + } + + stages { + stage('Prep') { + steps { + script { + btype = utils.getBuildType() + print "Running ${btype} build!" + /* Cleanup and Prep */ + commonPrep(btype) + } + } + } + stage('Checks') { + parallel { + stage('Lint') { + steps { sh "make lint > ${LOG_FILE}" } + } + stage('Tests') { + steps { sh "make test >> ${LOG_FILE}" } + } + } + } + stage('Upload') { + steps { + script { + env.PKG_URL = s3.uploadArtifact(LOG_FILE) + } + } + } + } + post { + success { script { github.notifyPR(true) } } + failure { script { github.notifyPR(false) } } + always { sh 'make purge' } + } +} diff --git a/ci/tests/Jenkinsfile.e2e-prs b/ci/tests/Jenkinsfile.e2e-prs index 04b2985e78..f246c07def 100644 --- a/ci/tests/Jenkinsfile.e2e-prs +++ b/ci/tests/Jenkinsfile.e2e-prs @@ -1,4 +1,4 @@ -library 'status-jenkins-lib@v1.5.0' +library 'status-jenkins-lib@v1.5.1' pipeline { diff --git a/ci/tools/Jenkinsfile.fastlane-clean b/ci/tools/Jenkinsfile.fastlane-clean index a60948f0b2..737c4ab5b1 100644 --- a/ci/tools/Jenkinsfile.fastlane-clean +++ b/ci/tools/Jenkinsfile.fastlane-clean @@ -1,4 +1,4 @@ -library 'status-jenkins-lib@v1.5.0' +library 'status-jenkins-lib@v1.5.1' pipeline { agent { label 'macos' } diff --git a/ci/tools/Jenkinsfile.playstore-meta b/ci/tools/Jenkinsfile.playstore-meta index 7fd11ae33d..247a7c44ce 100644 --- a/ci/tools/Jenkinsfile.playstore-meta +++ b/ci/tools/Jenkinsfile.playstore-meta @@ -1,4 +1,4 @@ -library 'status-jenkins-lib@v1.5.0' +library 'status-jenkins-lib@v1.5.1' pipeline { agent { label 'linux' } diff --git a/nix/config.nix b/nix/config.nix index 110b441448..0790641a22 100644 --- a/nix/config.nix +++ b/nix/config.nix @@ -12,7 +12,10 @@ abi-include = "armeabi-v7a;arm64-v8a;x86"; # Android architectures to build for }; - status-go = { src-override = null; }; + status-go = { + src-override = null; + ipfs-gateway-url = "https://ipfs.status.im/"; + }; }; # Android SDK requires an accepted license diff --git a/nix/status-go/default.nix b/nix/status-go/default.nix index 1c71ae5087..4de9a64786 100644 --- a/nix/status-go/default.nix +++ b/nix/status-go/default.nix @@ -1,7 +1,7 @@ { lib, callPackage, mkShell }: let - inherit (lib) attrValues mapAttrs; + inherit (lib) getConfig attrValues mapAttrs; # Metadata common to all builds of status-go meta = { @@ -17,6 +17,8 @@ let goBuildParams = { GitCommit = source.rev; Version = source.cleanVersion; + # FIXME: This should be moved to status-go config. + IpfsGatewayURL = getConfig "status-go.ipfs-gateway-url" "https://ipfs.status.im/"; }; # These are necessary for status-go to show correct version diff --git a/package.json b/package.json index 7f13ce282c..13aa89c62c 100644 --- a/package.json +++ b/package.json @@ -83,7 +83,6 @@ "@babel/register": "7.0.0", "@mapbox/node-pre-gyp": "^1.0.9", "clj-kondo": "^2020.1.13", - "coveralls": "^3.0.4", "jest": "^25.1.0", "nodemon": "^2.0.16", "nyc": "^14.1.1", diff --git a/resources/images/icons/purchasable12@2x.png b/resources/images/icons/purchasable12@2x.png new file mode 100644 index 0000000000..01ad5e35c5 Binary files /dev/null and b/resources/images/icons/purchasable12@2x.png differ diff --git a/resources/images/icons/purchasable12@3x.png b/resources/images/icons/purchasable12@3x.png new file mode 100644 index 0000000000..fb0b99464f Binary files /dev/null and b/resources/images/icons/purchasable12@3x.png differ diff --git a/resources/images/icons/required_checkmark12@2x.png b/resources/images/icons/required_checkmark12@2x.png new file mode 100644 index 0000000000..a1b9f51d1e Binary files /dev/null and b/resources/images/icons/required_checkmark12@2x.png differ diff --git a/resources/images/icons/required_checkmark12@3x.png b/resources/images/icons/required_checkmark12@3x.png new file mode 100644 index 0000000000..0779121905 Binary files /dev/null and b/resources/images/icons/required_checkmark12@3x.png differ diff --git a/scripts/run-coverage.sh b/scripts/run-coverage.sh deleted file mode 100755 index 36a034bbf9..0000000000 --- a/scripts/run-coverage.sh +++ /dev/null @@ -1,51 +0,0 @@ -#!/usr/bin/env bash - -# Fail on first error -set -e - -TEST_JS=target/test/test.js -COVERAGE_REPORT=coverage-report/lcov.info - -rm -rf "${COVERAGE_REPORT}" - -RED='\033[0;31m' -GREEN='\033[0;32m' -YELLOW='\033[1;33m' -NC='\033[0m' - -if [ ! -f "$TEST_JS" ]; then - echo -e "${YELLOW}test suite not found, compiling and running...${NC}" - make test -else - echo -e "${YELLOW}test suite found.${NC}" -fi - -echo -e "${YELLOW}running test suite with coverage...${NC}" - -nyc node target/test/test.js - -echo -e "${GREEN}DONE.${NC}" - -if [ ! -f "$COVERAGE_REPORT" ]; then - echo -e "${RED}coverage report not generated! check nyc configuration file .nycrc${NC}" - exit 1 -fi - -## COVERALLS ENV ## - -# COVERALLS_REPO_TOKEN (the secret repo token from coveralls.io) - -# optionals ENV -# COVERALLS_SERVICE_NAME (the name of your build system, "jenkins" -# COVERALLS_SERVICE_JOB_ID - -if [ -z "$COVERALLS_REPO_TOKEN" ]; then - echo -e "${RED}COVERALLS_REPO_TOKEN not set!${NC}" - exit 1 -fi - -echo -e "${YELLOW}uploading coverage to coveralls...${NC}" - -cat coverage-report/lcov.info | coveralls - -echo -e "${GREEN}DONE.${NC}" \ No newline at end of file diff --git a/src/quo2/components/tag.cljs b/src/quo2/components/tag.cljs new file mode 100644 index 0000000000..3abb26359e --- /dev/null +++ b/src/quo2/components/tag.cljs @@ -0,0 +1,51 @@ +(ns quo2.components.tag + (:require [quo.react-native :as rn] + [quo2.foundations.colors :as colors] + [quo.theme :as theme] + [quo2.components.text :as text])) + +(def themes {:light {:background-color colors/neutral-20} + :dark {:background-color colors/neutral-80}}) + +(defn get-value-from-size [size big-option small-option] + (if (= size :big) big-option small-option)) + +(defn tag-container [size] + {:height (get-value-from-size size 32 24) + :align-items :center + :flex-direction :row + :border-radius 20}) + +(defn tag "[tag opts \"label\"]] + opts + { + :size :small/:big + :token-img-src :token-img-src + :token-img-style {} + :border-color :color + :overlay child-elements + }" + [_ _] + (fn [{:keys [size token-img-src token-img-style border-color overlay] + :or {size :small}} label] + [rn/view + {:style (when border-color + {:border-color border-color + :border-radius 20 + :border-width 1})} + [rn/view + {:style (merge (tag-container size) (get themes (theme/get-theme)))} + [rn/image + {:source token-img-src + :style (merge + {:height (get-value-from-size size 28 20) + :width (get-value-from-size size 28 20) + :margin-left 2 + :margin-right (get-value-from-size size 8 6)} token-img-style)}] + [text/text + {:weight :medium + :number-of-lines 1 + :style + {:margin-right (get-value-from-size size 12 11)} + :size (get-value-from-size size :paragraph-2 :label)} label] + overlay]])) \ No newline at end of file diff --git a/src/quo2/components/token_tag.cljs b/src/quo2/components/token_tag.cljs new file mode 100644 index 0000000000..18c72862e6 --- /dev/null +++ b/src/quo2/components/token_tag.cljs @@ -0,0 +1,55 @@ +(ns quo2.components.token-tag + (:require [quo2.foundations.colors :as colors] + [quo.react-native :as rn] + [quo.theme :as theme] + [status-im.ui.components.icons.icons :as icons] + [quo2.components.tag :as tag])) + +(defn get-value-from-size [size big-option small-option] + (if (= size :big) big-option small-option)) + +(def icon-container-styles + {:display :flex + :align-items :center + :justify-content :center + :position :absolute + :border-radius 20 + :margin-left 2}) + +(defn token-tag + "[token-tag opts] + opts + { + :token string + :value string + :size :small/:big + :token-img-src :token-img-src + :border-color :color + :is-required true/false + :is-purchasable true/false + }" + [_ _] + (fn [{:keys [token value size token-img-src border-color is-required is-purchasable] + :or + {size :small border-color (if (= (theme/get-theme) :dark) colors/purple-60 colors/purple-50)}}] + + [tag/tag {:size size + :token-img-src token-img-src + :border-color (when is-required border-color) + :overlay + (when (or is-required is-purchasable) + [rn/view + {:style (merge icon-container-styles + {:width 15.5 + :height 15.5 + :background-color border-color + :border-color (if (= (theme/get-theme) :dark) colors/black colors/white) + :border-width 1 + :right (get-value-from-size size -3.75 -5.75) + :bottom (get-value-from-size size (- 32 7.75 4) (- 24 7.75 2)) ; (- height (icon-height/2) spacing) + })} + [icons/icon (if is-required :main-icons2/required-checkmark12 :main-icons2/purchasable12) + {:no-color true + :width 13.5 + :height 13.5}]])} + (str value " " token)])) diff --git a/src/quo2/screens/main.cljs b/src/quo2/screens/main.cljs index 1c1ad6eb71..527b1dd931 100644 --- a/src/quo2/screens/main.cljs +++ b/src/quo2/screens/main.cljs @@ -11,6 +11,7 @@ [quo2.screens.context-tags :as context-tags] [quo2.screens.group-avatar :as group-avatar] [quo2.screens.activity-logs :as activity-logs] + [quo2.screens.token-tag :as token-tag] [quo2.screens.counter :as counter] [quo2.screens.segmented :as segmented] [quo2.screens.info-message :as info-message] @@ -42,6 +43,9 @@ {:name :quo2-tabs :insets {:top false} :component tabs/preview-tabs} + {:name :quo2-token-tag + :insets {:top false} + :component token-tag/preview-token-tag} {:name :quo2-segmented :insets {:top false} :component segmented/preview-segmented} diff --git a/src/quo2/screens/token_tag.cljs b/src/quo2/screens/token_tag.cljs new file mode 100644 index 0000000000..c0d9d15501 --- /dev/null +++ b/src/quo2/screens/token_tag.cljs @@ -0,0 +1,69 @@ +(ns quo2.screens.token-tag + (:require [quo.react-native :as rn] + [quo.previews.preview :as preview] + [reagent.core :as reagent] + [quo2.components.token-tag :as quo2] + [quo.design-system.colors :as colors])) + +(def descriptor [{:label "Size:" + :key :size + :type :select + :options [{:key :big + :value "big"} + {:key :small + :value "small"}]} + {:label "Value:" + :key :value + :type :select + :options [{:key 0 + :value "0"} + {:key 10 + :value "10"} + {:key 100 + :value "100"} + {:key 1000 + :value "1000"} + {:key 10000 + :value "10000"}]} + + {:label "Community Color:" + :key :border-color + :type :select + :options [{:key "#00a191" + :value "green"} + {:key "red" + :value "red"}]} + {:label "Is Required:" + :key :is-required + :type :boolean} + {:label "Is Purchasable:" + :key :is-purchasable + :type :boolean} + {:label "Token:" + :key :token + :type :select + :options [{:key "ETH" + :value "ETH"} + {:key "SNT" + :value "SNT"}]}]) + +(def eth-token (js/require "../resources/images/tokens/mainnet/ETH.png")) +(def snt-token (js/require "../resources/images/tokens/mainnet/SNT.png")) + +(defn cool-preview [] + (let [state (reagent/atom {:size :big :value 10 :token "ETH" :is-required true :is-purchasable false})] + (fn [] + [rn/view {:margin-bottom 50 + :padding 16} + [preview/customizer state descriptor] + [rn/view {:padding-vertical 60 + :align-items :center} + [quo2/token-tag (merge @state {:token-img-src (if (= (get-in @state [:token]) "ETH") eth-token snt-token)})]]]))) + +(defn preview-token-tag [] + [rn/view {:background-color (:ui-background @colors/theme) + :flex 1} + [rn/flat-list {:flex 1 + :keyboardShouldPersistTaps :always + :header [cool-preview] + :key-fn str}]]) \ No newline at end of file diff --git a/src/status_im/browser/core.cljs b/src/status_im/browser/core.cljs index f46406cdef..14d3884a57 100644 --- a/src/status_im/browser/core.cljs +++ b/src/status_im/browser/core.cljs @@ -50,7 +50,7 @@ {:events [:browser.ui/remove-browser-pressed]} [{:keys [db]} browser-id] {:db (update-in db [:browser/browsers] dissoc browser-id) - ::json-rpc/call [{:method "browsers_deleteBrowser" + ::json-rpc/call [{:method "wakuext_deleteBrowser" :params [browser-id] :on-success #()}]}) @@ -59,7 +59,7 @@ [{:keys [db]}] {:db (dissoc db :browser/browsers) ::json-rpc/call (for [browser-id (keys (get db :browser/browsers))] - {:method "browsers_deleteBrowser" + {:method "wakuext_deleteBrowser" :params [browser-id] :on-success #()})}) @@ -96,7 +96,7 @@ {:db (update-in db [:browser/browsers browser-id] merge updated-browser) - ::json-rpc/call [{:method "browsers_addBrowser" + ::json-rpc/call [{:method "wakuext_addBrowser" :params [(select-keys updated-browser [:browser-id :timestamp :name :dapp? :history :history-index])] :on-success #()}]})) diff --git a/src/status_im/keycard/recovery.cljs b/src/status_im/keycard/recovery.cljs index 1c335fccae..d0de9c05cb 100644 --- a/src/status_im/keycard/recovery.cljs +++ b/src/status_im/keycard/recovery.cljs @@ -131,7 +131,7 @@ (update :keycard dissoc :flow) (dissoc :restored-account?))} (multiaccounts.create/prepare-intro-wizard) - (navigation/navigate-to-cofx :get-your-keys nil))) + (navigation/set-stack-root :onboarding [:get-your-keys]))) (fx/defn recovery-no-key {:events [:keycard.recovery.no-key.ui/generate-key-pressed]} diff --git a/src/status_im/multiaccounts/login/core.cljs b/src/status_im/multiaccounts/login/core.cljs index f8dd0dbeae..61d4062e9f 100644 --- a/src/status_im/multiaccounts/login/core.cljs +++ b/src/status_im/multiaccounts/login/core.cljs @@ -328,7 +328,7 @@ (fx/defn initialize-browser [_] {::json-rpc/call - [{:method "browsers_getBrowsers" + [{:method "wakuext_getBrowsers" :on-success #(re-frame/dispatch [::initialize-browsers %])} {:method "browsers_getBookmarks" :on-success #(re-frame/dispatch [::initialize-bookmarks %])} diff --git a/status-go-version.json b/status-go-version.json index d0794a2410..20772ff012 100644 --- a/status-go-version.json +++ b/status-go-version.json @@ -3,7 +3,7 @@ "_comment": "Instead use: scripts/update-status-go.sh ", "owner": "status-im", "repo": "status-go", - "version": "v0.106.2", - "commit-sha1": "f43f43cc30e56d342cf8d25d2e0e56aecc83fa6e", - "src-sha256": "0j9xgkblv56h3vvkiwsy3wnwazs0fcs4z3f3mvlvs058vpdkv9hw" + "version": "v0.107.0", + "commit-sha1": "86054875a4f0296ed38858553448dfe92c14da9c", + "src-sha256": "1mw6v20h20g1zy30qs97ys2dv5nggzvdbfmdfygwvf3fj018yklg" } diff --git a/test/appium/tests/critical/wallet_and_tx/test_wallet.py b/test/appium/tests/critical/wallet_and_tx/test_wallet.py index 0fb836b17a..d26a5c7783 100644 --- a/test/appium/tests/critical/wallet_and_tx/test_wallet.py +++ b/test/appium/tests/critical/wallet_and_tx/test_wallet.py @@ -129,6 +129,7 @@ class TestWalletManagementDeviceMerged(MultipleSharedDeviceTestCase): self.sign_in.just_fyi("Check that 0 asset is not disappearing after relogin") self.wallet.reopen_app() + self.home.continue_syncing_button.click_if_shown(5) self.sign_in.wallet_button.click() self.wallet.asset_by_name(asset).scroll_to_element() diff --git a/test/appium/tests/medium/test_single_device.py b/test/appium/tests/medium/test_single_device.py index 1383406b0b..43a7d5c913 100644 --- a/test/appium/tests/medium/test_single_device.py +++ b/test/appium/tests/medium/test_single_device.py @@ -906,10 +906,9 @@ class TestChatManagement(SingleDeviceTestCase): profile.close_button.click() if not profile.element_by_text(h_node).is_element_displayed(): self.errors.append('"%s" history node is not pinned' % h_node) - profile.home_button.click() profile.just_fyi('Relogin and check that settings are preserved') - home.relogin() + home.reopen_app() home.profile_button.click() profile.sync_settings_button.click() if not profile.element_by_text(h_node).is_element_displayed(): diff --git a/test/appium/views/base_view.py b/test/appium/views/base_view.py index 32801bfe85..2852945706 100644 --- a/test/appium/views/base_view.py +++ b/test/appium/views/base_view.py @@ -538,16 +538,14 @@ class BaseView(object): def get_back_to_home_view(self, times_to_click_on_back_btn=3): counter = 0 - while self.back_button.is_element_displayed(2) or self.close_button.is_element_displayed(2) or self.navigate_up_button.is_element_displayed(2): + while self.back_button.is_element_displayed(2) or self.navigate_up_button.is_element_displayed(2): try: if counter >= times_to_click_on_back_btn: break if self.back_button.is_element_displayed(2): - self.back_button.click_until_presence_of_element(self.home_button) - elif self.close_button.is_element_displayed(2): - self.close_button.click_until_presence_of_element(self.home_button) + self.back_button.click_until_absense_of_element(self.back_button) else: - self.navigate_up_button.click_until_presence_of_element(self.home_button) + self.navigate_up_button.click_until_absense_of_element(self.navigate_up_button) counter += 1 except (NoSuchElementException, TimeoutException): continue diff --git a/yarn.lock b/yarn.lock index 0e77411b15..175d256f5a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3370,17 +3370,6 @@ cosmiconfig@^5.0.5, cosmiconfig@^5.1.0: js-yaml "^3.13.1" parse-json "^4.0.0" -coveralls@^3.0.4: - version "3.0.13" - resolved "https://registry.yarnpkg.com/coveralls/-/coveralls-3.0.13.tgz#64d8c99af3b8a771a2e6e5bcdf556c3c5061d29d" - integrity sha512-Bch6FJI4ebK6Mwr+DjFCJbb/RayNwn5pscSDE4Ux6cgjNkAcjdgGZBRfQnuYTt5tY81MqGK8m2r+xc5FDF513A== - dependencies: - js-yaml "^3.13.1" - lcov-parse "^1.0.0" - log-driver "^1.2.7" - minimist "^1.2.5" - request "^2.88.0" - cp-file@^6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/cp-file/-/cp-file-6.2.0.tgz#40d5ea4a1def2a9acdd07ba5c0b0246ef73dc10d" @@ -6058,11 +6047,6 @@ latest-version@^5.1.0: dependencies: package-json "^6.3.0" -lcov-parse@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lcov-parse/-/lcov-parse-1.0.0.tgz#eb0d46b54111ebc561acb4c408ef9363bdc8f7e0" - integrity sha1-6w1GtUER68VhrLTECO+TY73I9+A= - leven@2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580" @@ -6169,11 +6153,6 @@ lodash@^4.17.10, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.3. resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== -log-driver@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/log-driver/-/log-driver-1.2.7.tgz#63b95021f0702fedfa2c9bb0a24e7797d71871d8" - integrity sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg== - log-symbols@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a"