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

wallet - reset input on send flow when swapping accounts #20099

Merged
merged 6 commits into from
May 24, 2024
Merged

Conversation

J-Son89
Copy link
Contributor

@J-Son89 J-Son89 commented May 19, 2024

fixes: #20100

In the sending flows, This pr updates the input amount page after switching account with the account switcher so that the input and related values will be flushed.

Screen.Recording.2024-05-20.at.11.17.15.mov

This pr also Hides the "Import Private Key" Flow from the user as the button was previously viewable and pressable but feature flagged.

Testing notes: this should also work on the bridging flows as well.

@@ -40,7 +40,6 @@
[:catn
[:props
[:map {:closed true}
[:theme :schema.common/theme]
Copy link
Contributor Author

Choose a reason for hiding this comment

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

there was a schema issue as this now uses the context api internally

:label (i18n/label :t/import-private-key)
:on-press (when (ff/enabled? ::wallet.import-private-key)
#(rf/dispatch [:navigate-to :screen/wallet.import-private-key]))}]]])
(when (ff/enabled? ::wallet.import-private-key)
Copy link
Contributor Author

Choose a reason for hiding this comment

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

hide this button until it's a complete flow

@@ -91,15 +90,15 @@
[rn/view
[quo/icon :i/alert
{:size 16
:color colors/danger-50}]]
:color (colors/resolve-color :danger theme)}]]
Copy link
Contributor Author

Choose a reason for hiding this comment

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

color system 👍

loading-routes? (rf/sub
[:wallet/wallet-send-loading-suggested-routes?])
bottom (safe-area/get-bottom)
[crypto-currency? set-crypto-currency] (rn/use-state initial-crypto-currency?)
Copy link
Contributor Author

Choose a reason for hiding this comment

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

before this page was mixing reagent and react - no bueno :)

(rn/use-effect
(fn []
(set-input-state controlled-input/init-state))
[current-address])
Copy link
Contributor Author

Choose a reason for hiding this comment

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

This hook flushes the input to it's default state once the current address changes

Copy link
Contributor Author

Choose a reason for hiding this comment

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

checks it is not the default value as otherwise it causes a bug on the initial render. Only want this to fire if the account has changed and the input is not the initial state.

Copy link
Member

Choose a reason for hiding this comment

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

Hey @J-Son89, what happens if we have routes shown on the screen, and we change the account, are routes cleaned too?
If not, probably we should call (rf/dispatch [:wallet/clean-suggested-routes]) here too.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Thanks @briansztamfater gonna check this!

Copy link
Member

@briansztamfater briansztamfater May 24, 2024

Choose a reason for hiding this comment

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

Just noticed this while testing in one of my rebased branches:
If user disables a network and then the account changes, the disabled networks are not reset. I think we should reset disabled networks as well because the switched account might have balance only on the previously disabled networks, leading the user to a dead-end.
For that, we should call (rf/dispatch [:wallet/clean-disabled-from-networks]) here too. We can raise a new PR for this, let me know how would you like to handle it @J-Son89!

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Nice one @briansztamfater ! I can add the pr for this next week 👍

receiver-preferred-networks-set
receiver-selected-network))
receiver-networks))
current-address (rf/sub [:wallet/current-viewing-account-address])
Copy link
Contributor Author

Choose a reason for hiding this comment

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

current address sub added 👍

@status-im-auto
Copy link
Member

status-im-auto commented May 19, 2024

Jenkins Builds

