Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix syncing flow navigation and designs #21884

Merged
merged 1 commit into from
Jan 8, 2025

Conversation

Parveshdhull
Copy link
Member

@Parveshdhull Parveshdhull commented Jan 3, 2025

fixes #21765

Video

signal-2025-01-03-143029.mp4

status: ready

@status-im-auto
Copy link
Member

status-im-auto commented Jan 3, 2025

Jenkins Builds

Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ c42c019 #1 2025-01-03 07:22:26 ~5 min tests 📄log
✔️ c42c019 #1 2025-01-03 07:24:22 ~7 min ios 📱ipa 📲
✔️ c42c019 #1 2025-01-03 07:27:01 ~9 min android-e2e 🤖apk 📲
✔️ c42c019 #1 2025-01-03 07:27:07 ~9 min android 🤖apk 📲
✔️ 9281eac #2 2025-01-08 05:42:25 ~4 min tests 📄log
✔️ 9281eac #2 2025-01-08 05:44:17 ~6 min android-e2e 🤖apk 📲
✔️ 9281eac #2 2025-01-08 05:45:16 ~7 min ios 📱ipa 📲
✔️ 9281eac #2 2025-01-08 05:46:02 ~8 min android 🤖apk 📲

Copy link
Contributor

@ilmotta ilmotta left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Based on your perceptions #21765 (comment), it would be good to take the opportunity from this PR and issue to see if the biometrics screen should be re-added or not to the onboarding after syncing is complete. Maybe it was a mistake in Figma. I think we should show the biometrics step in order to be more consistent with what other apps do after initial account set-up, but we better hear from designers as well. Not a blocker for this PR 👍🏼

Thank you @Parveshdhull

@status-im-auto
Copy link
Member

38% of end-end tests have passed

Total executed tests: 8
Failed tests: 3
Expected to fail tests: 2
Passed tests: 3
IDs of failed tests: 727231,703133,740490 
IDs of expected to fail tests: 727230,727229 

Failed tests (3)

