Skip to content

Conversation

@vkjr
Copy link
Contributor

@vkjr vkjr commented Apr 2, 2025

fixes #22376

Summary

Implementation of quo component - list item for Market tab.

CleanShot.2025-04-02.at.16.19.09.mp4

Figma link

Review notes

Platforms

  • Android
  • iOS

Areas that may be impacted

Shouldn't affect anything except components

Steps to test

  • Open Status
  • Open quo preview
  • Find market-token under list-item section
  • Make sure it behaves as expected

status: ready

@vkjr vkjr added the wallet-core Issues for mobile wallet team label Apr 2, 2025
@vkjr vkjr self-assigned this Apr 2, 2025
@status-github-bot-v2 status-github-bot-v2 bot moved this to CONTRIBUTOR in Pipeline for QA Apr 2, 2025
@status-im-auto
Copy link
Member

status-im-auto commented Apr 2, 2025

Jenkins Builds

Click to see older builds (24)
Commit #️⃣ Finished (UTC) Duration Platform Result
d45b3c7 #1 2025-04-02 15:27:03 ~3 min tests 📄log
✔️ d45b3c7 #1 2025-04-02 15:31:31 ~7 min android 🤖apk 📲
✔️ d45b3c7 #1 2025-04-02 15:32:01 ~8 min android-e2e 🤖apk 📲
✔️ d45b3c7 #1 2025-04-02 15:34:35 ~10 min ios 📱ipa 📲
✔️ 0cdc63c #2 2025-04-03 09:54:05 ~4 min tests 📄log
✔️ 0cdc63c #2 2025-04-03 09:59:54 ~10 min ios 📱ipa 📲
✔️ 0cdc63c #2 2025-04-03 10:02:51 ~13 min android-e2e 🤖apk 📲
✔️ 0cdc63c #2 2025-04-03 10:03:22 ~14 min android 🤖apk 📲
✔️ b24d28d #3 2025-04-04 10:06:55 ~4 min tests 📄log
✔️ b24d28d #3 2025-04-04 10:10:38 ~8 min android-e2e 🤖apk 📲
✔️ b24d28d #3 2025-04-04 10:11:02 ~8 min android 🤖apk 📲
✔️ b24d28d #3 2025-04-04 10:12:55 ~10 min ios 📱ipa 📲
✔️ ab45648 #4 2025-04-07 10:15:08 ~4 min tests 📄log
✔️ ab45648 #4 2025-04-07 10:18:56 ~8 min android-e2e 🤖apk 📲
✔️ ab45648 #4 2025-04-07 10:19:20 ~8 min android 🤖apk 📲
✔️ ab45648 #4 2025-04-07 10:21:00 ~10 min ios 📱ipa 📲
✔️ 5f94577 #5 2025-04-07 11:05:17 ~4 min tests 📄log
✔️ 5f94577 #5 2025-04-07 11:08:29 ~7 min android-e2e 🤖apk 📲
✔️ 5f94577 #5 2025-04-07 11:08:57 ~8 min android 🤖apk 📲
✔️ 5f94577 #5 2025-04-07 11:12:26 ~11 min ios 📱ipa 📲
✔️ c38b01b #7 2025-04-10 12:46:33 ~5 min tests 📄log
✔️ c38b01b #7 2025-04-10 12:49:30 ~8 min android-e2e 🤖apk 📲
✔️ c38b01b #7 2025-04-10 12:51:10 ~10 min android 🤖apk 📲
✔️ c38b01b #7 2025-04-10 12:57:11 ~16 min ios 📱ipa 📲
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ ec8c338 #8 2025-04-11 10:46:44 ~5 min tests 📄log
✔️ ec8c338 #8 2025-04-11 10:49:24 ~8 min android-e2e 🤖apk 📲
✔️ ec8c338 #8 2025-04-11 10:50:11 ~8 min android 🤖apk 📲
✔️ ec8c338 #8 2025-04-11 10:53:06 ~11 min ios 📱ipa 📲
✔️ 80a6f5d #9 2025-04-11 13:39:54 ~5 min tests 📄log
✔️ 80a6f5d #9 2025-04-11 13:40:54 ~6 min android-e2e 🤖apk 📲
✔️ 80a6f5d #9 2025-04-11 13:43:03 ~8 min android 🤖apk 📲
✔️ 80a6f5d #9 2025-04-11 13:44:36 ~10 min ios 📱ipa 📲

