status-mobile icon indicating copy to clipboard operation
status-mobile copied to clipboard

fix: action/reaction drawer UI issue

Open yqrashawn opened this issue 1 year ago • 6 comments

fixes #19278

Summary

  • quo/drawer-action
    • add :accessibility-label support, old :container accessibility label is removed
    • add :type for title and icon color (e.g. :danger)
  • reaction buttons
    • updated for two platforms based on screenshots of emulator
    • much better yet still not pixel perfect
    • mean reason is these buttons are emoji texts not images
  • hide reactions row (bottom of message) in reactions preview (long press on message reaction)
  • for message reaction and action drawer, replace quo/menu-item with quo/drawer-action
  • refactor/simplify message content code

Review notes

quo/drawer-action is a new component (2 weeks old), it's not used anywhere until this PR lots of "drawer-action"s are using quo/menu-item, which should be upgraded to the new component, details at https://github.com/status-im/status-mobile/issues/19278#issuecomment-2054456797

Testing notes

  • Implementation of actions (reply, delete message) in the message drawer is replaced (from quo/menu-item to quo/drawer-action)
  • hide reactions row (bottom of message) in reactions preview (long press on message reaction)

Platforms

  • Android
  • iOS

Areas that maybe impacted

action drawer for chat messages reaction drawer (add reaction to message, then long press message reaction)

Before and after screenshots comparison

Figma (if available) iOS (if available) Android (if available)
after(0.5) / figma image image
before(0.5) / figma image image

status: ready

yqrashawn avatar Apr 15 '24 02:04 yqrashawn

Jenkins Builds

