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

feat: statusgo filter optimizations (not to merge) #20601

Closed
wants to merge 2 commits into from

Conversation

chaitanyaprem
Copy link
Contributor

@chaitanyaprem chaitanyaprem commented Jul 1, 2024

Summary

This PR is not to be merged, but only to be used for dogfooding.
This is based on status-im/status-go#5440

Affected areas

LightClient/Mode filter subscriptions.

Testing notes

LightClient dogfooding

To enable light-client, go to Profile --> Advanced and select "Light Client". This will require an app restart.

Dogfooding steps and things to look for in lightClient:

  • Login normally, and make sure you enable Node Management and Debug in Advanced Settings.
  • Make sure you got some peers connected in Node Management tab
  • Run tests by being part of community , 1:1 chats, private group chats etc
  • Disconnect from the internet, wait until the peer count goes to 0.
  • Connect to the internet, You should reconnect to some peers in sometime. (Note that it takes some time for peers to be connected - this needs fixing)
  • Test reception of messages on 1:1 chat, groups and community
  • Leave it running and ensure no issues in send/receive messages

Note : Do wait for 30-60 seconds for all filter subscriptions to stabilize after logging in or starting the app, until then you may notice a latency in receiving messages.

cc @pavloburykh Can we get some e2e and manual testing of lightClient done for this PR?

@chaitanyaprem chaitanyaprem self-assigned this Jul 1, 2024
@status-im-auto
Copy link
Member

status-im-auto commented Jul 1, 2024

Jenkins Builds

Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ 5349741 #1 2024-07-01 06:36:20 ~5 min tests 📄log
✔️ 5349741 #1 2024-07-01 06:38:15 ~7 min android-e2e 🤖apk 📲
✔️ 5349741 #1 2024-07-01 06:40:04 ~9 min android 🤖apk 📲
✔️ 5349741 #1 2024-07-01 06:40:59 ~10 min ios 📱ipa 📲

@status-im-auto
Copy link
Member

86% of end-end tests have passed

Total executed tests: 51
Failed tests: 4
Expected to fail tests: 3
Passed tests: 44
IDs of failed tests: 727230,704613,727229,702775 
IDs of expected to fail tests: 703495,727232,703629 

Failed tests (4)