:on-long-press on-long-press
:accessibility-label :market-token-container}
[rn/view
{:style {:flex-direction :row
Copy link
Contributor

Choose a reason for hiding this comment

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

LGTM 🔥, Saw some inline styles, maybe worth popping them into the style file.

Copy link
Contributor

@shivekkhurana shivekkhurana left a comment

Choose a reason for hiding this comment

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

Except from inline styles, everything else looks good.

@vkjr
Copy link
Contributor Author

vkjr commented Apr 3, 2025

Thanks, fixed the styles

@vkjr vkjr moved this from CONTRIBUTOR to E2E Tests in Pipeline for QA Apr 3, 2025
@mariia-skrypnyk mariia-skrypnyk moved this from E2E Tests to IN TESTING in Pipeline for QA Apr 4, 2025
@mariia-skrypnyk mariia-skrypnyk self-assigned this Apr 4, 2025
@mariia-skrypnyk
Copy link

Hi @vkjr !

Thanks for your PR.
Can you please resolve conflicts and rebase?

@vkjr vkjr force-pushed the trading-token-list-item branch from 0cdc63c to b24d28d Compare April 4, 2025 10:02
@vkjr
Copy link
Contributor Author

vkjr commented Apr 4, 2025

@mariia-skrypnyk, hey!
Done!

@vkjr vkjr force-pushed the trading-token-list-item branch from b24d28d to ab45648 Compare April 7, 2025 10:10
@status-im-auto
Copy link
Member

61% of end-end tests have passed

Total executed tests: 23
Failed tests: 8
Expected to fail tests: 1
Passed tests: 14
IDs of failed tests: 702731,742016,740490,741969,702838,741968,703391,727230 
IDs of expected to fail tests: 702859 

Failed tests (8)

Click to expand
  • Rerun failed tests

  • Class TestWalletOneDevice:

    1. test_wallet_balance_mainnet, id: 740490

    Device 1: Find `Button` by `accessibility id`: `network-dropdown`
    Device 1: Tap on found: Button

    wallet/test_wallet_mainnet_no_send.py:70: in test_wallet_balance_mainnet
        self.errors.verify_no_errors()
    base_test_case.py:205: in verify_no_errors
        pytest.fail('\n '.join([self.errors.pop(0) for _ in range(len(self.errors))]))
     Device 1: For the Uniswap the wrong value 0.63 is shown, expected 0.627 in total
    E    Device 1: For the Uniswap the wrong value 0.13 is shown, expected 0.127 on Mainnet
    



    Device sessions

    Class TestWalletMultipleDevice:

    1. test_wallet_send_erc20_from_drawer[Sepolia-USD Coin-USDC-2-0.01], id: 742016

    Device 1: Find Button by xpath: //*[@content-desc='send']/*[@content-desc='left-icon-for-action']
    Device 1: Find Button by xpath: //*[@content-desc='network-list']/*[@text='Sepolia']

    wallet_txs/test_wallet_testnet.py:81: in test_wallet_send_erc20_from_drawer
        self.wallet_1.send_asset_from_drawer(address=self.receiver['wallet_address'],
    ../views/wallet_view.py:291: in send_asset_from_drawer
        self.select_network(network_name)
    ../views/wallet_view.py:258: in select_network
        xpath="//*[@content-desc='network-list']/*[@text='%s']" % network_name).click()
    ../views/base_element.py:90: in click
        element = self.find_element()
    ../views/base_element.py:79: in find_element
        raise NoSuchElementException(
     Device 1: Button by xpath: `//*[@content-desc='network-list']/*[@text='Sepolia']` 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

    2. test_wallet_send_erc20_from_drawer[Optimism Sepolia-USD Coin-USDC-2-0.01], id: 727230

    Device 1: Double tap on: Button
    Device 1: Find Button by xpath: //*[@content-desc='send']/*[@content-desc='left-icon-for-action']

    wallet_txs/test_wallet_testnet.py:81: in test_wallet_send_erc20_from_drawer
        self.wallet_1.send_asset_from_drawer(address=self.receiver['wallet_address'],
    ../views/wallet_view.py:290: in send_asset_from_drawer
        self.send_from_drawer_button.double_click()
    ../views/base_element.py:114: in double_click
        [self.find_element().click() for _ in range(2)]
    ../views/base_element.py:114: in <listcomp>
        [self.find_element().click() for _ in range(2)]
    ../views/base_element.py:79: in find_element
        raise NoSuchElementException(
     Device 1: Button by xpath: `//*[@content-desc='send']/*[@content-desc='left-icon-for-action']` 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 TestProfileMultipleDevices:

    1. test_profile_change_profile_photo, id: 741969

    Test setup failed: profile/test_profile.py:109: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:336: in join_community
        self.join_button.wait_and_click(120)
    ../views/base_element.py:100: in wait_and_click
        self.wait_for_visibility_of_element(sec)
    ../views/base_element.py:139: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by accessibility id:`show-request-to-join-screen-button` is not found on the screen after wait_for_visibility_of_element
    



    2. test_profile_change_username, id: 741968

    Device 2: Find Text by xpath: //android.view.ViewGroup[@content-desc='chat-item']//android.widget.TextView[contains(@text,'https://status.app/c/')]
    Device 2: Wait for element Button for max 120s and click when it is available

    Test setup failed: profile/test_profile.py:109: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:336: in join_community
        self.join_button.wait_and_click(120)
    ../views/base_element.py:100: in wait_and_click
        self.wait_for_visibility_of_element(sec)
    ../views/base_element.py:139: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by accessibility id:`show-request-to-join-screen-button` is not found on the screen after wait_for_visibility_of_element
    



    Device sessions

    Class TestCommunityMultipleDeviceMerged:

    1. test_community_message_send_check_timestamps_sender_username, id: 702838

    Device 2: Verifying that 'new message' is under today
    Device 2: Looking for a message by text: new message

    communities/test_community.py:366: in test_community_message_send_check_timestamps_sender_username
        self.channel_2.verify_message_is_under_today_text(new_message, self.errors, 60)
    ../views/chat_view.py:621: in verify_message_is_under_today_text
        message_element.wait_for_visibility_of_element(timeout)
    ../views/base_element.py:139: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: ChatElementByText by xpath:`//*[starts-with(@text,'new message')]/ancestor::android.view.ViewGroup[@content-desc='chat-item']` is not found on the screen after wait_for_visibility_of_element
    



    Device sessions

    Class TestOneToOneChatMultipleSharedDevicesNewUi:

    1. test_1_1_chat_pin_messages, id: 702731

    Device 1: Looking for a pinned message by text: Message 4
    Device 1: Find Button by xpath: //*[@content-desc='pinned-messages-menu']//*[starts-with(@text,'Message 4')]

    private_chats/test_one_to_one_chat.py:267: in test_1_1_chat_pin_messages
        pinned_message.long_press_without_release()
    ../views/base_element.py:330: in long_press_without_release
        action.click_and_hold(self.find_element()).perform()
    ../views/base_element.py:79: in find_element
        raise NoSuchElementException(
     Device 1: Button by xpath: `//*[@content-desc='pinned-messages-menu']//*[starts-with(@text,'Message 4')]` 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

    2. test_1_1_chat_send_image_save_and_share, id: 703391

    Device 1: Find Button by accessibility id: image-0
    Device 1: Click system back button

    ../views/chat_view.py:751: in send_images_with_description
        [self.get_image_by_index(i).click() for i in indexes]
    ../views/chat_view.py:751: in <listcomp>
        [self.get_image_by_index(i).click() for i in indexes]
    ../views/base_element.py:90: in click
        element = self.find_element()
    ../views/base_element.py:79: in find_element
        raise NoSuchElementException(
     Device 1: Button by accessibility id: `image-0` 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
    
    During handling of the above exception, another exception occurred:
    private_chats/test_one_to_one_chat.py:431: in test_1_1_chat_send_image_save_and_share
        self.chat_1.send_images_with_description(description=image_description, indexes=[0])
    ../views/chat_view.py:754: in send_images_with_description
        pytest.fail("Can't send image(s) with index(es) %s" % indexes)
    E   Failed: Can't send image(s) with index(es) [0]
    



    Device sessions

    Expected to fail tests (1)

    Click to expand

    Class TestCommunityMultipleDeviceMerged:

    1. test_community_one_image_send_reply_set_reaction, id: 702859

    Device 2: Looking for a message by text: description
    Device 2: Find ChatElementByText by xpath: //*[starts-with(@text,'description')]/ancestor::android.view.ViewGroup[@content-desc='chat-item']

    communities/test_community.py:527: in test_community_one_image_send_reply_set_reaction
        self.channel_2.set_reaction(message=image_description)
    ../views/chat_view.py:694: in set_reaction
        element.wait_for_element()
    ../views/base_element.py:121: in wait_for_element
        raise TimeoutException(
     Device `2`: `Button` by` accessibility id`: `reaction-thumbs-up` is not found on the screen after wait_for_element 
    

    [[Might fail from time to time as reaction are set too slowly]]

    Device sessions

    Passed tests (14)

    Click to expand

    Class TestCommunityOneDeviceMerged:

    1. test_community_copy_and_paste_message_in_chat_input, id: 702742
    Device sessions

    Class TestWalletOneDevice:

    1. test_wallet_swap_flow_mainnet, id: 741555
    Device sessions

    2. test_wallet_bridge_flow_mainnet, id: 741612
    Device sessions

    3. test_wallet_send_flow_mainnet, id: 741554
    Device sessions

    Class TestWalletMultipleDevice:

    1. test_send_eth[Arbitrum Sepolia-0.0001], id: 742015
    Device sessions

    2. test_send_eth[Status Network Sepolia-0.0002], id: 727229
    Device sessions

    Class TestWalletOneDeviceTwo:

    1. test_wallet_add_remove_regular_account, id: 727231
    Device sessions

    Class TestWalletCollectibles:

    1. test_wallet_send_collectible, id: 741840
    Device sessions

    2. test_wallet_collectibles_balance, id: 741839
    Device sessions

    3. test_wallet_collectible_send_from_expanded_info_view, id: 741841
    Device sessions

    Class TestCommunityMultipleDeviceMerged:

    1. test_community_message_delete, id: 702839
    Device sessions

    2. test_community_message_edit, id: 702843
    Device sessions

    Class TestOneToOneChatMultipleSharedDevicesNewUi:

    1. test_1_1_chat_message_reaction, id: 702730
    Device sessions

    Class TestGroupChatMultipleDeviceMergedNewUI:

    1. test_group_chat_join_send_text_messages_push, id: 702807
    Device sessions

    @status-im-auto
    Copy link
    Member

    62% of end-end tests have passed

    Total executed tests: 8
    Failed tests: 3
    Expected to fail tests: 0
    Passed tests: 5
    
    IDs of failed tests: 703391,702838,702731 
    

    Failed tests (3)

    Click to expand
  • Rerun failed tests

  • Class TestCommunityMultipleDeviceMerged:

    1. test_community_message_send_check_timestamps_sender_username, id: 702838

    Device 2: Find `Text` by `xpath`: `//android.view.ViewGroup[@content-desc='chat-item']//android.widget.TextView[contains(@text,'https://status.app/c/')]`
    Device 2: Wait for element `Button` for max 120s and click when it is available

    Test setup failed: communities/test_community.py:348: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:336: in join_community
        self.join_button.wait_and_click(120)
    ../views/base_element.py:100: in wait_and_click
        self.wait_for_visibility_of_element(sec)
    ../views/base_element.py:139: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by accessibility id:`show-request-to-join-screen-button` is not found on the screen after wait_for_visibility_of_element
    



    Device sessions

    Class TestOneToOneChatMultipleSharedDevicesNewUi:

    1. test_1_1_chat_send_image_save_and_share, id: 703391

    Device 1: Find Button by accessibility id: image-0
    Device 1: Click system back button

    ../views/chat_view.py:751: in send_images_with_description
        [self.get_image_by_index(i).click() for i in indexes]
    ../views/chat_view.py:751: in <listcomp>
        [self.get_image_by_index(i).click() for i in indexes]
    ../views/base_element.py:90: in click
        element = self.find_element()
    ../views/base_element.py:79: in find_element
        raise NoSuchElementException(
     Device 1: Button by accessibility id: `image-0` 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
    
    During handling of the above exception, another exception occurred:
    private_chats/test_one_to_one_chat.py:431: in test_1_1_chat_send_image_save_and_share
        self.chat_1.send_images_with_description(description=image_description, indexes=[0])
    ../views/chat_view.py:754: in send_images_with_description
        pytest.fail("Can't send image(s) with index(es) %s" % indexes)
    E   Failed: Can't send image(s) with index(es) [0]
    



    Device sessions

    2. test_1_1_chat_pin_messages, id: 702731

    Device 1: Looking for a pinned message by text: Message 4
    Device 1: Find Button by xpath: //*[@content-desc='pinned-messages-menu']//*[starts-with(@text,'Message 4')]

    private_chats/test_one_to_one_chat.py:267: in test_1_1_chat_pin_messages
        pinned_message.long_press_without_release()
    ../views/base_element.py:330: in long_press_without_release
        action.click_and_hold(self.find_element()).perform()
    ../views/base_element.py:79: in find_element
        raise NoSuchElementException(
     Device 1: Button by xpath: `//*[@content-desc='pinned-messages-menu']//*[starts-with(@text,'Message 4')]` 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

    Passed tests (5)

    Click to expand

    Class TestProfileMultipleDevices:

    1. test_profile_change_profile_photo, id: 741969
    Device sessions

    2. test_profile_change_username, id: 741968
    Device sessions

    Class TestWalletOneDevice:

    1. test_wallet_balance_mainnet, id: 740490
    Device sessions

    Class TestWalletMultipleDevice:

    1. test_wallet_send_erc20_from_drawer[Optimism Sepolia-USD Coin-USDC-2-0.01], id: 727230
    Device sessions

    2. test_wallet_send_erc20_from_drawer[Sepolia-USD Coin-USDC-2-0.01], id: 742016
    Device sessions

    @mariia-skrypnyk
    Copy link

    mariia-skrypnyk commented Apr 7, 2025

    Thanks @vkjr !

    Checked market-token on both platforms.
    PR can be merged from my side.

    @Francesca-G can you please look from your side?

    @mariia-skrypnyk mariia-skrypnyk moved this from IN TESTING to MERGE in Pipeline for QA Apr 7, 2025
    @mariia-skrypnyk mariia-skrypnyk moved this from MERGE to Design review in Pipeline for QA Apr 7, 2025
    @Francesca-G
    Copy link

    @vkjr here's the review 🙏

    @vkjr
    Copy link
    Contributor Author

    vkjr commented Apr 10, 2025

    @Francesca-G, thank you!

    @vkjr vkjr force-pushed the trading-token-list-item branch from 01964a8 to c38b01b Compare April 10, 2025 12:40
    @vkjr
    Copy link
    Contributor Author

    vkjr commented Apr 10, 2025

    @Francesca-G, I've fixed the horizontal padding of the counter but can't ideally center it programmatically within the border. I believe this is a common issue.
    Could you please take a look if this is okay to pass the review? :)

    CleanShot 2025-04-10 at 13 50 42

    @Francesca-G
    Copy link

    @Francesca-G, I've fixed the horizontal padding of the counter but can't ideally center it programmatically within the border. I believe this is a common issue. Could you please take a look if this is okay to pass the review? :)

    Counter looks good 👍
    if it's possible to align to baseline the 'SNT' token title text we're good to go!

    Screenshot 2025-04-11 alle 11 25 22 Screenshot 2025-04-11 alle 11 25 40

    @vkjr
    Copy link
    Contributor Author

    vkjr commented Apr 11, 2025

    @Francesca-G this is closest what I could achieve :)

    CleanShot 2025-04-11 at 11 40 30

    This is the issue on coding side of things:
    If we place 2 texts of different styles within parent view component (which is just invisible rectangle), they won't be aligned to the same baseline, as you've seen before. But distance between them can be set precisely.
    To make them share same baseline, 2 texts of different styles should be children of parent _text_component. But when implemented this way, we can't set precise distance between texts, we can only insert whitespaces :)

    So here I lined up two texts by baseline but distance between them is now "1 whitespace", not precise value in pixels.
    But I hope this is okay, wdyt?

    @Francesca-G
    Copy link

    @Francesca-G this is closest what I could achieve :)

    this looks good, thank you 🙏 nice job!

    @Francesca-G Francesca-G moved this from Design review to MERGE in Pipeline for QA Apr 11, 2025
    @vkjr
    Copy link
    Contributor Author

    vkjr commented Apr 11, 2025

    @Francesca-G, thank you!

    @vkjr vkjr force-pushed the trading-token-list-item branch from ec8c338 to 80a6f5d Compare April 11, 2025 13:33
    @vkjr vkjr merged commit fe0e685 into develop Apr 11, 2025
    5 checks passed
    @vkjr vkjr deleted the trading-token-list-item branch April 11, 2025 14:00
    @github-project-automation github-project-automation bot moved this from MERGE to DONE in Pipeline for QA Apr 11, 2025
    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

    Labels

    Projects

    Status: DONE

    Development

    Successfully merging this pull request may close these issues.

    Quo component: market token list item

    6 participants