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

[#20479] - Skip "From" page on wallet home #20773

Merged
merged 1 commit into from
Jul 23, 2024

Conversation

ulisesmac
Copy link
Contributor

fixes #20479

Summary

This PR is not addressing

yet, but it'll be addressed in a follow-up.

The "From" page now it's not shown when we only own one account with the desired asset to send.

Demo 1 (ETH):

Screencast.from.2024-07-16.16-18-32.mp4

Demo 2 (USDC):

Screencast.from.2024-07-16.16-20-48.mp4

Demo 3 (Collectible):

Screencast.from.2024-07-16.16-24-36.mp4

Review notes

Right now, a lot of flows depend on the current state of the re-frame DB, so, in order to not break anything and keep things flexible, some changes have been made in the APIs. These changes are made in a flexible way (by extending the APIs instead of adding constraints to them).

Testing notes

Please test the existing send flows are still working, I've tested them but, since the mechanism is becoming more and more complex, there might be a forgotten edge case.

Steps to test

  • Open Status
  • Own two accounts having the some assets in common
  • On the wallet home page, long press on send over the token. The "From" page should be skipped if there's only one account owning the asset.
  • All the existing flows should work as expected

status: ready

@ulisesmac ulisesmac self-assigned this Jul 16, 2024
Comment on lines +19 to +26
[send-params entry-point]
{:icon :i/send
:accessibility-label :send
:label (i18n/label :t/send)
:on-press (fn []
(rf/dispatch [:hide-bottom-sheet])
(rf/dispatch [:wallet/clean-send-data])
(rf/dispatch [:wallet/set-token-to-send send-params]))})
(rf/dispatch [:wallet/set-token-to-send send-params entry-point]))})
Copy link
Contributor Author

Choose a reason for hiding this comment

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

An entry-point parameter has been added, this will define where we are pressing the token and what information we should add or remove while navigating forward and backward respectively.

Currently only exists :wallet-home (added when we send from the wallet home)

Copy link
Member

@briansztamfater briansztamfater Jul 18, 2024

Choose a reason for hiding this comment

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

Could we use the current screen name as the key instead of using arbitrary keys like :wallet-home? If not, can we create constants for these keys to make the code more maintainable? This way, we'll have a single source of truth for the possible values of the entry-point parameter.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@briansztamfater Sure!

It's a great suggestion, I'll apply it!

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@briansztamfater The wallet home component is not mounted on the screen navigation hierarchy, so that it doesn't have a screen name. Creating the keyword :screen/wallet-home for this purpose is misleading, so better to keep it as is, but for other valid entry-points I'll apply your suggestion.

Copy link
Member

Choose a reason for hiding this comment

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

AFAIK, you can get the screen name from :view-id key in app-db. From what I could find by debugging with re-frisk, "wallet home" screen name is :wallet-stack (as it is the root screen of wallet tab stack).

@status-im-auto
Copy link
Member

status-im-auto commented Jul 16, 2024

Jenkins Builds