Click to expand
  • Rerun failed tests

  • Class TestWalletMultipleDevice:

    1. test_wallet_send_asset_from_drawer, id: 727230

    Device 1: Find `Button` by `accessibility id`: `top-bar`
    Device 2: Find `Button` by `accessibility id`: `top-bar`

    critical/test_wallet.py:173: in test_wallet_send_asset_from_drawer
        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))]))
     Sender balance is not updated on Etherscan, it is 0.0032896522 but expected to be 0.0032917522000000003
    



    2. test_wallet_send_eth, id: 727229

    Device 2: Find Button by accessibility id: top-bar
    Device 1: Find Button by accessibility id: top-bar

    critical/test_wallet.py:147: in test_wallet_send_eth
        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))]))
     Sender balance is not updated on Etherscan, it is 0.0033917522 but expected to be 0.0033938522000000002
    E    Receiver balance is not updated on Etherscan, it is 0.0007926677 but expected to be 0.0007926677000000001
    



    Class TestDeepLinksOneDevice:

    1. test_links_open_universal_links_from_chat, id: 704613

    Device 1: Find Text by xpath: //android.view.ViewGroup[@content-desc='chat-item']//android.widget.TextView[contains(@text,'https://status.app/c/GzAAAORtwyW4xNWM4td0F7hOnYZ1apSqCCRUUR0qxD19n3Ec97fX_aIVIGFWbdUM#zQ3shk6dgK8dYWWSC4m8Jj5c91zyfhfj1fFkgypS8D9gsXkrK')]

    critical/test_deep_and_universal_links.py:71: 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/GzwAAGS9TbI9CiYaoZj0TRNelWAPwk8gSHIEmqgqb0ADPw5rnFvk6bp_n3BlZxVMshmxFyI=#zQ3shkrmSmwb66sw2EuUvC5iqiNqEeevTfjtks3p8ZaaCYoNj
    E    Community 'Closed community' was not requested to join by the url https://status.app/c/GzAAAORtwyW4xNWM4td0F7hOnYZ1apSqCCRUUR0qxD19n3Ec97fX_aIVIGFWbdUM#zQ3shk6dgK8dYWWSC4m8Jj5c91zyfhfj1fFkgypS8D9gsXkrK
    



    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:115: 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/GzwAAGS9TbI9CiYaoZj0TRNelWAPwk8gSHIEmqgqb0ADPw5rnFvk6bp_n3BlZxVMshmxFyI=#zQ3shkrmSmwb66sw2EuUvC5iqiNqEeevTfjtks3p8ZaaCYoNj
    E    Community 'Closed community' was not requested to join by the deep link status.app://c/GzAAAORtwyW4xNWM4td0F7hOnYZ1apSqCCRUUR0qxD19n3Ec97fX_aIVIGFWbdUM#zQ3shk6dgK8dYWWSC4m8Jj5c91zyfhfj1fFkgypS8D9gsXkrK
    



    Device sessions

    Expected to fail tests (3)

    Click to expand

    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:256: 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' 
    

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

    Device sessions

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

    Class TestCommunityMultipleDeviceMergedTwo:

    1. test_community_join_when_node_owner_offline, id: 703629

    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

    critical/chats/test_public_chat_browsing.py:1158: in test_community_join_when_node_owner_offline
        self.community_2.join_community(open_community=False)
    ../views/chat_view.py:420: 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:147: 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 
    

    [[Can't enter channel after community is fetched for the first time, https://github.com//issues/20395]]

    Device sessions

    Passed tests (44)

    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_discovery, id: 703503
    Device sessions

    4. test_community_undo_delete_message, id: 702869
    Device sessions

    5. test_community_navigate_to_channel_when_relaunch, id: 702846
    Device sessions

    6. test_community_mute_community_and_channel, id: 703382
    Device sessions

    Class TestActivityMultipleDevicePR:

    1. test_activity_center_reply_read_unread_delete_filter_swipe, id: 702947
    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

    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 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_join_send_text_messages_push, id: 702807
    Device sessions

    5. 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 TestWalletOneDevice:

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

    @pavloburykh
    Copy link
    Contributor

    pavloburykh commented Jul 1, 2024

    @chaitanyaprem thank you for the PR.

    I have performed manual testing of the PR. Overall message delivery seems to be +- okay, e2e results are okay as well. Although I have also noticed message delivery delays in the following scenario:

    Preconditions: mobile Users A, B, C members of the same community

    Steps:

    1. User A goes offline (logout the app)
    2. User B sends batch of messages in community and goes offline
    3. User C sends batch of messages and goes offline
    4. User A logins the app and checks if messages are received

    Actual result: some messages from User B are not received. Subsequently all messages are delivered but after some re-logins by User A (receiver) and User B (sender). This is not something I am reproducible all the time
    At the same time, when both receiver and sender are online during messages, data delivery works as expected.

    Below are logs from todays manual testing session, you can check them, maybe you will something suspicious.

    User_A_light_client.zip
    User_B_light_client.zip
    User_C_light_client.zip

    @pavloburykh
    Copy link
    Contributor

    @chaitanyaprem I would not block the PR by the issue above. But if you will see some issues in logs and will decide to push fixes - please, let me know so I re-test the PR. Otherwise it is ready for merge from mobile perspective.

    @chaitanyaprem
    Copy link
    Contributor Author

    Closing this PR as testing and dogfooding is done and issues reported are not related to the changes in this PR.

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

    Successfully merging this pull request may close these issues.

    3 participants