Click to see older builds (36)
Commit #️⃣ Finished (UTC) Duration Platform Result
7d1dcdf #2 2024-05-19 22:52:25 ~2 min tests 📄log
✔️ 7d1dcdf #2 2024-05-19 22:55:27 ~5 min android-e2e 🤖apk 📲
✔️ 7d1dcdf #2 2024-05-19 22:56:41 ~7 min android 🤖apk 📲
✔️ 7d1dcdf #2 2024-05-19 22:58:30 ~8 min ios 📱ipa 📲
6bf0cb3 #3 2024-05-19 23:36:50 ~2 min tests 📄log
✔️ 6bf0cb3 #3 2024-05-19 23:39:47 ~5 min android-e2e 🤖apk 📲
✔️ 6bf0cb3 #3 2024-05-19 23:41:05 ~6 min android 🤖apk 📲
✔️ 6bf0cb3 #3 2024-05-19 23:42:37 ~8 min ios 📱ipa 📲
b102183 #4 2024-05-20 10:28:26 ~2 min tests 📄log
✔️ b102183 #4 2024-05-20 10:33:41 ~7 min android-e2e 🤖apk 📲
✔️ b102183 #4 2024-05-20 10:33:46 ~8 min android 🤖apk 📲
✔️ b102183 #4 2024-05-20 10:34:35 ~8 min ios 📱ipa 📲
d971faf #5 2024-05-20 11:07:34 ~2 min tests 📄log
✔️ d971faf #5 2024-05-20 11:11:59 ~6 min android-e2e 🤖apk 📲
✔️ d971faf #5 2024-05-20 11:12:33 ~7 min android 🤖apk 📲
✔️ d971faf #5 2024-05-20 11:13:40 ~8 min ios 📱ipa 📲
e7d62f6 #6 2024-05-20 16:08:00 ~2 min tests 📄log
✔️ e7d62f6 #6 2024-05-20 16:11:29 ~6 min android 🤖apk 📲
✔️ e7d62f6 #6 2024-05-20 16:12:20 ~6 min android-e2e 🤖apk 📲
✔️ e7d62f6 #6 2024-05-20 16:14:00 ~8 min ios 📱ipa 📲
✔️ 8466b0f #7 2024-05-20 21:28:29 ~3 min tests 📄log
✔️ 8466b0f #7 2024-05-20 21:31:53 ~7 min android-e2e 🤖apk 📲
✔️ 8466b0f #7 2024-05-20 21:32:00 ~7 min android 🤖apk 📲
✔️ 8466b0f #7 2024-05-20 21:33:22 ~8 min ios 📱ipa 📲
✔️ 74196c1 #8 2024-05-21 13:01:13 ~4 min tests 📄log
✔️ 74196c1 #8 2024-05-21 13:03:36 ~7 min android-e2e 🤖apk 📲
✔️ 74196c1 #8 2024-05-21 13:03:42 ~7 min android 🤖apk 📲
✔️ 74196c1 #8 2024-05-21 13:06:33 ~10 min ios 📱ipa 📲
d7f3e46 #9 2024-05-21 18:12:49 ~2 min tests 📄log
✔️ d7f3e46 #9 2024-05-21 18:16:20 ~6 min android-e2e 🤖apk 📲
✔️ d7f3e46 #9 2024-05-21 18:17:10 ~7 min android 🤖apk 📲
✔️ d7f3e46 #9 2024-05-21 18:18:40 ~8 min ios 📱ipa 📲
✔️ 01a8258 #10 2024-05-21 18:26:01 ~4 min tests 📄log
✔️ 01a8258 #10 2024-05-21 18:27:58 ~5 min android-e2e 🤖apk 📲
✔️ 01a8258 #10 2024-05-21 18:29:12 ~7 min android 🤖apk 📲
✔️ 01a8258 #10 2024-05-21 18:30:30 ~8 min ios 📱ipa 📲
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ 2cb3af9 #11 2024-05-21 19:05:36 ~3 min tests 📄log
✔️ 2cb3af9 #11 2024-05-21 19:08:43 ~7 min android-e2e 🤖apk 📲
✔️ 2cb3af9 #11 2024-05-21 19:08:49 ~7 min android 🤖apk 📲
✔️ 2cb3af9 #11 2024-05-21 19:10:26 ~8 min ios 📱ipa 📲
✔️ 77a0ffb #12 2024-05-23 19:03:00 ~4 min tests 📄log
✔️ 77a0ffb #12 2024-05-23 19:04:42 ~6 min android 🤖apk 📲
✔️ 77a0ffb #12 2024-05-23 19:05:45 ~7 min android-e2e 🤖apk 📲
✔️ 77a0ffb #12 2024-05-23 19:07:26 ~8 min ios 📱ipa 📲