Click to see older builds (15)
Commit #️⃣ Finished (UTC) Duration Platform Result
fa2fb04 #1 2024-07-16 23:15:12 ~3 min tests 📄log
✔️ fa2fb04 #1 2024-07-16 23:18:34 ~6 min android-e2e 🤖apk 📲
✔️ fa2fb04 #1 2024-07-16 23:19:38 ~7 min android 🤖apk 📲
✔️ fa2fb04 #1 2024-07-16 23:21:11 ~9 min ios 📱ipa 📲
5886952 #2 2024-07-16 23:27:31 ~2 min tests 📄log
3e31a30 #3 2024-07-16 23:32:13 ~2 min tests 📄log
✔️ 3e31a30 #3 2024-07-16 23:35:34 ~6 min android 🤖apk 📲
✔️ 3e31a30 #3 2024-07-16 23:36:29 ~7 min android-e2e 🤖apk 📲
✔️ 3e31a30 #3 2024-07-16 23:38:04 ~8 min ios 📱ipa 📲
3e31a30 #4 2024-07-18 22:03:39 ~2 min tests 📄log
5605c00 #5 2024-07-19 21:22:26 ~2 min tests 📄log
✔️ 5605c00 #4 2024-07-19 21:25:52 ~6 min android-e2e 🤖apk 📲
✔️ 5605c00 #4 2024-07-19 21:26:56 ~7 min android 🤖apk 📲
✔️ 5605c00 #4 2024-07-19 21:28:26 ~8 min ios 📱ipa 📲
769b4b7 #6 2024-07-19 21:53:00 ~2 min tests 📄log
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ f915385 #7 2024-07-19 22:00:28 ~4 min tests 📄log
✔️ f915385 #6 2024-07-19 22:02:27 ~6 min android-e2e 🤖apk 📲
✔️ f915385 #6 2024-07-19 22:03:43 ~7 min android 🤖apk 📲
✔️ f915385 #6 2024-07-19 22:04:46 ~8 min ios 📱ipa 📲
407b486 #8 2024-07-23 21:55:35 ~6 min tests 📄log
✔️ 407b486 #7 2024-07-23 21:58:04 ~8 min ios 📱ipa 📲
✔️ 407b486 #7 2024-07-23 22:00:11 ~10 min android-e2e 🤖apk 📲
✔️ 407b486 #7 2024-07-23 22:01:16 ~12 min android 🤖apk 📲
✔️ 407b486 #9 2024-07-23 22:07:06 ~4 min tests 📄log

@status-im-auto
Copy link
Member

43% of end-end tests have passed

Total executed tests: 7
Failed tests: 3
Expected to fail tests: 1
Passed tests: 3
IDs of failed tests: 727230,703133,727229 
IDs of expected to fail tests: 727232 

Failed tests (3)

