From d24f4690b85886913caae783013dfbe9ead201c6 Mon Sep 17 00:00:00 2001 From: Gheorghe Pinzaru Date: Tue, 17 Mar 2020 12:15:02 +0300 Subject: [PATCH] Fix failing test for navigation task Handle default case for ens confirmation Before navigation away the registration state is cleared and case does not handle default value for nil Remove extra space on home button Remove outdated options Fix e2e Change navigation replace arguments as per rn5 Fixes #10178 Dispatch navigation later Do not restore state for react-native-screens Signed-off-by: Gheorghe Pinzaru --- .../main/java/im/status/ethereum/MainActivity.java | 3 ++- src/status_im/init/core.cljs | 13 ++++++++----- src/status_im/ui/screens/ens/views.cljs | 6 ++++-- src/status_im/ui/screens/home/styles.cljs | 5 +---- src/status_im/ui/screens/routing/core.cljs | 4 +--- .../ui/screens/routing/intro_login_stack.cljs | 1 - test/appium/views/base_view.py | 6 +++--- 7 files changed, 19 insertions(+), 19 deletions(-) diff --git a/android/app/src/main/java/im/status/ethereum/MainActivity.java b/android/app/src/main/java/im/status/ethereum/MainActivity.java index c341a90276..70aadc012a 100644 --- a/android/app/src/main/java/im/status/ethereum/MainActivity.java +++ b/android/app/src/main/java/im/status/ethereum/MainActivity.java @@ -117,7 +117,8 @@ public class MainActivity extends ReactFragmentActivity setSecureFlag(); SplashScreen.show(this, true); - super.onCreate(savedInstanceState); + // NOTE: Try to not restore the state https://github.com/software-mansion/react-native-screens/issues/17 + super.onCreate(null); if (!shouldShowRootedNotification()) { configureStatus(); diff --git a/src/status_im/init/core.cljs b/src/status_im/init/core.cljs index 7b57c5d245..dab370a3fe 100644 --- a/src/status_im/init/core.cljs +++ b/src/status_im/init/core.cljs @@ -32,6 +32,7 @@ :multiaccounts/loading true)}) (fx/defn initialize-views + {:events [::initialize-view]} [cofx {:keys [logout?]}] (let [{{:multiaccounts/keys [multiaccounts] :as db} :db} cofx] (when (and (seq multiaccounts) (not logout?)) @@ -50,11 +51,13 @@ {} all-multiaccounts)] (fx/merge cofx - {:db (-> db - (assoc :multiaccounts/multiaccounts multiaccounts) - (assoc :multiaccounts/logout? logout?) - (assoc :multiaccounts/loading false))} - (initialize-views {:logout? logout?})))) + {:db (-> db + (assoc :multiaccounts/multiaccounts multiaccounts) + (assoc :multiaccounts/logout? logout?) + (assoc :multiaccounts/loading false)) + ;; NOTE: Try to dispatch later navigation because of that https://github.com/react-navigation/react-navigation/issues/6879 + :dispatch-later [{:dispatch [::initialize-view {:logout? logout?}] + :ms 100}]}))) (fx/defn start-app [cofx] (fx/merge cofx diff --git a/src/status_im/ui/screens/ens/views.cljs b/src/status_im/ui/screens/ens/views.cljs index e047dc7610..1d0c77e9bd 100644 --- a/src/status_im/ui/screens/ens/views.cljs +++ b/src/status_im/ui/screens/ens/views.cljs @@ -371,7 +371,8 @@ (i18n/label :t/ens-saved-title) ;;NOTE: this state can't be reached atm :registration-failed - (i18n/label :t/ens-registration-failed-title))) + (i18n/label :t/ens-registration-failed-title) + nil)) (defn- final-state-details [state username] @@ -391,7 +392,8 @@ ;;NOTE: this state can't be reached atm :registration-failed [react/text {:style {:color colors/gray :font-size 14}} - (i18n/label :t/ens-registration-failed)])) + (i18n/label :t/ens-registration-failed)] + nil)) (views/defview confirmation [] (views/letsubs [{:keys [state username]} [:ens/confirmation-screen]] diff --git a/src/status_im/ui/screens/home/styles.cljs b/src/status_im/ui/screens/home/styles.cljs index 157e92c693..0f83559270 100644 --- a/src/status_im/ui/screens/home/styles.cljs +++ b/src/status_im/ui/screens/home/styles.cljs @@ -120,7 +120,4 @@ (def home-container (merge - {:flex 1} - ;;TODO move this to navigation layer - (when platform/ios? - {:margin-bottom tabs.styles/tabs-diff}))) \ No newline at end of file + {:flex 1})) diff --git a/src/status_im/ui/screens/routing/core.cljs b/src/status_im/ui/screens/routing/core.cljs index 326450cc26..47e935d4ed 100644 --- a/src/status_im/ui/screens/routing/core.cljs +++ b/src/status_im/ui/screens/routing/core.cljs @@ -126,6 +126,4 @@ (defn navigate-replace [route params] (when (can-be-called?) (ocall @navigator-ref "dispatch" - (ocall stack-actions "replace" - #js {:name (name route) - :params (clj->js params)})))) + (ocall stack-actions "replace" (name route) (clj->js params))))) diff --git a/src/status_im/ui/screens/routing/intro_login_stack.cljs b/src/status_im/ui/screens/routing/intro_login_stack.cljs index 04631c0f3e..54ff404722 100644 --- a/src/status_im/ui/screens/routing/intro_login_stack.cljs +++ b/src/status_im/ui/screens/routing/intro_login_stack.cljs @@ -39,7 +39,6 @@ {:name :login :component login/login} {:name :create-multiaccount-generate-key - :options {:stackPresentation "modal"} :component intro/wizard-generate-key} {:name :create-multiaccount-choose-key :back-handler :noop diff --git a/test/appium/views/base_view.py b/test/appium/views/base_view.py index 7b0548b998..e97176642a 100644 --- a/test/appium/views/base_view.py +++ b/test/appium/views/base_view.py @@ -594,14 +594,14 @@ class BaseView(object): def get_back_to_home_view(self, times_to_click_on_back_btn=5): counter = 0 - from views.home_view import PlusButton - while not PlusButton(self.driver).is_element_displayed(2): + while BackButton(self.driver).is_element_displayed(2): try: if counter >= times_to_click_on_back_btn: break self.back_button.click() - except (NoSuchElementException, TimeoutException): counter += 1 + except (NoSuchElementException, TimeoutException): + continue return self.home_button.click() def relogin(self, password=common_password):