Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

fix: entering two zeros in a row in the 'Amount' field in wallet #19911

Merged
merged 1 commit into from
May 9, 2024

Conversation

OmarBasem
Copy link
Contributor

@OmarBasem OmarBasem commented May 6, 2024

fixes: #19908

This PR fixes an issue that caused a crash when typing zeroes in the input amout on the send screen.

Skipping QA as it is a simple fix.

Demo:

Screen_Recording_20240506_162100_Status.mp4

@OmarBasem OmarBasem self-assigned this May 6, 2024
@OmarBasem OmarBasem requested review from vkjr, J-Son89 and a team May 6, 2024 12:24
@OmarBasem
Copy link
Contributor Author

Simple fix, I think can skip QA

cc @J-Son89

@status-im-auto
Copy link
Member

status-im-auto commented May 6, 2024

Jenkins Builds

Click to see older builds (10)
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ ab02dc0 #1 2024-05-06 12:28:37 ~4 min tests 📄log
✔️ ab02dc0 #1 2024-05-06 12:31:59 ~8 min android-e2e 🤖apk 📲
✔️ ab02dc0 #1 2024-05-06 12:32:14 ~8 min android 🤖apk 📲
✔️ ab02dc0 #1 2024-05-06 12:33:00 ~9 min ios 📱ipa 📲
✔️ 6ffd820 #2 2024-05-08 09:17:02 ~6 min android-e2e 🤖apk 📲
✔️ 6ffd820 #2 2024-05-08 09:20:27 ~10 min ios 📱ipa 📲
6ffd820 #2 2024-05-08 09:21:02 ~10 min tests 📄log
6ffd820 #2 2024-05-08 09:21:06 ~10 min android 📄log
✔️ 6ffd820 #3 2024-05-08 09:34:08 ~4 min tests 📄log
✔️ 6ffd820 #3 2024-05-08 09:39:31 ~6 min android 🤖apk 📲
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ 72b1135 #3 2024-05-08 11:38:26 ~6 min android-e2e 🤖apk 📲
✔️ 72b1135 #4 2024-05-08 11:38:36 ~6 min tests 📄log
✔️ 72b1135 #4 2024-05-08 11:41:59 ~9 min android 🤖apk 📲
✔️ 72b1135 #3 2024-05-08 11:43:42 ~11 min ios 📱ipa 📲
✔️ b55b35f #5 2024-05-09 08:03:56 ~4 min tests 📄log
✔️ b55b35f #4 2024-05-09 08:07:31 ~8 min android-e2e 🤖apk 📲
✔️ b55b35f #5 2024-05-09 08:07:43 ~8 min android 🤖apk 📲
✔️ b55b35f #4 2024-05-09 08:07:57 ~8 min ios 📱ipa 📲

@@ -78,9 +78,10 @@

(defn add-character
[state character]
(when (can-add-character? state character)
(if (can-add-character? state character)
Copy link
Contributor

Choose a reason for hiding this comment

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

is this all to handle the custom keyboard?
We should really raise this with the design team as something to reconsider as it seems to be a bug factory that we could easily avoid :)

Copy link
Contributor

Choose a reason for hiding this comment

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

also this looks good but since this is in /common/ I wonder is this code used elsewhere and if so is this the expected behaviour for these uses?

Copy link
Contributor Author

@OmarBasem OmarBasem May 6, 2024

Choose a reason for hiding this comment

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

is this all to handle the custom keyboard?

@J-Son89 Yes 🤷‍♂️

We should really raise this with the design team as something to reconsider as it seems to be a bug factory

Agreed! I think @vkjr worked on this, maybe he can share his thoughts also (and maybe @ulisesmac)

also this looks good but since this is in /common/

It is used in the send screen only.
The fix here is to return the same state if the character cannot be added. Previously was returning nil hence the crash.

Copy link
Contributor

Choose a reason for hiding this comment

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

yeah let's collate of all the lists and issues this brings in. I believe it's also a big takeaway from accessibility of the end user. @shivekkhurana was discussing something like this before.

Copy link
Contributor

Choose a reason for hiding this comment

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

Hey!
I just found this discussion since was on vacation.
Yes, if we continue to use custom keyboard, the controlled-input will be reused everywhere, this is the idea. But if in general we can reconsider using custom keyboard - I think it is even better)

@mariia-skrypnyk
Copy link

Hi @OmarBasem !

I am moving back your PR to the corresponding column as it doesn't meet the requirements outlined here:
https://github.com/status-im/status-mobile/blob/develop/doc/pipeline_process.md

Please, make sure your fix should/shouldn't be tested by QA's and add necessary information to PR's description.
Thanks! 🙏

@OmarBasem
Copy link
Contributor Author

Thanks @mariia-skrypnyk, updated the description.

@mariia-skrypnyk
Copy link

Thanks @mariia-skrypnyk, updated the description.

Thanks @OmarBasem for adding label and description! 🙌🤗

@mariia-skrypnyk
Copy link

Will review e2e and let you know! @OmarBasem

@status-im-auto
Copy link
Member

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,702782,704613,727229,702807,727232,702775 
IDs of expected to fail tests: 703495,703503 

Failed tests (7)

Click to expand
  • Rerun failed tests

  • 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

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

    1. test_1_1_chat_emoji_send_reply_and_open_link, id: 702782

    Device 2: Find OpenInStatusButton by xpath: //*[@text="Open in Status"]
    Device 2: Tap on found: OpenInStatusButton

    critical/chats/test_1_1_public_chats.py:179: in test_1_1_chat_emoji_send_reply_and_open_link
        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))]))
     Reply for 'Test with link: https://status.im/ here should be nothing unusual.' not present in message received in public chat
    



    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 (43)

    Click to expand

    Class TestActivityMultipleDevicePRTwo:

    1. test_activity_center_mentions, id: 702957
    Device sessions

    2. test_activity_center_admin_notification_accept_swipe, id: 702958
    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 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 TestWalletOneDevice:

    1. test_wallet_add_remove_regular_account, id: 727231
    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 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 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_text_message_delete_push_disappear, id: 702733
    Device sessions

    2. test_1_1_chat_push_emoji, id: 702813
    Device sessions

    3. test_1_1_chat_non_latin_messages_stack_update_profile_photo, id: 702745
    Device sessions

    4. test_1_1_chat_edit_message, id: 702855
    Device sessions

    5. test_1_1_chat_send_image_save_and_share, id: 703391
    Device sessions

    6. test_1_1_chat_pin_messages, id: 702731
    Device sessions

    7. test_1_1_chat_message_reaction, id: 702730
    Device sessions

    @status-im status-im deleted a comment from status-im-auto May 8, 2024
    @status-im status-im deleted a comment from status-im-auto May 8, 2024
    @OmarBasem
    Copy link
    Contributor Author

    Hey @mariia-skrypnyk, is this good to merge?

    @mariia-skrypnyk
    Copy link

    Hey @OmarBasem !

    Thanks for your patience! Just needed to manually check some moments.
    Yes, please merge.
    Good job! 👍

    @OmarBasem OmarBasem merged commit 7f40f41 into develop May 9, 2024
    6 checks passed
    @OmarBasem OmarBasem deleted the fix/send-zero branch May 9, 2024 08:23
    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.

    Error when entering two zeros in a row in the 'Amount' field in wallet
    5 participants