Click to expand
  • Rerun failed tests

  • Class TestCommunityOneDeviceMerged:

    1. test_restore_multiaccount_with_waku_backup_remove_profile_switch, id: 703133

    Device 1: Tap on found: Button
    # STEP: Check that removed user is not shown in the list anymore

    critical/chats/test_public_chat_browsing.py:240: in test_restore_multiaccount_with_waku_backup_remove_profile_switch
        self.errors.verify_no_errors()
    base_test_case.py:209: in verify_no_errors
        pytest.fail('\n '.join([self.errors.pop(0) for _ in range(len(self.errors))]))
     zQ3...dWXh5 was not restored as a contact from waku backup!
    E    zQ3...Vacac was not restored as a contact from waku backup!
    E    admin_open was not restored from waku-backup!!
    E    member_open was not restored from waku-backup!!
    E    admin_closed was not restored from waku-backup!!
    E    member_closed was not restored from waku-backup!!
    



    Device sessions

    Class TestWalletOneDevice:

    1. test_wallet_add_remove_regular_account, id: 727231

    # STEP: Adding new regular account
    Device 1: Find Button by accessibility id: add-account

    critical/test_wallet.py:258: in test_wallet_add_remove_regular_account
        self.wallet_view.add_regular_account(account_name=new_account_name)
    ../views/wallet_view.py:175: in add_regular_account
        self.add_account_button.click()
    ../views/base_element.py:90: in click
        element = self.find_element()
    ../views/base_element.py:84: in find_element
        raise exception
    ../views/base_element.py:77: in find_element
        return self.driver.find_element(self.by, self.locator)
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/appium/webdriver/webdriver.py:409: in find_element
        return self.execute(RemoteCommand.FIND_ELEMENT, {'using': by, 'value': value})['value']
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/selenium/webdriver/remote/webdriver.py:345: in execute
        self.error_handler.check_response(response)
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/appium/webdriver/errorhandler.py:122: in check_response
        raise exception_class(msg=message, stacktrace=format_stacktrace(stacktrace))
     An unknown server-side error occurred while processing the command. Original error: 'POST /element' cannot be proxied to UiAutomator2 server because the instrumentation process is not running (probably crashed). Check the server log and/or the logcat output for more details
    E   Stacktrace:
    E   UnknownError: An unknown server-side error occurred while processing the command. Original error: 'POST /element' cannot be proxied to UiAutomator2 server because the instrumentation process is not running (probably crashed). Check the server log and/or the logcat output for more details
    E       at UIA2Proxy.command (/home/ltuser/.appium/node_modules/appium-uiautomator2-driver/node_modules/@appium/base-driver/lib/jsonwp-proxy/proxy.js:355:13)
    E       at runMicrotasks (<anonymous>)
    E       at processTicksAndRejections (node:internal/process/task_queues:96:5)
    E       at AndroidUiautomator2Driver.doFindElementOrEls (/home/ltuser/.appium/node_modules/appium-uiautomator2-driver/lib/commands/find.js:40:5)
    E       at doFind (/home/ltuser/.appium/node_modules/appium-uiautomator2-driver/node_modules/appium-android-driver/lib/commands/find.ts:47:17)
    E       at wrappedCondFn (/home/ltuser/.appium/node_modules/appium-uiautomator2-driver/node_modules/@appium/base-driver/lib/basedriver/commands/timeout.ts:137:14)
    E       at spin (/home/ltuser/.appium/node_modules/appium-uiautomator2-driver/node_modules/asyncbox/lib/asyncbox.js:219:20)
    E       at waitForCondition (/home/ltuser/.appium/node_modules/appium-uiautomator2-driver/node_modules/asyncbox/lib/asyncbox.js:236:10)
    E       at AndroidUiautomator2Driver.implicitWaitForCondition (/home/ltuser/.appium/node_modules/appium-uiautomator2-driver/node_modules/@appium/base-driver/lib/basedriver/commands/timeout.ts:139:12)
    E       at AndroidUiautomator2Driver.findElOrEls (/home/ltuser/.appium/node_modules/appium-uiautomator2-driver/node_modules/appium-android-driver/lib/commands/find.ts:70:5)
    E       at AndroidUiautomator2Driver.findElOrElsWithProcessing (/home/ltuser/.appium/node_modules/appium-uiautomator2-driver/node_modules/@appium/base-driver/lib/basedriver/commands/find.ts:60:12)
    E       at AndroidUiautomator2Driver.findElement (/home/ltuser/.appium/node_modules/appium-uiautomator2-driver/node_modules/@appium/base-driver/lib/basedriver/commands/find.ts:75:12)
    



    2. test_wallet_balance_mainnet, id: 740490

    Device 1: Tap on found: UserProfileElement
    Device 1: Find EditBox by accessibility id: password-input

    critical/test_wallet.py:222: in test_wallet_balance_mainnet
        self.sign_in_view.sign_in(user_name=self.sender_username)
    ../views/sign_in_view.py:166: in sign_in
        self.password_input.send_keys(password)
    ../views/base_element.py:388: in send_keys
        self.find_element().send_keys(value)
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/appium/webdriver/webelement.py:235: in send_keys
        self._execute(RemoteCommand.SEND_KEYS_TO_ELEMENT, {'text': ''.join(keys), 'value': keys})
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/selenium/webdriver/remote/webelement.py:395: in _execute
        return self._parent.execute(command, params)
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/selenium/webdriver/remote/webdriver.py:345: in execute
        self.error_handler.check_response(response)
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/appium/webdriver/errorhandler.py:122: in check_response
        raise exception_class(msg=message, stacktrace=format_stacktrace(stacktrace))
     An unknown server-side error occurred while processing the command. Original error: 'POST /element/00000000-0000-000c-ffff-ffff000003cc/value' cannot be proxied to UiAutomator2 server because the instrumentation process is not running (probably crashed). Check the server log and/or the logcat output for more details
    E   Stacktrace:
    E   UnknownError: An unknown server-side error occurred while processing the command. Original error: 'POST /element/00000000-0000-000c-ffff-ffff000003cc/value' cannot be proxied to UiAutomator2 server because the instrumentation process is not running (probably crashed). Check the server log and/or the logcat output for more details
    E       at UIA2Proxy.command (/home/ltuser/.appium/node_modules/appium-uiautomator2-driver/node_modules/@appium/base-driver/lib/jsonwp-proxy/proxy.js:355:13)
    E       at runMicrotasks (<anonymous>)
    E       at processTicksAndRejections (node:internal/process/task_queues:96:5)
    E       at AndroidUiautomator2Driver.doSetElementValue (/home/ltuser/.appium/node_modules/appium-uiautomator2-driver/lib/commands/element.js:113:3)
    E       at AndroidUiautomator2Driver.setElementValue (/home/ltuser/.appium/node_modules/appium-uiautomator2-driver/node_modules/appium-android-driver/lib/commands/element.js:96:10)
    E       at AndroidUiautomator2Driver.setValue (/home/ltuser/.appium/node_modules/appium-uiautomator2-driver/node_modules/appium-android-driver/lib/commands/element.js:124:10)
    



    Expected to fail tests (2)

    Click to expand

    Class TestWalletMultipleDevice:

    1. test_wallet_send_asset_from_drawer, id: 727230

    Device 1: Could not reach Button by pressing system back button
    Balance is Invalid API Key (#err2)|ARBTESTNET Gwei

    critical/test_wallet.py:165: in test_wallet_send_asset_from_drawer
        sender_balance, receiver_balance, eth_amount_sender, eth_amount_receiver = self._get_balances_before_tx()
    critical/test_wallet.py:38: in _get_balances_before_tx
        sender_balance = self.network_api.get_balance(self.sender['wallet_address'])
    ../support/api/network_api.py:55: in get_balance
        return int(balance) / 1000000000000000000
     invalid literal for int() with base 10: 'Invalid API Key (#err2)|ARBTESTNET' 
    

    [[Arbiscan API is down, looking for analogue]]

    2. test_wallet_send_eth, id: 727229

    Device 2: Tap on found: Button
    Balance is Invalid API Key (#err2)|ARBTESTNET Gwei

    critical/test_wallet.py:130: in test_wallet_send_eth
        sender_balance, receiver_balance, eth_amount_sender, eth_amount_receiver = self._get_balances_before_tx()
    critical/test_wallet.py:38: in _get_balances_before_tx
        sender_balance = self.network_api.get_balance(self.sender['wallet_address'])
    ../support/api/network_api.py:55: in get_balance
        return int(balance) / 1000000000000000000
     invalid literal for int() with base 10: 'Invalid API Key (#err2)|ARBTESTNET' 
    

    [[Arbiscan API is down, looking for analogue]]

    Passed tests (3)

    Click to expand

    Class TestOneToOneChatMultipleSharedDevicesNewUi:

    1. test_1_1_chat_non_latin_messages_stack_update_profile_photo, id: 702745
    Device sessions

    Class TestCommunityOneDeviceMerged:

    1. test_community_copy_and_paste_message_in_chat_input, id: 702742
    Device sessions

    Class TestCommunityMultipleDeviceMerged:

    1. test_community_message_edit, id: 702843
    Device sessions

    @Parveshdhull
    Copy link
    Member Author

    Parveshdhull commented Jan 6, 2025

    Thank you @ilmotta

    but we better hear from designers as well

    Added a comment/question in figma - https://www.figma.com/design/o4qG1bnFyuyFOvHQVGgeFY?node-id=15071-95173&m=dev#1081016843

    @pavloburykh pavloburykh self-assigned this Jan 6, 2025
    @pavloburykh
    Copy link
    Contributor

    pavloburykh commented Jan 6, 2025

    Thank you @ilmotta

    but we better hear from designers as well

    Added a comment/question in figma - https://www.figma.com/design/o4qG1bnFyuyFOvHQVGgeFY?node-id=15071-95173&m=dev#1081016843

    Thank you @Parveshdhull! Alisher has replied in Figma:
    Thank you for noticing. I’ve restored the biometric flow.

    @Parveshdhull based on that, would you mind re-add biometric screen in this PR or you prefer to do it separately?

    @Parveshdhull
    Copy link
    Member Author

    @Parveshdhull based on that, would you mind re-add biometric screen in this PR or you prefer to do it separately?

    Thank you very much @pavloburykh for taking the PR for testing. I will re-add the bio-metric screen in the same PR.

    Copy link
    Contributor

    @ulisesmac ulisesmac left a comment

    Choose a reason for hiding this comment

    The reason will be displayed to describe this comment to others. Learn more.

    Thank you for this PR @Parveshdhull !

    :blur? true
    :button-one-label (i18n/label :t/recovery-phrase)
    :button-one-props {:type :primary
    :container-style {:height (when-not logged-in? 116)}
    Copy link
    Contributor

    Choose a reason for hiding this comment

    The reason will be displayed to describe this comment to others. Learn more.

    Can we give a name to this 116?
    I'm wondering what does it mean, I guess it's a sum of different UI elements because it's a big number. I also wonder if it's considering how it looks on different platforms.

    Copy link
    Member Author

    Choose a reason for hiding this comment

    The reason will be displayed to describe this comment to others. Learn more.

    @Parveshdhull
    Copy link
    Member Author

    Hi @pavloburykh, @ilmotta

    I was hoping that re-adding the biometric screen would only require a small change, but it seems that’s not the case.

    • The Syncing Complete screen had a different navigation root, but since we removed it, the "Enable Biometric" screen now allows the user to navigate back to the syncing progress screen, which we don’t want. One possible solution is to use the Enable Biometric screen as a navigation root as well.

    • However, according to Figma, we need to display the biometric screen before syncing is complete (which wasn’t the case prior to this PR).

    To achieve this, I had to make several changes, which will require another review. I’ve created a separate PR for this
    (PR is almost complete, I just need to polish the "try again" flow for syncing).

    I will finish that PR once this one is merged. Pavlo, please go ahead with testing. Thank you!

    @pavloburykh
    Copy link
    Contributor

    @Parveshdhull thanks you!

    However, according to Figma, we need to display the biometric screen before syncing is complete (which wasn’t the case prior to this PR).

    I think we should better confirm with @xAlisher if this has been made intentionally. I have some doubts based on the fact, that in case of Sync fallback https://www.figma.com/design/o4qG1bnFyuyFOvHQVGgeFY/Onboarding-for-Mobile?node-id=15644-50720&m=dev we still have another Enable biometric step. And this step does not make sense since we have already enable/disabled biometrics right after scanning QR code. So, we either need to remove Biometric step from Sync fallback flow or move Enable biometric step (in standard Sync flow) after syncing is complete screen like it was before.

    @ilmotta
    Copy link
    Contributor

    ilmotta commented Jan 7, 2025

    @Parveshdhull I was also expecting the biometrics step to be the final step as we discussed in this PR, i.e. only after syncing is complete. Worth re-checking as @pavloburykh suggested.

    @pavloburykh
    Copy link
    Contributor

    @Parveshdhull based on discussion with @xAlisher biometric step has been moved after syncing is complete (as it was before) https://www.figma.com/design/o4qG1bnFyuyFOvHQVGgeFY/Onboarding-for-Mobile?node-id=16409-27876&m=dev

    Please tell, if you still prefer to make those changes in separate PR or now it is okay to implement here. Sorry for initial confusion.

    @Parveshdhull
    Copy link
    Member Author

    Thank you very much @pavloburykh for getting this resolved.

    Let's handle this leftover in a separate PR. That PR introduces a few other changes and refactors that I want to keep.

    @pavloburykh
    Copy link
    Contributor

    Thank you very much @pavloburykh for getting this resolved.

    Let's handle this leftover in a separate PR. That PR introduces a few other changes and refactors that I want to keep.

    Thanks @Parveshdhull This PR is ready for merge.

    @Parveshdhull Parveshdhull force-pushed the fix/syncing-flow-navigation branch from c42c019 to 9281eac Compare January 8, 2025 05:37
    @Parveshdhull Parveshdhull merged commit 3697f63 into develop Jan 8, 2025
    5 checks passed
    @Parveshdhull Parveshdhull deleted the fix/syncing-flow-navigation branch January 8, 2025 05:52
    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
    Projects
    Status: DONE
    Development

    Successfully merging this pull request may close these issues.

    Sync flow does not reflect simplified onboarding changes
    5 participants