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

Set up skeleton for communities request to join #18030

Merged

Conversation

cammellos
Copy link
Contributor

This commit sets up a feature toggled (disabled) skeleton for the work on account selection for the community.

I have tested both paths and it shows the right modal if the toggle is on or off.

I wasn't able to actually join a community (the request was staying at pending in both cases 🤒 ), but I don't believe there's anything wrong with this code, I will take a look, but that's a separate issue.

This will skip manual QA, since it's a minor change and doesn't impact production (cc @churik, if you are ok with it), but could either @ilmotta @FFFra @ajayesivan @yqrashawn validate the behavior?

I kept it to a minimum and removed everything but the cancel/request to join button, in order to have a full flow.

@status-im-auto
Copy link
Member

status-im-auto commented Nov 30, 2023

Jenkins Builds

Commit #️⃣ Finished (UTC) Duration Platform Result
b12f1a4 #1 2023-11-30 08:08:30 ~3 min tests 📄log
✔️ b12f1a4 #1 2023-11-30 08:12:20 ~7 min android-e2e 🤖apk 📲
✔️ b12f1a4 #1 2023-11-30 08:12:44 ~7 min android 🤖apk 📲
✔️ b12f1a4 #1 2023-11-30 08:18:28 ~13 min ios 📱ipa 📲
✔️ c4256e9 #2 2023-11-30 08:41:39 ~6 min ios 📱ipa 📲
✔️ c4256e9 #2 2023-11-30 08:42:13 ~7 min android-e2e 🤖apk 📲
✔️ c4256e9 #2 2023-11-30 08:42:17 ~7 min android 🤖apk 📲
✔️ c4256e9 #2 2023-11-30 08:45:52 ~10 min tests 📄log

Copy link
Contributor

@ajayesivan ajayesivan left a comment

Choose a reason for hiding this comment

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

Behavior verified ✅

@ajayesivan
Copy link
Contributor

Community requests are working for me.

@yqrashawn
Copy link
Contributor

added a lint fix commit

@cammellos
Copy link
Contributor Author

Community requests are working for me.

@ajayesivan can you join a community on both sides?
I can send the request, but then it's always on pending

@ajayesivan
Copy link
Contributor

For me, the pending state changes to joined after a few seconds.

@status-im-auto
Copy link
Member

71% of end-end tests have passed

Total executed tests: 48
Failed tests: 11
Expected to fail tests: 3
Passed tests: 34
IDs of failed tests: 702809,703133,703495,702948,703297,703202,702786,702807,702808,702845,703629 
IDs of expected to fail tests: 702732,703503,702731 

Failed tests (11)