@J-Son89 J-Son89 changed the title Jc/fix bugs wallet - reset input on send flow when swapping accounts May 19, 2024
@J-Son89 J-Son89 self-assigned this May 20, 2024
@J-Son89 J-Son89 marked this pull request as ready for review May 20, 2024 10:25
@@ -8,8 +8,7 @@
(h/render-with-theme-provider component :light))

(def props
{:theme :light
Copy link
Contributor Author

Choose a reason for hiding this comment

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

schema error

Copy link
Contributor

@OmarBasem OmarBasem left a comment

Choose a reason for hiding this comment

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

lgtm!

(when (not= input-state controlled-input/init-state)
(set-input-state controlled-input/init-state)))
[current-address])

Copy link
Contributor

Choose a reason for hiding this comment

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

Empty line

Copy link
Contributor Author

Choose a reason for hiding this comment

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

will clean 👍

Comment on lines 261 to 298
(rn/use-effect
(fn []
(when (not= input-state controlled-input/init-state)
(set-input-state controlled-input/init-state)))
[current-address])
Copy link
Contributor

Choose a reason for hiding this comment

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

I know when current-address changes, the input-state value in the callback would also be updated. But I think for correctness, we can use the value for input-state from the callback for setState in set-input-state.

That would be something like this:

(rn/use-effect
         (fn []
           (set-input-state #(if (= % controlled-input/init-state)
                               %
                               controlled-input/init-state)))
         [current-address])

What do you think?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

yeah makes sense, (just as a nit I'll use a fn so that I name the value prev-state so it's very clear. but overall sounds good to me! :)

thanks!

Copy link
Contributor Author

Choose a reason for hiding this comment

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

actually looking at this, I'm not sure it really makes sense.
Both will set the state to init/state. I don't want to trigger any state change if the initial value is already set that way. What you are suggesting here is a bit different, no?

Copy link
Contributor

Choose a reason for hiding this comment

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

When you return the same value that was in the prev state, it doesn't trigger an update, because the reference stays the same. So the only time a state update is triggered is in the second case where the previous value is not equal to init-state.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

true, I forgot about that. Anyway, I updated the function to take a different approach and it clears it safely now 👍

@J-Son89 J-Son89 force-pushed the jc/fix-bugs branch 2 times, most recently from d7f3e46 to 01a8258 Compare May 21, 2024 18:21
@status-im-auto
Copy link
Member

85% of end-end tests have passed

Total executed tests: 52
Failed tests: 6
Expected to fail tests: 2
Passed tests: 44
IDs of failed tests: 727230,702777,702851,727229,702807,727232 
IDs of expected to fail tests: 703495,703503 

Failed tests (6)