Click to see older builds (61)
:grey_question: Commit :hash: Finished (UTC) Duration Platform Result
:x: d326511985628cd471180c83e7cd70e98b152ce6 #1 2024-04-15 02:51:58 ~3 min tests :page_facing_up:log
:heavy_check_mark: d326511985628cd471180c83e7cd70e98b152ce6 #1 2024-04-15 02:55:14 ~7 min android-e2e :robot:apk :calling:
:heavy_check_mark: d326511985628cd471180c83e7cd70e98b152ce6 #1 2024-04-15 02:55:22 ~7 min android :robot:apk :calling:
:heavy_check_mark: d326511985628cd471180c83e7cd70e98b152ce6 #1 2024-04-15 02:57:53 ~9 min ios :iphone:ipa :calling:
:x: 0af6218068b20914677a4ea345182e9a04f745e1 #2 2024-04-15 09:17:24 ~2 min tests :page_facing_up:log
:heavy_check_mark: 0af6218068b20914677a4ea345182e9a04f745e1 #2 2024-04-15 09:20:31 ~5 min android-e2e :robot:apk :calling:
:heavy_check_mark: 0af6218068b20914677a4ea345182e9a04f745e1 #2 2024-04-15 09:21:23 ~6 min android :robot:apk :calling:
:heavy_check_mark: 0af6218068b20914677a4ea345182e9a04f745e1 #2 2024-04-15 09:24:12 ~9 min ios :iphone:ipa :calling:
:x: 7a0aac94941bec8b6a6b0040f5e62929fc8475cf #3 2024-04-15 09:34:04 ~2 min tests :page_facing_up:log
:heavy_check_mark: 7e275d99c43cf09af358bd71a9134414831419b3 #4 2024-04-15 09:41:53 ~4 min tests :page_facing_up:log
:heavy_check_mark: 7e275d99c43cf09af358bd71a9134414831419b3 #4 2024-04-15 09:43:41 ~5 min android-e2e :robot:apk :calling:
:heavy_check_mark: 7e275d99c43cf09af358bd71a9134414831419b3 #4 2024-04-15 09:44:53 ~7 min android :robot:apk :calling:
:heavy_check_mark: 7e275d99c43cf09af358bd71a9134414831419b3 #4 2024-04-15 09:48:47 ~10 min ios :iphone:ipa :calling:
:heavy_check_mark: 8eb3358ebe71998b280876338ec4be3ca378082b #5 2024-04-17 07:55:01 ~5 min tests :page_facing_up:log
:heavy_check_mark: 8eb3358ebe71998b280876338ec4be3ca378082b #5 2024-04-17 07:57:17 ~8 min android-e2e :robot:apk :calling:
:heavy_check_mark: 8eb3358ebe71998b280876338ec4be3ca378082b #5 2024-04-17 07:57:22 ~8 min android :robot:apk :calling:
:heavy_check_mark: 8eb3358ebe71998b280876338ec4be3ca378082b #5 2024-04-17 07:59:47 ~10 min ios :iphone:ipa :calling:
:heavy_check_mark: fadbd84bf365baf27c22e10eef34d8148c353c31 #6 2024-04-18 11:22:41 ~4 min tests :page_facing_up:log
:heavy_check_mark: fadbd84bf365baf27c22e10eef34d8148c353c31 #6 2024-04-18 11:24:42 ~6 min android-e2e :robot:apk :calling:
:heavy_check_mark: fadbd84bf365baf27c22e10eef34d8148c353c31 #6 2024-04-18 11:25:51 ~7 min android :robot:apk :calling:
:heavy_check_mark: fadbd84bf365baf27c22e10eef34d8148c353c31 #6 2024-04-18 11:28:02 ~9 min ios :iphone:ipa :calling:
:x: a13f47f5c2ee3d2b61770bb3edddbb99fa90010f #7 2024-05-10 03:16:53 ~2 min tests :page_facing_up:log
:heavy_check_mark: a13f47f5c2ee3d2b61770bb3edddbb99fa90010f #7 2024-05-10 03:21:11 ~6 min android :robot:apk :calling:
:heavy_check_mark: a13f47f5c2ee3d2b61770bb3edddbb99fa90010f #7 2024-05-10 03:22:48 ~8 min android-e2e :robot:apk :calling:
:heavy_check_mark: a13f47f5c2ee3d2b61770bb3edddbb99fa90010f #7 2024-05-10 03:23:51 ~9 min ios :iphone:ipa :calling:
:heavy_check_mark: e0b759b4b51974d39f4da34ae8abbf71354e370b #8 2024-05-10 05:42:03 ~5 min tests :page_facing_up:log
:heavy_check_mark: e0b759b4b51974d39f4da34ae8abbf71354e370b #8 2024-05-10 05:43:34 ~6 min android-e2e :robot:apk :calling:
:heavy_check_mark: e0b759b4b51974d39f4da34ae8abbf71354e370b #8 2024-05-10 05:45:11 ~8 min android :robot:apk :calling:
:heavy_check_mark: e0b759b4b51974d39f4da34ae8abbf71354e370b #8 2024-05-10 05:46:20 ~9 min ios :iphone:ipa :calling:
:heavy_check_mark: 3b497586f578ebe8ba89ac139e66a05ea4cbff42 #9 2024-05-10 05:52:22 ~5 min tests :page_facing_up:log
:heavy_check_mark: 3b497586f578ebe8ba89ac139e66a05ea4cbff42 #9 2024-05-10 05:53:56 ~7 min android :robot:apk :calling:
:heavy_check_mark: 3b497586f578ebe8ba89ac139e66a05ea4cbff42 #9 2024-05-10 05:55:02 ~8 min android-e2e :robot:apk :calling:
:heavy_check_mark: 3b497586f578ebe8ba89ac139e66a05ea4cbff42 #9 2024-05-10 05:56:35 ~9 min ios :iphone:ipa :calling:
:heavy_check_mark: 19fdc1ff7327301323e60da5a59a5561fa1b5827 #10 2024-05-10 08:11:19 ~3 min tests :page_facing_up:log
:heavy_check_mark: 19fdc1ff7327301323e60da5a59a5561fa1b5827 #10 2024-05-10 08:13:13 ~5 min android :robot:apk :calling:
:heavy_check_mark: 19fdc1ff7327301323e60da5a59a5561fa1b5827 #10 2024-05-10 08:16:33 ~9 min android-e2e :robot:apk :calling:
:heavy_check_mark: 19fdc1ff7327301323e60da5a59a5561fa1b5827 #10 2024-05-10 08:17:17 ~9 min ios :iphone:ipa :calling:
:heavy_check_mark: a25fe11614b0d3899d5a46e4010b9e8c233410d9 #11 2024-05-13 06:50:51 ~4 min tests :page_facing_up:log
:heavy_check_mark: a25fe11614b0d3899d5a46e4010b9e8c233410d9 #11 2024-05-13 06:52:21 ~5 min android-e2e :robot:apk :calling:
:heavy_check_mark: a25fe11614b0d3899d5a46e4010b9e8c233410d9 #11 2024-05-13 06:54:45 ~8 min android :robot:apk :calling:
:heavy_check_mark: a25fe11614b0d3899d5a46e4010b9e8c233410d9 #11 2024-05-13 06:56:38 ~10 min ios :iphone:ipa :calling:
:heavy_check_mark: b6c5a8d1faa0b32d725bbfbd5018345f2b09037c #12 2024-05-13 14:04:08 ~3 min tests :page_facing_up:log
:heavy_check_mark: b6c5a8d1faa0b32d725bbfbd5018345f2b09037c #12 2024-05-13 14:06:05 ~5 min android-e2e :robot:apk :calling:
:heavy_check_mark: b6c5a8d1faa0b32d725bbfbd5018345f2b09037c #12 2024-05-13 14:06:34 ~6 min android :robot:apk :calling:
:heavy_check_mark: b6c5a8d1faa0b32d725bbfbd5018345f2b09037c #12 2024-05-13 14:10:03 ~9 min ios :iphone:ipa :calling:
:heavy_check_mark: d598d1fd0a8a140192974bd7450e652411de192b #13 2024-05-13 14:27:30 ~5 min tests :page_facing_up:log
:heavy_check_mark: d598d1fd0a8a140192974bd7450e652411de192b #13 2024-05-13 14:27:56 ~5 min android-e2e :robot:apk :calling:
:heavy_check_mark: d598d1fd0a8a140192974bd7450e652411de192b #13 2024-05-13 14:29:44 ~7 min android :robot:apk :calling:
:heavy_check_mark: d598d1fd0a8a140192974bd7450e652411de192b #13 2024-05-13 14:31:40 ~9 min ios :iphone:ipa :calling:
:heavy_check_mark: 7601097983aec2856493001ba50eb1f7c2b174e3 #14 2024-05-15 00:34:50 ~5 min tests :page_facing_up:log
:heavy_check_mark: 7601097983aec2856493001ba50eb1f7c2b174e3 #14 2024-05-15 00:36:41 ~6 min android :robot:apk :calling:
:heavy_check_mark: 7601097983aec2856493001ba50eb1f7c2b174e3 #14 2024-05-15 00:37:56 ~8 min android-e2e :robot:apk :calling:
:heavy_check_mark: 7601097983aec2856493001ba50eb1f7c2b174e3 #14 2024-05-15 00:39:14 ~9 min ios :iphone:ipa :calling:
:heavy_check_mark: 92fba98b22e65e2152c52d6d0490463b1012dd3f #16 2024-05-16 07:03:19 ~4 min tests :page_facing_up:log
:heavy_check_mark: 92fba98b22e65e2152c52d6d0490463b1012dd3f #16 2024-05-16 07:05:07 ~6 min android :robot:apk :calling:
:heavy_check_mark: 92fba98b22e65e2152c52d6d0490463b1012dd3f #16 2024-05-16 07:05:14 ~6 min android-e2e :robot:apk :calling:
:heavy_check_mark: 92fba98b22e65e2152c52d6d0490463b1012dd3f #16 2024-05-16 07:07:34 ~9 min ios :iphone:ipa :calling:
:x: 554f82440b946292311c60e9857b65b64f837ebe #17 2024-05-16 07:44:32 ~2 min tests :page_facing_up:log
:heavy_check_mark: 554f82440b946292311c60e9857b65b64f837ebe #17 2024-05-16 07:48:31 ~6 min android :robot:apk :calling:
:heavy_check_mark: 554f82440b946292311c60e9857b65b64f837ebe #17 2024-05-16 07:50:33 ~8 min android-e2e :robot:apk :calling:
:heavy_check_mark: 554f82440b946292311c60e9857b65b64f837ebe #17 2024-05-16 07:51:51 ~9 min ios :iphone:ipa :calling:
:grey_question: Commit :hash: Finished (UTC) Duration Platform Result
:x: 7cbddd1421941563daaaba39950e05eeee8fc42d #18 2024-05-16 12:38:38 ~2 min tests :page_facing_up:log
:heavy_check_mark: 7cbddd1421941563daaaba39950e05eeee8fc42d #18 2024-05-16 12:42:04 ~5 min android :robot:apk :calling:
:heavy_check_mark: 7cbddd1421941563daaaba39950e05eeee8fc42d #18 2024-05-16 12:43:54 ~7 min android-e2e :robot:apk :calling:
:heavy_check_mark: 7cbddd1421941563daaaba39950e05eeee8fc42d #18 2024-05-16 12:50:05 ~13 min ios :iphone:ipa :calling:
:heavy_check_mark: 3bcfdb5e04101cd6ee82d4254b92537443a04474 #20 2024-05-17 08:29:32 ~4 min tests :page_facing_up:log
:heavy_check_mark: 3bcfdb5e04101cd6ee82d4254b92537443a04474 #20 2024-05-17 08:30:23 ~5 min android :robot:apk :calling:
:heavy_check_mark: 3bcfdb5e04101cd6ee82d4254b92537443a04474 #20 2024-05-17 08:30:24 ~5 min android-e2e :robot:apk :calling:
:heavy_check_mark: 3bcfdb5e04101cd6ee82d4254b92537443a04474 #20 2024-05-17 08:36:43 ~12 min ios :iphone:ipa :calling:

status-im-auto avatar Apr 15 '24 02:04 status-im-auto

pressed background color

CleanShot 2024-04-15 at 17 38 53

yqrashawn avatar Apr 15 '24 09:04 yqrashawn

PR is ready for design review @Francesca-G

yqrashawn avatar May 10 '24 05:05 yqrashawn

Sorry for that. It's a bug already in dev branch and it's fixed now. @Francesca-G

yqrashawn avatar May 10 '24 08:05 yqrashawn

@Francesca-G bottom spacing should be fixed now

yqrashawn avatar May 13 '24 07:05 yqrashawn

83% of end-end tests have passed

Total executed tests: 52
Failed tests: 7
Expected to fail tests: 2
Passed tests: 43
IDs of failed tests: 727230,704613,702851,727229,702807,727232,702775 
IDs of expected to fail tests: 703495,703503 

Failed tests (7)

Click to expand
  • Rerun failed tests

  • Class TestActivityCenterContactRequestMultipleDevicePR:

    1. 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:141: in test_activity_center_contact_request_accept_swipe_mark_all_as_read
        self.device_2.just_fyi('Device1 check that contact appeared in contact list mutually')
    ../views/base_view.py:410: in just_fyi
        self.driver.execute_script("sauce:context=STEP: %s" % some_str)
    ../../../../status-app-prs@tmp/venv/lib/python3.10/site-packages/selenium/webdriver/remote/webdriver.py:405: in execute_script
        return self.execute(command, {"script": script, "args": converted_args})["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 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:117: 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:39: 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:109: 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:99: in send_asset
        self.confirm_transaction()
    ../views/wallet_view.py:86: in confirm_transaction
        self.slide_and_confirm_with_password()
    ../views/wallet_view.py:80: 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: Find EditBox by accessibility id: add-address-to-watch
    Device 1: Type 0x8d2413447ff297d30bdc475f6d5cb00254685aae to EditBox
    critical/test_wallet.py:190: 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:120: 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
    



    Device sessions

    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

    Class TestDeepLinksOneDevice:

    1. test_links_open_universal_links_from_chat, id: 704613

    Device 1: Find Button by xpath: //*[@text="open community"]
    Device 1: Tap on found: Button
    critical/test_deep_and_universal_links.py:70: in test_links_open_universal_links_from_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))]))
     Community 'Open community for e2e' was not requested to join by the url https://status.app/c/G1AAAGR0G-IRb2YJD4lRXwLusAFnGrDHGNl6Wt55MIARwVYvarnO873011-fdVSz1kHSan-qq0G96vOaMqyTRhJnQV74KCUr#zQ3shb9irJR66rhG1E8sQZX8pDU3dpGm4daYSmPVDd2e73ewE
    



    Device sessions

    2. test_links_deep_links, id: 702775

    Device 1: Find BrowserTab by accessibility id: browser-stack-tab
    Device 1: Tap on found: BrowserTab
    critical/test_deep_and_universal_links.py:114: in test_links_deep_links
        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))]))
     Community 'Open community for e2e' was not requested to join by the deep link status.app://c/G1AAAGR0G-IRb2YJD4lRXwLusAFnGrDHGNl6Wt55MIARwVYvarnO873011-fdVSz1kHSan-qq0G96vOaMqyTRhJnQV74KCUr#zQ3shb9irJR66rhG1E8sQZX8pDU3dpGm4daYSmPVDd2e73ewE
    



    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/status-im/status-mobile/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/status-im/status-mobile/issues/19627]]

    Device sessions

    Passed tests (43)

    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

    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 TestActivityCenterContactRequestMultipleDevicePR:

    1. test_add_contact_field_validation, id: 702777
    Device sessions

    2. test_activity_center_contact_request_decline, id: 702850
    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

    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 TestActivityMultipleDevicePRTwo:

    1. test_activity_center_mentions, id: 702957
    Device sessions

    2. test_activity_center_admin_notification_accept_swipe, id: 702958
    Device sessions

    Class TestWalletOneDevice:

    1. test_wallet_add_remove_regular_account, id: 727231
    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 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 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 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

    status-im-auto avatar May 13 '24 15:05 status-im-auto

    Hey @yqrashawn !

    Thanks for making app better! Noticed one issue.

    ISSUE 1: Contact icon is missaligned

    Design vs Now

    Screenshot 2024-05-15 at 13 37 14

    mariia-skrypnyk avatar May 15 '24 11:05 mariia-skrypnyk

    Hi @seanstrom, about ISSUE 1 in this PR I saw your comment in author component style file and your PR at https://github.com/status-im/status-mobile/pull/19489 I didn't find the reason for the misalignment in ISSUE 1 and fixed it with another approach. Do you mind take a look at this commit? https://github.com/status-im/status-mobile/pull/19630/commits/554f82440b946292311c60e9857b65b64f837ebe

    yqrashawn avatar May 16 '24 06:05 yqrashawn

    @yqrashawn yup yup I don't mind taking a look on my side 👍

    One note about what I remember about aligning these icons is that we use the author component in a few areas:

    • Chats
    • Home contacts list
    • Home recent chats
    • Home group chats (I think?)

    And it was tricky to get all of them to align correctly because they each use a slightly different layout that wrap the author component. So it might be worth checking that alignment is correct in those other areas 🙏

    seanstrom avatar May 16 '24 10:05 seanstrom

    @yqrashawn okay I took on my side, and I think the icon is almost aligned by maybe slightly mis-aligned.

    Before (Develop) After (This Branch)
    Before Alignment Tweaks After Alignment Tweaks

    One note about what I remember about aligning these icons is that we use the author component in a few areas:

    • Chats
    • Home contacts list
    • Home recent chats
    • Home group chats (I think?)

    And it was tricky to get all of them to align correctly because they each use a slightly different layout that wrap the author component. So it might be worth checking that alignment is correct in those other areas 🙏

    Also here's some screenshots from the other related screens that I mentioned.

    Name Screenshot
    Home recent chats Home Recent Chats
    Home contacts Home Contacts

    seanstrom avatar May 16 '24 10:05 seanstrom

    Hi @yqrashawn @seanstrom !

    Please, let me know when I can retest it again.

    mariia-skrypnyk avatar May 17 '24 08:05 mariia-skrypnyk

    Hi @seanstrom, thanks for the detailed review.

    I've updated the commit and not the component should be pixel perfect on both platform

    • Instead of adding negative margin to the container, I added it to the primary name, since that's the only part that exceeds the container height
    • The same primary name has different height on iOS and Android, so the negative margin depends on the platform
    • about align-items, baseline behaves different and center behaves identical on two platforms

    yqrashawn avatar May 17 '24 08:05 yqrashawn

    Hi @mariia-skrypnyk, ready for retest

    yqrashawn avatar May 17 '24 08:05 yqrashawn

    @yqrashawn thanks. Looks good for me, just wait for e2e test done and will move to @Francesca-G review.

    mariia-skrypnyk avatar May 17 '24 09:05 mariia-skrypnyk

    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,702859,702894,727229,703391,702807 
    
    IDs of expected to fail tests: 703495,703503 
    

    Failed tests (6)

    Click to expand
  • Rerun failed tests

  • Class TestOneToOneChatMultipleSharedDevicesNewUi:

    1. test_1_1_chat_send_image_save_and_share, id: 703391

    Device 2: Find `Button` by `accessibility id`: `image-0`
    Device 2: Click system back button
    critical/chats/test_1_1_public_chats.py:458: in test_1_1_chat_send_image_save_and_share
        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))]))
     Message about saving a photo is not shown for receiver.
    



    Device sessions

    Class TestCommunityMultipleDeviceMerged:

    1. test_community_one_image_send_reply, id: 702859

    Device 2: Find EmojisNumber by xpath: //*[starts-with(@text,'reply to image')]/ancestor::android.view.ViewGroup[@content-desc='chat-item']/../..//*[@content-desc='emoji-reaction-1']/android.widget.TextView[2]
    Device 2: Element EmojisNumber text is equal to 1
    critical/chats/test_public_chat_browsing.py:503: in test_community_one_image_send_reply
        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))]))
     Message about saving a photo is not shown.
    



    Device sessions

    2. test_community_contact_block_unblock_offline, id: 702894

    Device 2: Tap on found: Text
    Device 2: Find Text by xpath: //*[starts-with(@text,'Hurray! unblocked')]/ancestor::android.view.ViewGroup[@content-desc='chat-item']//*[@content-desc='message-status']/android.widget.TextView
    critical/chats/test_public_chat_browsing.py:739: in test_community_contact_block_unblock_offline
        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))]))
     Message was not delivered after back up online.
    



    Device sessions

    Class TestGroupChatMultipleDeviceMergedNewUI:

    1. test_group_chat_join_send_text_messages_push, id: 702807

    Device 2: Tap on found: Text
    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
    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:221: in wait_for_status_to_be
        current_status = self.status
    ../views/chat_view.py:209: in status
        status = status_element.text
    ../views/base_element.py:416: in text
        text = self.find_element().text
    ../views/base_element.py:79: in find_element
        raise NoSuchElementException(
     Device 2: Text by xpath: `//*[starts-with(@text,'Hey, admin!')]/ancestor::android.view.ViewGroup[@content-desc='chat-item']//*[@content-desc='message-status']/android.widget.TextView` 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

    Class TestWalletMultipleDevice:

    1. test_wallet_send_asset_from_drawer, id: 727230

    Device 1: Find Text by xpath: //android.view.ViewGroup[@content-desc='container']/android.widget.TextView[@text='Ether']/../android.widget.TextView[3]
    Device 1: Text is 0.98542 ETH
    critical/test_wallet.py:129: in test_wallet_send_asset_from_drawer
        self._check_balances_after_tx(amount_to_send, sender_balance, receiver_balance, eth_amount_sender,
    critical/test_wallet.py:100: in _check_balances_after_tx
        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))]))
     Eth amount in the receivers wallet is 0.0025 but should be 0.0026
    E    Eth amount in the senders wallet is 0.9854 but should be 0.9853
    



    2. test_wallet_send_eth, id: 727229

    Device 1: Find Text by xpath: //android.view.ViewGroup[@content-desc='container']/android.widget.TextView[@text='Ether']/../android.widget.TextView[3]
    Device 1: Text is 0.98542 ETH
    critical/test_wallet.py:114: in test_wallet_send_eth
        self._check_balances_after_tx(amount_to_send, sender_balance, receiver_balance, eth_amount_sender,
    critical/test_wallet.py:100: in _check_balances_after_tx
        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))]))
     Eth amount in the receivers wallet is 0.0025 but should be 0.0026
    E    Eth amount in the senders wallet is 0.9854 but should be 0.9853
    



    Expected to fail tests (2)

    Click to expand

    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/status-im/status-mobile/issues/19627]]

    Device sessions

    Class TestCommunityOneDeviceMerged:

    1. test_community_discovery, id: 703503
    Test is not run, e2e blocker  
    

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

    Passed tests (44)

    Click to expand

    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 TestActivityMultipleDevicePRTwo:

    1. test_activity_center_mentions, id: 702957
    Device sessions

    2. test_activity_center_admin_notification_accept_swipe, id: 702958
    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_pin_messages, id: 702731
    Device sessions

    7. test_1_1_chat_message_reaction, id: 702730
    Device sessions

    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

    3. test_activity_center_contact_request_decline, id: 702850
    Device sessions

    Class TestCommunityMultipleDeviceMerged:

    1. test_community_several_images_send_reply, id: 703194
    Device sessions

    2. test_community_emoji_send_copy_paste_reply, id: 702840
    Device sessions

    3. test_community_mark_all_messages_as_read, id: 703086
    Device sessions

    4. test_community_edit_delete_message_when_offline, id: 704615
    Device sessions

    5. test_community_message_delete, id: 702839
    Device sessions

    6. test_community_message_send_check_timestamps_sender_username, id: 702838
    Device sessions

    7. test_community_links_with_previews_github_youtube_twitter_gif_send_enable, id: 702844
    Device sessions

    8. test_community_message_edit, id: 702843
    Device sessions

    9. test_community_unread_messages_badge, id: 702841
    Device sessions

    Class TestWalletOneDevice:

    1. test_wallet_add_remove_regular_account, id: 727231
    Device sessions

    2. test_wallet_add_remove_watch_only_account, id: 727232
    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 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 TestDeepLinksOneDevice:

    1. test_links_open_universal_links_from_chat, id: 704613
    Device sessions

    2. test_links_deep_links, id: 702775
    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 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

    status-im-auto avatar May 17 '24 10:05 status-im-auto

    Failed e2e are not related.

    mariia-skrypnyk avatar May 17 '24 11:05 mariia-skrypnyk