Click to expand
  • Rerun failed tests

  • Class TestWalletMultipleDevice:

    1. test_wallet_send_asset_from_drawer, id: 727230
    Test setup failed: ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/urllib3/connectionpool.py:703: in urlopen
        httplib_response = self._make_request(
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/urllib3/connectionpool.py:449: in _make_request
        six.raise_from(e, None)
    <string>:3: in raise_from
        ???
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/urllib3/connectionpool.py:444: in _make_request
        httplib_response = conn.getresponse()
    /usr/lib/python3.10/http/client.py:1375: in getresponse
        response.begin()
    /usr/lib/python3.10/http/client.py:318: in begin
        version, status, reason = self._read_status()
    /usr/lib/python3.10/http/client.py:287: in _read_status
        raise RemoteDisconnected("Remote end closed connection without"
    E   http.client.RemoteDisconnected: Remote end closed connection without response
    
    During handling of the above exception, another exception occurred:
    critical/test_wallet.py:23: in prepare_devices
        self.drivers, self.loop = create_shared_drivers(2)
    base_test_case.py:309: in create_shared_drivers
        drivers = loop.run_until_complete(start_threads(test_suite_data.current_test.name,
    /usr/lib/python3.10/asyncio/base_events.py:649: in run_until_complete
        return future.result()
    __init__.py:26: in start_threads
        returns[k] = await returns[k]
    /usr/lib/python3.10/concurrent/futures/thread.py:58: in run
        result = self.fn(*self.args, **self.kwargs)
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/appium/webdriver/webdriver.py:257: in __init__
        super().__init__(
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/selenium/webdriver/remote/webdriver.py:206: in __init__
        self.start_session(capabilities)
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/appium/webdriver/webdriver.py:346: in start_session
        response = self.execute(RemoteCommand.NEW_SESSION, w3c_caps)
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/selenium/webdriver/remote/webdriver.py:343: in execute
        response = self.command_executor.execute(driver_command, params)
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/selenium/webdriver/remote/remote_connection.py:291: in execute
        return self._request(command_info[0], url, body=data)
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/selenium/webdriver/remote/remote_connection.py:312: in _request
        response = self._conn.request(method, url, body=body, headers=headers)
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/urllib3/request.py:78: in request
        return self.request_encode_body(
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/urllib3/request.py:170: in request_encode_body
        return self.urlopen(method, url, **extra_kw)
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/urllib3/poolmanager.py:376: in urlopen
        response = conn.urlopen(method, u.request_uri, **kw)
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/urllib3/connectionpool.py:787: in urlopen
        retries = retries.increment(
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/urllib3/util/retry.py:550: in increment
        raise six.reraise(type(error), error, _stacktrace)
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/urllib3/packages/six.py:769: in reraise
        raise value.with_traceback(tb)
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/urllib3/connectionpool.py:703: in urlopen
        httplib_response = self._make_request(
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/urllib3/connectionpool.py:449: in _make_request
        six.raise_from(e, None)
    <string>:3: in raise_from
        ???
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/urllib3/connectionpool.py:444: in _make_request
        httplib_response = conn.getresponse()
    /usr/lib/python3.10/http/client.py:1375: in getresponse
        response.begin()
    /usr/lib/python3.10/http/client.py:318: in begin
        version, status, reason = self._read_status()
    /usr/lib/python3.10/http/client.py:287: in _read_status
        raise RemoteDisconnected("Remote end closed connection without"
     ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))
    



    2. test_wallet_send_eth, id: 727229

    Test setup failed: ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/urllib3/connectionpool.py:703: in urlopen
        httplib_response = self._make_request(
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/urllib3/connectionpool.py:449: in _make_request
        six.raise_from(e, None)
    <string>:3: in raise_from
        ???
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/urllib3/connectionpool.py:444: in _make_request
        httplib_response = conn.getresponse()
    /usr/lib/python3.10/http/client.py:1375: in getresponse
        response.begin()
    /usr/lib/python3.10/http/client.py:318: in begin
        version, status, reason = self._read_status()
    /usr/lib/python3.10/http/client.py:287: in _read_status
        raise RemoteDisconnected("Remote end closed connection without"
    E   http.client.RemoteDisconnected: Remote end closed connection without response
    
    During handling of the above exception, another exception occurred:
    critical/test_wallet.py:23: in prepare_devices
        self.drivers, self.loop = create_shared_drivers(2)
    base_test_case.py:309: in create_shared_drivers
        drivers = loop.run_until_complete(start_threads(test_suite_data.current_test.name,
    /usr/lib/python3.10/asyncio/base_events.py:649: in run_until_complete
        return future.result()
    __init__.py:26: in start_threads
        returns[k] = await returns[k]
    /usr/lib/python3.10/concurrent/futures/thread.py:58: in run
        result = self.fn(*self.args, **self.kwargs)
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/appium/webdriver/webdriver.py:257: in __init__
        super().__init__(
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/selenium/webdriver/remote/webdriver.py:206: in __init__
        self.start_session(capabilities)
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/appium/webdriver/webdriver.py:346: in start_session
        response = self.execute(RemoteCommand.NEW_SESSION, w3c_caps)
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/selenium/webdriver/remote/webdriver.py:343: in execute
        response = self.command_executor.execute(driver_command, params)
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/selenium/webdriver/remote/remote_connection.py:291: in execute
        return self._request(command_info[0], url, body=data)
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/selenium/webdriver/remote/remote_connection.py:312: in _request
        response = self._conn.request(method, url, body=body, headers=headers)
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/urllib3/request.py:78: in request
        return self.request_encode_body(
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/urllib3/request.py:170: in request_encode_body
        return self.urlopen(method, url, **extra_kw)
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/urllib3/poolmanager.py:376: in urlopen
        response = conn.urlopen(method, u.request_uri, **kw)
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/urllib3/connectionpool.py:787: in urlopen
        retries = retries.increment(
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/urllib3/util/retry.py:550: in increment
        raise six.reraise(type(error), error, _stacktrace)
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/urllib3/packages/six.py:769: in reraise
        raise value.with_traceback(tb)
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/urllib3/connectionpool.py:703: in urlopen
        httplib_response = self._make_request(
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/urllib3/connectionpool.py:449: in _make_request
        six.raise_from(e, None)
    <string>:3: in raise_from
        ???
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/urllib3/connectionpool.py:444: in _make_request
        httplib_response = conn.getresponse()
    /usr/lib/python3.10/http/client.py:1375: in getresponse
        response.begin()
    /usr/lib/python3.10/http/client.py:318: in begin
        version, status, reason = self._read_status()
    /usr/lib/python3.10/http/client.py:287: in _read_status
        raise RemoteDisconnected("Remote end closed connection without"
     ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))
    



    Class TestCommunityOneDeviceMerged:

    1. test_restore_multiaccount_with_waku_backup_remove_switch, id: 703133

    ## Signed in successfully!
    Device 1: Find CommunitiesTab by accessibility id: communities-stack-tab

    critical/chats/test_public_chat_browsing.py:222: in test_restore_multiaccount_with_waku_backup_remove_switch
        self.home.communities_tab.click()
    ../views/base_element.py:90: in click
        element = self.find_element()
    ../views/base_element.py:79: in find_element
        raise NoSuchElementException(
     Device 1: CommunitiesTab by accessibility id: `communities-stack-tab` is not found on the screen; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#no-such-element-exception
    



    Device sessions

    Expected to fail tests (1)

    Click to expand

    Class TestWalletOneDevice:

    1. test_wallet_add_remove_watch_only_account, id: 727232

    Device 1: Find EditBox by accessibility id: add-address-to-watch
    Device 1: Type 0x8d2413447ff297d30bdc475f6d5cb00254685aae to EditBox

    critical/test_wallet.py:239: in test_wallet_add_remove_watch_only_account
        self.wallet_view.add_watch_only_account(address=address_to_watch, account_name=new_account_name)
    ../views/wallet_view.py:150: in add_watch_only_account
        self.account_has_activity_label.wait_for_visibility_of_element()
    ../views/base_element.py:147: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 1: Text by accessibility id:`account-has-activity` is not found on the screen after wait_for_visibility_of_element 
    

    [[Missing networks in account address, https://github.com//issues/20166]]

    Device sessions

    Passed tests (3)

    Click to expand

    Class TestWalletOneDevice:

    1. test_wallet_add_remove_regular_account, id: 727231
    Device sessions

    Class TestCommunityOneDeviceMerged:

    1. test_community_copy_and_paste_message_in_chat_input, id: 702742
    Device sessions

    Class TestOneToOneChatMultipleSharedDevicesNewUi:

    1. test_1_1_chat_non_latin_messages_stack_update_profile_photo, id: 702745
    Device sessions

    @VolodLytvynenko VolodLytvynenko self-assigned this Jul 19, 2024
    @VolodLytvynenko
    Copy link
    Contributor

    VolodLytvynenko commented Jul 19, 2024

    hi @ulisesmac Thank you for fixes. Apologies, I was not so familiar with the flow when I reported the original issue. We have some more places from which we can be navigated to the "FROM" page.

    Would it be better to fix this separately or in the current PR?

    ISSUE 1: The FROM page is shown when user goes to send flow using scanner

    Precondition:

    User has only one account

    Steps:

    1. Goes to scanner -> scan the wallet QR

    Actual result:

    User sees the 1 account in from page

    sendflow.mp4

    Expected result:

    User is navigated directly to the send flow page if user has only 1 account and use scanner during send flow

    @VolodLytvynenko
    Copy link
    Contributor

    ISSUE 2: From is shown when user goes to sending flow via bridge

    Preconditions:

    User has Account 1

    Steps:

    1. long tap the asset
    2. Tap "bridge"

    Actual result:

    User sees the FROM page

    bridge.mp4

    Expected result:

    when "bridge" button is long-tapped from Wallet Home page and the selected token to be sent is available on at least two accounts:

    • If the user has Account 1 (with 1 DAI), Account 2 (with 0 DAI), then the FROM page should be skipped.
    • If the user has Account 1 (with 1 DAI), Account 2 (with 1 DAI), and Account 3 (with 0 DAI), then on the FROM page, the user should see only Account 1 and Account 2. Account 3 should not be present or should be disabled.

    @ulisesmac
    Copy link
    Contributor Author

    ulisesmac commented Jul 19, 2024

    @VolodLytvynenko Thanks for reporting these entry points.

    I'll fix them in this PR.

    UPDATE:

    Issue 1

    I think this issue is completely different, it's not related to skip the "From" page when only one user owns an asset, it could be written as: "Skip From page when there's only one account in the device", so this should be addressed separately and the issue should already have the answers for the following quesitons:

    If there's no assets and there's only one account, should we completely remove the "send" flow from everywhere (not only the "From" page)? How would they look? what will we do instead? Do we need need new designs/states for these cases?

    Issue 2

    The bridge flow is a completely different flow compared to send, it requires a deeper understanding of the data it handles and its flows/entry-points, so it'd signifincantly require more time to get solved and this PR will grow a lot in terms of code. Better to solve it separately.

    What I did that works well is omiting the Bridge option when there is zero accounts owning an asset:

    Screencast.from.2024-07-19.15-44-41.mp4

    The problem is not just removing the From page, it's about making sure the other flows still show the option and nothing is broken, so, again, better to solve it separately.

    @ulisesmac ulisesmac force-pushed the 20479-skip-from-page-and-remove-account-switcher branch from 3e31a30 to 5605c00 Compare July 19, 2024 21:19
    @ulisesmac
    Copy link
    Contributor Author

    @J-Son89 @briansztamfater
    Could you please check the answers and approve the PR if possible?

    @ulisesmac ulisesmac force-pushed the 20479-skip-from-page-and-remove-account-switcher branch from 769b4b7 to f915385 Compare July 19, 2024 21:55
    @status-im-auto
    Copy link
    Member

    71% of end-end tests have passed

    Total executed tests: 7
    Failed tests: 1
    Expected to fail tests: 1
    Passed tests: 5
    
    IDs of failed tests: 727230 
    
    IDs of expected to fail tests: 727232 
    

    Failed tests (1)

    Click to expand
  • Rerun failed tests

  • Class TestWalletMultipleDevice:

    1. test_wallet_send_asset_from_drawer, id: 727230

    Device 2: Find `Text` by `xpath`: `//android.view.ViewGroup[@content-desc='container']/android.widget.TextView[@text='Ether']/../android.widget.TextView[3]`
    Device 2: `Text` is `0.00919 ETH`

    critical/test_wallet.py:184: in test_wallet_send_asset_from_drawer
        self.errors.verify_no_errors()
    base_test_case.py:191: in verify_no_errors
        pytest.fail('\n '.join([self.errors.pop(0) for _ in range(len(self.errors))]))
     Sender balance is not updated on Etherscan, it is 0.4902 but expected to be 0.4903
    



    Expected to fail tests (1)

    Click to expand

    Class TestWalletOneDevice:

    1. test_wallet_add_remove_watch_only_account, id: 727232

    Device 1: Find EditBox by accessibility id: add-address-to-watch
    Device 1: Type 0x8d2413447ff297d30bdc475f6d5cb00254685aae to EditBox

    critical/test_wallet.py:249: in test_wallet_add_remove_watch_only_account
        self.wallet_view.add_watch_only_account(address=address_to_watch, account_name=new_account_name)
    ../views/wallet_view.py:163: in add_watch_only_account
        self.account_has_activity_label.wait_for_visibility_of_element()
    ../views/base_element.py:147: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 1: Text by accessibility id:`account-has-activity` is not found on the screen after wait_for_visibility_of_element 
    

    [[Missing networks in account address, https://github.com//issues/20166]]

    Device sessions

    Passed tests (5)

    Click to expand

    Class TestCommunityOneDeviceMerged:

    1. test_restore_multiaccount_with_waku_backup_remove_switch, id: 703133
    Device sessions

    2. test_community_copy_and_paste_message_in_chat_input, id: 702742
    Device sessions

    Class TestWalletMultipleDevice:

    1. test_wallet_send_eth, id: 727229

    Class TestOneToOneChatMultipleSharedDevicesNewUi:

    1. test_1_1_chat_non_latin_messages_stack_update_profile_photo, id: 702745
    Device sessions

    Class TestWalletOneDevice:

    1. test_wallet_add_remove_regular_account, id: 727231
    Device sessions

    @VolodLytvynenko
    Copy link
    Contributor

    @VolodLytvynenko Thanks for reporting these entry points.

    I'll fix them in this PR.

    UPDATE:

    Issue 1

    I think this issue is completely different, it's not related to skip the "From" page when only one user owns an asset, it could be written as: "Skip From page when there's only one account in the device", so this should be addressed separately and the issue should already have the answers for the following quesitons:

    If there's no assets and there's only one account, should we completely remove the "send" flow from everywhere (not only the "From" page)? How would they look? what will we do instead? Do we need need new designs/states for these cases?

    hi @ulisesmac Yes, you are right. The expected result should be "Skip the From page when there's only one account on the device." I discussed this with @xAlisher and described it in the expected behavior of issue 1.

    Requirement 1:

    • Case 1 (original issue): When an asset is long-pressed and the "send" or "bridge" button is tapped, check if the same asset is present on other accounts. If yes, skip the FROM page.
    • Case 2: When sending begins via the scanner, if more than one account exists (excluding watch-only accounts), show the FROM page. Otherwise, skip it.

    Requirement 1 (alternative implementation):

    If Requirement 1 is too complicated to implement:

    For both sending via the scanner and when an asset is long-pressed and the "send" or "bridge" button is tapped, if more than one account exists (excluding watch-only accounts), show the FROM page. Otherwise, skip it.

    @status-im-auto
    Copy link
    Member

    71% of end-end tests have passed

    Total executed tests: 7
    Failed tests: 1
    Expected to fail tests: 1
    Passed tests: 5
    
    IDs of failed tests: 727229 
    
    IDs of expected to fail tests: 727232 
    

    Failed tests (1)

    Click to expand
  • Rerun failed tests

  • Class TestWalletMultipleDevice:

    1. test_wallet_send_eth, id: 727229

    Device 1: `Text` is `0.48815 ETH`
    Device 2: `Text` is `0.01089 ETH`

    critical/test_wallet.py:156: in test_wallet_send_eth
        self.errors.verify_no_errors()
    base_test_case.py:191: in verify_no_errors
        pytest.fail('\n '.join([self.errors.pop(0) for _ in range(len(self.errors))]))
     Sender balance is not updated on Etherscan, it is 0.4881 but expected to be 0.4882
    



    Expected to fail tests (1)

    Click to expand

    Class TestWalletOneDevice:

    1. test_wallet_add_remove_watch_only_account, id: 727232

    Device 1: Find EditBox by accessibility id: add-address-to-watch
    Device 1: Type 0x8d2413447ff297d30bdc475f6d5cb00254685aae to EditBox

    critical/test_wallet.py:249: in test_wallet_add_remove_watch_only_account
        self.wallet_view.add_watch_only_account(address=address_to_watch, account_name=new_account_name)
    ../views/wallet_view.py:163: in add_watch_only_account
        self.account_has_activity_label.wait_for_visibility_of_element()
    ../views/base_element.py:147: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 1: Text by accessibility id:`account-has-activity` is not found on the screen after wait_for_visibility_of_element 
    

    [[Missing networks in account address, https://github.com//issues/20166]]

    Device sessions

    Passed tests (5)

    Click to expand

    Class TestCommunityOneDeviceMerged:

    1. test_restore_multiaccount_with_waku_backup_remove_switch, id: 703133
    Device sessions

    2. test_community_copy_and_paste_message_in_chat_input, id: 702742
    Device sessions

    Class TestOneToOneChatMultipleSharedDevicesNewUi:

    1. test_1_1_chat_non_latin_messages_stack_update_profile_photo, id: 702745
    Device sessions

    Class TestWalletOneDevice:

    1. test_wallet_add_remove_regular_account, id: 727231
    Device sessions

    Class TestWalletMultipleDevice:

    1. test_wallet_send_asset_from_drawer, id: 727230

    @VolodLytvynenko
    Copy link
    Contributor

    hi @ulisesmac thank you for PR. no issues from my side. PR is ready to be merged

    …account
    
    - Update tests
    - Omit from page while sending a token in home page
    - Hide send and bridge option for not owned tokens
    - Fix subscription to return accounts owning an asset
    @ulisesmac ulisesmac force-pushed the 20479-skip-from-page-and-remove-account-switcher branch from f915385 to 407b486 Compare July 23, 2024 21:48
    @ulisesmac ulisesmac merged commit e4639c1 into develop Jul 23, 2024
    6 checks passed
    @ulisesmac ulisesmac deleted the 20479-skip-from-page-and-remove-account-switcher branch July 23, 2024 22:08
    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.

    "From" page is not skipped after long tapping "Send" on the wallet main page
    5 participants