Click to expand
  • Rerun failed tests

  • Class TestActivityCenterContactRequestMultipleDevicePR:

    1. test_add_contact_field_validation, id: 702777

    Device 2: Tap on found: LogInButton
    ## Signed in successfully!

    activity_center/test_activity_center.py:176: in test_add_contact_field_validation
        self.loop.run_until_complete(run_in_parallel(((_device_1_creates_user, {}),
    /usr/lib/python3.10/asyncio/base_events.py:649: in run_until_complete
        return future.result()
    __init__.py:52: in run_in_parallel
        returns.append(await k)
    /usr/lib/python3.10/concurrent/futures/thread.py:58: in run
        result = self.fn(*self.args, **self.kwargs)
    activity_center/test_activity_center.py:166: in _device_1_creates_user
        self.profile_1.driver.reset()
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/appium/webdriver/extensions/applications.py:299: in reset
        self.execute(Command.RESET)
    ../../../../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))
     A session is either terminated or not started
    E   Stacktrace:
    E   NoSuchDriverError: A session is either terminated or not started
    E       at asyncHandler (/mnt/sauce/appium/appium-v2.0.0/packages/base-driver/lib/protocol/protocol.js:315:15)
    E       at /mnt/sauce/appium/appium-v2.0.0/packages/base-driver/lib/protocol/protocol.js:518:15
    E       at Layer.handle [as handle_request] (/mnt/sauce/appium/appium-v2.0.0/node_modules/express/lib/router/layer.js:95:5)
    E       at next (/mnt/sauce/appium/appium-v2.0.0/node_modules/express/lib/router/route.js:144:13)
    E       at Route.dispatch (/mnt/sauce/appium/appium-v2.0.0/node_modules/express/lib/router/route.js:114:3)
    E       at Layer.handle [as handle_request] (/mnt/sauce/appium/appium-v2.0.0/node_modules/express/lib/router/layer.js:95:5)
    E       at /mnt/sauce/appium/appium-v2.0.0/node_modules/express/lib/router/index.js:284:15
    E       at param (/mnt/sauce/appium/appium-v2.0.0/node_modules/express/lib/router/index.js:365:14)
    E       at param (/mnt/sauce/appium/appium-v2.0.0/node_modules/express/lib/router/index.js:376:14)
    E       at Function.process_params (/mnt/sauce/appium/appium-v2.0.0/node_modules/express/lib/router/index.js:421:3)
    E       at next (/mnt/sauce/appium/appium-v2.0.0/node_modules/express/lib/router/index.js:280:10)
    E       at logger (/mnt/sauce/appium/appium-v2.0.0/node_modules/morgan/index.js:144:5)
    E       at Layer.handle [as handle_request] (/mnt/sauce/appium/appium-v2.0.0/node_modules/express/lib/router/layer.js:95:5)
    E       at trim_prefix (/mnt/sauce/appium/appium-v2.0.0/node_modules/express/lib/router/index.js:328:13)
    E       at /mnt/sauce/appium/appium-v2.0.0/node_modules/express/lib/router/index.js:286:9
    E       at Function.process_params (/mnt/sauce/appium/appium-v2.0.0/node_modules/express/lib/router/index.js:346:12)
    E       at next (/mnt/sauce/appium/appium-v2.0.0/node_modules/express/lib/router/index.js:280:10)
    E       at /mnt/sauce/appium/appium-v2.0.0/node_modules/body-parser/lib/read.js:137:5
    E       at AsyncResource.runInAsyncScope (node:async_hooks:204:9)
    E       at invokeCallback (/mnt/sauce/appium/appium-v2.0.0/node_modules/raw-body/index.js:238:16)
    E       at done (/mnt/sauce/appium/appium-v2.0.0/node_modules/raw-body/index.js:227:7)
    E       at IncomingMessage.onEnd (/mnt/sauce/appium/appium-v2.0.0/node_modules/raw-body/index.js:287:7)
    E       at IncomingMessage.emit (node:events:513:28)
    E       at endReadableNT (node:internal/streams/readable:1359:12)
    E       at processTicksAndRejections (node:internal/process/task_queues:82:21)
    



    Device sessions

    2. test_activity_center_contact_request_accept_swipe_mark_all_as_read, id: 702851

    Device 1: Tap on found: Button
    # STEP: Device1 check that contact appeared in contact list mutually

    ../../../../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:
    activity_center/test_activity_center.py:142: in test_activity_center_contact_request_accept_swipe_mark_all_as_read
        self.home_2.navigate_back_to_home_view()
    ../views/base_view.py:423: in navigate_back_to_home_view
        while not self.chat_floating_screen.is_element_disappeared(1) \
    ../views/base_element.py:231: in is_element_disappeared
        return self.wait_for_invisibility_of_element(sec)
    ../views/base_element.py:154: in wait_for_invisibility_of_element
        .until(expected_conditions.invisibility_of_element_located((self.by, self.locator)))
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/selenium/webdriver/support/wait.py:86: in until
        value = method(self._driver)
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/selenium/webdriver/support/expected_conditions.py:319: in _predicate
        target = driver.find_element(*target)
    ../../../../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: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'))
    



    Device sessions

    Class TestWalletOneDevice:

    1. test_wallet_add_remove_watch_only_account, id: 727232

    Device 1: Text is eth:oeth:arb1:0x8d2413447ff297d30bdc475f6d5cb00254685aae
    Device 1: Click system back button

    critical/test_wallet.py:212: in test_wallet_add_remove_watch_only_account
        self.home_view.driver.fail(
    base_test_case.py:178: in fail
        pytest.fail('Device %s: %s' % (self.number, text))
     Device 1: Incorrect address 'eth:oeth:arb1:0x8d2413447ff297d30bdc475f6d5cb00254685aae' is shown when swiping between accounts, expected one is '0:x:8:d:2:4:1:3:4:4:7:f:f:2:9:7:d:3:0:b:d:c:4:7:5:f:6:d:5:c:b:0:0:2:5:4:6:8:5:a:a:e'
    



    Device sessions

    Class TestWalletMultipleDevice:

    1. test_wallet_send_asset_from_drawer, id: 727230

    # STEP: Getting ETH amount in the wallet of the sender before transaction
    Device 1: Find WalletTab by accessibility id: wallet-stack-tab

    critical/test_wallet.py:119: 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:41: in _get_balances_before_tx
        self.wallet_1.wallet_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: WalletTab by accessibility id: `wallet-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
    



    2. test_wallet_send_eth, id: 727229

    Device 1: Swiping right on element SlideButton
    Device 1: Find SlideButton by xpath: //*[@resource-id='slide-button-track']

    critical/test_wallet.py:111: in test_wallet_send_eth
        self.wallet_1.send_asset(address=self.receiver['address'], asset_name='Ether', amount=amount_to_send)
    ../views/wallet_view.py:100: in send_asset
        self.confirm_transaction()
    ../views/wallet_view.py:87: in confirm_transaction
        self.slide_and_confirm_with_password()
    ../views/wallet_view.py:81: in slide_and_confirm_with_password
        self.slide_button_track.slide()
    ../views/base_view.py:257: in slide
        self.swipe_right_on_element(width_percentage=1.3, start_x=100)
    ../views/base_element.py:308: in swipe_right_on_element
        location, size = self.get_element_coordinates()
    ../views/base_element.py:294: in get_element_coordinates
        element = self.find_element()
    ../views/base_element.py:79: in find_element
        raise NoSuchElementException(
     Device 1: SlideButton by xpath: `//*[@resource-id='slide-button-track']` 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
    



    Class TestGroupChatMultipleDeviceMergedNewUI:

    1. test_group_chat_join_send_text_messages_push, id: 702807

    Device 2: Find Text by xpath: //*[starts-with(@text,'Hey, admin!')]/ancestor::android.view.ViewGroup[@content-desc='chat-item']//*[@content-desc='message-status']/android.widget.TextView
    Device 2: Text is Sent

    critical/chats/test_group_chat.py:95: in test_group_chat_join_send_text_messages_push
        self.chats[1].chat_element_by_text(message_to_admin).wait_for_status_to_be('Delivered', timeout=120)
    ../views/chat_view.py:225: in wait_for_status_to_be
        raise TimeoutException("Message status was not changed to %s, it's %s" % (expected_status, current_status))
     Message status was not changed to Delivered, it's Sent
    



    Device sessions

    Expected to fail tests (2)

    Click to expand

    Class TestCommunityOneDeviceMerged:

    1. test_community_discovery, id: 703503

    Test is not run, e2e blocker  
    

    [[reason: [NOTRUN] Curated communities not loading, https://github.com//issues/17852]]

    Class TestGroupChatMultipleDeviceMergedNewUI:

    1. test_group_chat_mute_chat, id: 703495

    # STEP: Change device time so chat will be unmuted by timer
    Device 2: Long press on ChatElement

    critical/chats/test_group_chat.py:464: in test_group_chat_mute_chat
        self.errors.verify_no_errors()
    base_test_case.py:190: in verify_no_errors
        pytest.fail('\n '.join([self.errors.pop(0) for _ in range(len(self.errors))]))
     Chat is still muted after timeout 
    

    [[Chat is not unmuted after expected time: https://github.com//issues/19627]]

    Device sessions

    Passed tests (44)

    Click to expand

    Class TestOneToOneChatMultipleSharedDevicesNewUiTwo:

    1. test_1_1_chat_delete_via_long_press_relogin, id: 702784
    Device sessions

    2. test_1_1_chat_is_shown_message_sent_delivered_from_offline, id: 702783
    Device sessions

    3. test_1_1_chat_mute_chat, id: 703496
    Device sessions

    Class TestCommunityMultipleDeviceMergedTwo:

    1. test_community_markdown_support, id: 702809
    Device sessions

    2. test_community_hashtag_links_to_community_channels, id: 702948
    Device sessions

    3. test_community_mentions_push_notification, id: 702786
    Device sessions

    4. test_community_leave, id: 702845
    Device sessions

    5. test_community_join_when_node_owner_offline, id: 703629
    Device sessions

    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

    3. test_community_undo_delete_message, id: 702869
    Device sessions

    4. test_community_navigate_to_channel_when_relaunch, id: 702846
    Device sessions

    5. test_community_mute_community_and_channel, id: 703382
    Device sessions

    Class TestOneToOneChatMultipleSharedDevicesNewUi:

    1. test_1_1_chat_emoji_send_reply_and_open_link, id: 702782
    Device sessions

    2. test_1_1_chat_text_message_delete_push_disappear, id: 702733
    Device sessions

    3. test_1_1_chat_push_emoji, id: 702813
    Device sessions

    4. test_1_1_chat_non_latin_messages_stack_update_profile_photo, id: 702745
    Device sessions

    5. test_1_1_chat_edit_message, id: 702855
    Device sessions

    6. test_1_1_chat_send_image_save_and_share, id: 703391
    Device sessions

    7. test_1_1_chat_pin_messages, id: 702731
    Device sessions

    8. test_1_1_chat_message_reaction, id: 702730
    Device sessions

    Class TestActivityMultipleDevicePR:

    1. test_navigation_jump_to, id: 702936
    Device sessions

    2. test_activity_center_reply_read_unread_delete_filter_swipe, id: 702947
    Device sessions

    Class TestActivityCenterContactRequestMultipleDevicePR:

    1. test_activity_center_contact_request_decline, id: 702850
    Device sessions

    Class TestGroupChatMultipleDeviceMergedNewUI:

    1. test_group_chat_pin_messages, id: 702732
    Device sessions

    2. test_group_chat_send_image_save_and_share, id: 703297
    Device sessions

    3. test_group_chat_reactions, id: 703202
    Device sessions

    4. test_group_chat_offline_pn, id: 702808
    Device sessions

    Class TestDeepLinksOneDevice:

    1. test_links_open_universal_links_from_chat, id: 704613
    Device sessions

    2. test_links_deep_links, id: 702775
    Device sessions

    Class TestWalletOneDevice:

    1. test_wallet_add_remove_regular_account, id: 727231
    Device sessions

    Class TestActivityMultipleDevicePRTwo:

    1. test_activity_center_mentions, id: 702957
    Device sessions

    2. test_activity_center_admin_notification_accept_swipe, id: 702958
    Device sessions

    Class TestCommunityMultipleDeviceMerged:

    1. test_community_several_images_send_reply, id: 703194
    Device sessions

    2. test_community_one_image_send_reply, id: 702859
    Device sessions

    3. test_community_emoji_send_copy_paste_reply, id: 702840
    Device sessions

    4. test_community_mark_all_messages_as_read, id: 703086
    Device sessions

    5. test_community_contact_block_unblock_offline, id: 702894
    Device sessions

    6. test_community_edit_delete_message_when_offline, id: 704615
    Device sessions

    7. test_community_message_delete, id: 702839
    Device sessions

    8. test_community_message_send_check_timestamps_sender_username, id: 702838
    Device sessions

    9. test_community_links_with_previews_github_youtube_twitter_gif_send_enable, id: 702844
    Device sessions

    10. test_community_message_edit, id: 702843
    Device sessions

    11. test_community_unread_messages_badge, id: 702841
    Device sessions

    @mariia-skrypnyk mariia-skrypnyk self-assigned this May 23, 2024
    @J-Son89
    Copy link
    Contributor Author

    J-Son89 commented May 23, 2024

    @mariia-skrypnyk - I see you are testing this pr. There was conflicts so I rebased and pushed the changes up 👍

    @mariia-skrypnyk
    Copy link

    Thanks @J-Son89 🙏🥹

    @status-im-auto
    Copy link
    Member

    33% of end-end tests have passed

    Total executed tests: 6
    Failed tests: 3
    Expected to fail tests: 1
    Passed tests: 2
    
    IDs of failed tests: 727230,727229,727232 
    
    IDs of expected to fail tests: 702807 
    

    Failed tests (3)

    Click to expand
  • Rerun failed tests

  • Class TestWalletMultipleDevice:

    1. test_wallet_send_asset_from_drawer, id: 727230
    critical/test_wallet.py:119: in test_wallet_send_asset_from_drawer
        self.wallet_view.navigate_back_to_wallet_view()
     'TestWalletMultipleDevice' object has no attribute 'wallet_view'
    



    2. test_wallet_send_eth, id: 727229

    Device 1: Swiping right on element SlideButton
    Device 1: Find SlideButton by xpath: //*[@resource-id='slide-button-track']

    critical/test_wallet.py:111: in test_wallet_send_eth
        self.wallet_1.send_asset(address=self.receiver['address'], asset_name='Ether', amount=amount_to_send)
    ../views/wallet_view.py:100: in send_asset
        self.confirm_transaction()
    ../views/wallet_view.py:87: in confirm_transaction
        self.slide_and_confirm_with_password()
    ../views/wallet_view.py:81: in slide_and_confirm_with_password
        self.slide_button_track.slide()
    ../views/base_view.py:257: in slide
        self.swipe_right_on_element(width_percentage=1.3, start_x=100)
    ../views/base_element.py:308: in swipe_right_on_element
        location, size = self.get_element_coordinates()
    ../views/base_element.py:294: in get_element_coordinates
        element = self.find_element()
    ../views/base_element.py:79: in find_element
        raise NoSuchElementException(
     Device 1: SlideButton by xpath: `//*[@resource-id='slide-button-track']` 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
    



    Class TestWalletOneDevice:

    1. test_wallet_add_remove_watch_only_account, id: 727232

    Device 1: Text is 0x8d2413447ff297d30bdc475f6d5cb00254685aae
    Device 1: Click system back button

    critical/test_wallet.py:213: in test_wallet_add_remove_watch_only_account
        self.home_view.driver.fail(
    base_test_case.py:178: in fail
        pytest.fail('Device %s: %s' % (self.number, text))
     Device 1: Incorrect address '0x8d2413447ff297d30bdc475f6d5cb00254685aae' is shown when swiping between accounts, expected one is '0x8d2413447ff297d30bdc475f6d5cb00254685aae'
    



    Device sessions

    Expected to fail tests (1)

    Click to expand

    Class TestGroupChatMultipleDeviceMergedNewUI:

    1. test_group_chat_join_send_text_messages_push, id: 702807

    Device 2: Find Text by xpath: //*[starts-with(@text,'Hey, admin!')]/ancestor::android.view.ViewGroup[@content-desc='chat-item']//*[@content-desc='message-status']/android.widget.TextView
    Device 2: Text is Sent

    critical/chats/test_group_chat.py:97: in test_group_chat_join_send_text_messages_push
        self.chats[1].chat_element_by_text(message_to_admin).wait_for_status_to_be('Delivered', timeout=120)
    ../views/chat_view.py:225: in wait_for_status_to_be
        raise TimeoutException("Message status was not changed to %s, it's %s" % (expected_status, current_status))
     Message status was not changed to Delivered, it's Sent 
    

    [[Issue with a message status - Sent instead of Delivered, https://github.com//issues/20126]]

    Device sessions

    Passed tests (2)

    Click to expand

    Class TestActivityCenterContactRequestMultipleDevicePR:

    1. test_add_contact_field_validation, id: 702777
    Device sessions

    2. test_activity_center_contact_request_accept_swipe_mark_all_as_read, id: 702851
    Device sessions

    @mariia-skrypnyk
    Copy link

    Hey @J-Son89 !

    Thanks for your PR.
    Checked on both platforms and looks good! 🙌
    Failed e2e are not related.
    PR can be merged!

    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
    Projects
    Archived in project
    Archived in project
    Development

    Successfully merging this pull request may close these issues.

    Wallet - reset input in sending flow after switching account
    8 participants