Click to expand
  • Rerun failed tests

  • Class TestCommunityOneDeviceMerged:

    1. test_restore_multiaccount_with_waku_backup_remove_switch, id: 703133

    Device 1: Find `Button` by `accessibility id`: `show-profiles`
    Device 1: Tap on found: Button

    critical/chats/test_public_chat_browsing.py:273: in test_restore_multiaccount_with_waku_backup_remove_switch
        self.errors.verify_no_errors()
    base_test_case.py:191: in verify_no_errors
        pytest.fail('\n '.join([self.errors.pop(0) for _ in range(len(self.errors))]))
     Incorrect contacts number restored: 0 instead of 2
    E    member_open was not restored from waku-backup!!
    E    admin_closed was not restored from waku-backup!!
    E    member_closed was not restored from waku-backup!!
    



    Device sessions

    Class TestGroupChatMultipleDeviceMergedNewUI:

    1. test_group_chat_mute_chat, id: 703495

    Test setup failed: ../views/home_view.py:382: in handle_contact_request
        chat_element.accept_contact_request()
    ../views/home_view.py:150: in accept_contact_request
        self.handle_cr("accept-contact-request")
    ../views/home_view.py:147: in handle_cr
        ).wait_for_rendering_ended_and_click()
    ../views/base_element.py:155: in wait_for_rendering_ended_and_click
        self.click()
    ../views/base_element.py:90: in click
        self.find_element().click()
    ../views/base_element.py:79: in find_element
        raise NoSuchElementException(
     Device 2: Button by xpath: `//*[contains(@text, 'user admin')]/ancestor::*[@content-desc='activity']/*[@content-desc="accept-contact-request"]` 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:
    critical/chats/test_group_chat.py:54: in prepare_devices
        self.loop.run_until_complete(
    /usr/lib/python3.10/asyncio/base_events.py:649: in run_until_complete
        return future.result()
    __init__.py:44: 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)
    ../views/home_view.py:392: in handle_contact_request
        self.driver.fail("No contact request received from %s" % username)
    base_test_case.py:179: in fail
        pytest.fail('Device %s: %s' % (self.number, text))
    E   Failed: Device 2: No contact request received from user admin
    



    2. test_group_chat_send_image_save_and_share, id: 703297

    Test setup failed: ../views/home_view.py:382: in handle_contact_request
        chat_element.accept_contact_request()
    ../views/home_view.py:150: in accept_contact_request
        self.handle_cr("accept-contact-request")
    ../views/home_view.py:147: in handle_cr
        ).wait_for_rendering_ended_and_click()
    ../views/base_element.py:155: in wait_for_rendering_ended_and_click
        self.click()
    ../views/base_element.py:90: in click
        self.find_element().click()
    ../views/base_element.py:79: in find_element
        raise NoSuchElementException(
     Device 2: Button by xpath: `//*[contains(@text, 'user admin')]/ancestor::*[@content-desc='activity']/*[@content-desc="accept-contact-request"]` 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:
    critical/chats/test_group_chat.py:54: in prepare_devices
        self.loop.run_until_complete(
    /usr/lib/python3.10/asyncio/base_events.py:649: in run_until_complete
        return future.result()
    __init__.py:44: 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)
    ../views/home_view.py:392: in handle_contact_request
        self.driver.fail("No contact request received from %s" % username)
    base_test_case.py:179: in fail
        pytest.fail('Device %s: %s' % (self.number, text))
    E   Failed: Device 2: No contact request received from user admin
    



    3. test_group_chat_reactions, id: 703202

    Test setup failed: ../views/home_view.py:382: in handle_contact_request
        chat_element.accept_contact_request()
    ../views/home_view.py:150: in accept_contact_request
        self.handle_cr("accept-contact-request")
    ../views/home_view.py:147: in handle_cr
        ).wait_for_rendering_ended_and_click()
    ../views/base_element.py:155: in wait_for_rendering_ended_and_click
        self.click()
    ../views/base_element.py:90: in click
        self.find_element().click()
    ../views/base_element.py:79: in find_element
        raise NoSuchElementException(
     Device 2: Button by xpath: `//*[contains(@text, 'user admin')]/ancestor::*[@content-desc='activity']/*[@content-desc="accept-contact-request"]` 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:
    critical/chats/test_group_chat.py:54: in prepare_devices
        self.loop.run_until_complete(
    /usr/lib/python3.10/asyncio/base_events.py:649: in run_until_complete
        return future.result()
    __init__.py:44: 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)
    ../views/home_view.py:392: in handle_contact_request
        self.driver.fail("No contact request received from %s" % username)
    base_test_case.py:179: in fail
        pytest.fail('Device %s: %s' % (self.number, text))
    E   Failed: Device 2: No contact request received from user admin
    



    4. test_group_chat_join_send_text_messages_push, id: 702807

    Device 2: Tap on found: Button
    Device 2: Attempt 0 is successful clicking close-activity-center

    Test setup failed: ../views/home_view.py:382: in handle_contact_request
        chat_element.accept_contact_request()
    ../views/home_view.py:150: in accept_contact_request
        self.handle_cr("accept-contact-request")
    ../views/home_view.py:147: in handle_cr
        ).wait_for_rendering_ended_and_click()
    ../views/base_element.py:155: in wait_for_rendering_ended_and_click
        self.click()
    ../views/base_element.py:90: in click
        self.find_element().click()
    ../views/base_element.py:79: in find_element
        raise NoSuchElementException(
     Device 2: Button by xpath: `//*[contains(@text, 'user admin')]/ancestor::*[@content-desc='activity']/*[@content-desc="accept-contact-request"]` 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:
    critical/chats/test_group_chat.py:54: in prepare_devices
        self.loop.run_until_complete(
    /usr/lib/python3.10/asyncio/base_events.py:649: in run_until_complete
        return future.result()
    __init__.py:44: 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)
    ../views/home_view.py:392: in handle_contact_request
        self.driver.fail("No contact request received from %s" % username)
    base_test_case.py:179: in fail
        pytest.fail('Device %s: %s' % (self.number, text))
    E   Failed: Device 2: No contact request received from user admin
    



    Device sessions

    5. test_group_chat_offline_pn, id: 702808

    Test setup failed: ../views/home_view.py:382: in handle_contact_request
        chat_element.accept_contact_request()
    ../views/home_view.py:150: in accept_contact_request
        self.handle_cr("accept-contact-request")
    ../views/home_view.py:147: in handle_cr
        ).wait_for_rendering_ended_and_click()
    ../views/base_element.py:155: in wait_for_rendering_ended_and_click
        self.click()
    ../views/base_element.py:90: in click
        self.find_element().click()
    ../views/base_element.py:79: in find_element
        raise NoSuchElementException(
     Device 2: Button by xpath: `//*[contains(@text, 'user admin')]/ancestor::*[@content-desc='activity']/*[@content-desc="accept-contact-request"]` 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:
    critical/chats/test_group_chat.py:54: in prepare_devices
        self.loop.run_until_complete(
    /usr/lib/python3.10/asyncio/base_events.py:649: in run_until_complete
        return future.result()
    __init__.py:44: 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)
    ../views/home_view.py:392: in handle_contact_request
        self.driver.fail("No contact request received from %s" % username)
    base_test_case.py:179: in fail
        pytest.fail('Device %s: %s' % (self.number, text))
    E   Failed: Device 2: No contact request received from user admin 
    

    [[Data delivery issue]]

    Class TestCommunityMultipleDeviceMergedTwo:

    1. test_community_markdown_support, id: 702809

    Test setup failed: critical/chats/test_public_chat_browsing.py:811: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:427: in join_community
        self.join_button.click()
    ../views/base_element.py:90: in click
        self.find_element().click()
    ../views/base_element.py:79: in find_element
        raise NoSuchElementException(
     Device 2: Button by accessibility id: `show-request-to-join-screen-button` 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_community_hashtag_links_to_community_channels, id: 702948

    Test setup failed: critical/chats/test_public_chat_browsing.py:811: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:427: in join_community
        self.join_button.click()
    ../views/base_element.py:90: in click
        self.find_element().click()
    ../views/base_element.py:79: in find_element
        raise NoSuchElementException(
     Device 2: Button by accessibility id: `show-request-to-join-screen-button` 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
    



    3. test_community_mentions_push_notification, id: 702786

    Device 2: Joining community
    Device 2: Find Button by accessibility id: show-request-to-join-screen-button

    Test setup failed: critical/chats/test_public_chat_browsing.py:811: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:427: in join_community
        self.join_button.click()
    ../views/base_element.py:90: in click
        self.find_element().click()
    ../views/base_element.py:79: in find_element
        raise NoSuchElementException(
     Device 2: Button by accessibility id: `show-request-to-join-screen-button` 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

    4. test_community_leave, id: 702845

    Test setup failed: critical/chats/test_public_chat_browsing.py:811: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:427: in join_community
        self.join_button.click()
    ../views/base_element.py:90: in click
        self.find_element().click()
    ../views/base_element.py:79: in find_element
        raise NoSuchElementException(
     Device 2: Button by accessibility id: `show-request-to-join-screen-button` 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
    



    5. test_community_join_when_node_owner_offline, id: 703629

    Test setup failed: critical/chats/test_public_chat_browsing.py:811: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:427: in join_community
        self.join_button.click()
    ../views/base_element.py:90: in click
        self.find_element().click()
    ../views/base_element.py:79: in find_element
        raise NoSuchElementException(
     Device 2: Button by accessibility id: `show-request-to-join-screen-button` 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
    



    Expected to fail tests (3)

    Click to expand

    Class TestOneToOneChatMultipleSharedDevicesNewUi:

    1. test_1_1_chat_pin_messages, id: 702731

    Test is not run, e2e blocker  
    

    [[reason: [NOTRUN] Pin feature is in development]]

    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_pin_messages, id: 702732

    Test is not run, e2e blocker  
    

    [[reason: [NOTRUN] Pin feature is in development]]

    Passed tests (34)

    Click to expand

    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_open_universal_links_from_other_apps, id: 704614
    Device sessions

    3. test_links_deep_links, id: 702775
    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_message_reaction, id: 702730
    Device sessions

    Class TestCommunityOneDeviceMerged:

    1. test_community_copy_and_paste_message_in_chat_input, id: 702742
    Device sessions

    2. test_community_undo_delete_message, id: 702869
    Device sessions

    3. test_community_navigate_to_channel_when_relaunch, id: 702846
    Device sessions

    4. test_community_mute_community_and_channel, id: 703382
    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_message_delete, id: 702839
    Device sessions

    7. test_community_message_send_check_timestamps_sender_username, id: 702838
    Device sessions

    8. test_community_links_with_previews_github_youtube_twitter_gif_send_enable, id: 702844
    Device sessions

    9. test_community_message_edit, id: 702843
    Device sessions

    10. test_community_unread_messages_badge, id: 702841
    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 TestActivityMultipleDevicePRTwo:

    1. test_activity_center_mentions, id: 702957
    Device sessions

    2. test_activity_center_admin_notification_accept_swipe, id: 702958
    Device sessions

    @ajayesivan
    Copy link
    Contributor

    @cammellos When the community has any type of token permission set for a channel or member, the request-to-join bottom sheet is skipped. Instead, the password prompt is displayed directly, irrespective of the state of the flag.

    @FFFra
    Copy link
    Contributor

    FFFra commented Nov 30, 2023

    Thank you so much, @cammellos. Im also on this and will ping back

    @FFFra
    Copy link
    Contributor

    FFFra commented Nov 30, 2023

    @cammellos Regarding this:

    I wasn't able to actually join a community (the request was staying at pending in both cases 🤒 ), but I don't believe there's anything wrong with this code, I will take a look, but that's a separate issue.

    Happened the same to me at first test and it was "fixed" after restarting the desktop. The toggle workes perfectly! Thank you again!

    @cammellos
    Copy link
    Contributor Author

    @cammellos When the community has any type of token permission set for a channel or member, the request-to-join bottom sheet is skipped. Instead, the password prompt is displayed directly, irrespective of the state of the flag.

    @ajayesivan yes, that's correct, it's also for non-token gated communities, which is what we were focusing on for the time being

    @cammellos cammellos force-pushed the chore/setup-community-accounts-selection-skeleton branch from c4256e9 to d412fa3 Compare November 30, 2023 09:49
    @cammellos cammellos merged commit d412fa3 into develop Nov 30, 2023
    2 checks passed
    @cammellos cammellos deleted the chore/setup-community-accounts-selection-skeleton branch November 30, 2023 09:50
    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.

    5 participants