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

Add Promesa to simplify working with promises #18767

Merged
merged 2 commits into from
Mar 4, 2024
Merged

Conversation

clauxx
Copy link
Member

@clauxx clauxx commented Feb 8, 2024

fixes #18758

Summary

This PR adds a new tool for working seamlessly with promises in clj/cljs, named promesa. As this is a follow-up to the promesa proposal/discussion PR, which describes the motivation behind this PR, I'm looking to get it in as it got some positive feedback and interest from several CCs. If merged, I will create an issue to track the migration to promesa, as it can be done incrementally.

To summarise, here's some of promesa's functionality:

  • promise chaining - (p/then, p/->, p/->>);
  • "synchronous-looking" promises, similar to async/await - (p/let);
  • concurrency, similar to Promise.all - (p/all, p/plet);
  • and others.

To read more on it, check out the introduction to working with promesa. Most of its syntax shouldn't be challenging to devs already working with clojure, as it uses familiar patterns: let, ->, ->>, (.then), etc.

Aside from adding the promesa dependency, I added a simple example to show how it's used. For a more complex example that shows the value of this addition, checkout the original promesa discussion PR.

In case you have questions/hesitations, please leave a review, I'll be happy to discuss.

Review notes

Testing notes

This PR touches the chat photo selection code, so we should make that photo selection and displaying them in the chat works as before. I tested it, but who knows.

Platforms

  • Android
  • iOS

Areas that maybe impacted

Functional
  • 1-1 chats
  • photo selection
  • messages with photos

Steps to test

  • open Status
  • login
  • open 1-1 chat
  • choose photos to send
  • send
  • assure the photos are shown in the messages

status: ready

@clauxx clauxx self-assigned this Feb 8, 2024
@clauxx clauxx requested a review from jakubgs as a code owner February 8, 2024 18:23
@status-im-auto
Copy link
Member

status-im-auto commented Feb 8, 2024

Jenkins Builds

Click to see older builds (12)
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ 5223017 #1 2024-02-08 18:30:07 ~6 min ios 📱ipa 📲
✔️ 5223017 #1 2024-02-08 18:30:16 ~6 min tests 📄log
✔️ 5223017 #1 2024-02-08 18:30:44 ~6 min android-e2e 🤖apk 📲
✔️ 5223017 #1 2024-02-08 18:33:12 ~9 min android 🤖apk 📲
✔️ 2c4cbbe #2 2024-02-21 08:21:20 ~5 min tests 📄log
✔️ 2c4cbbe #2 2024-02-21 08:23:10 ~7 min ios 📱ipa 📲
✔️ 2c4cbbe #2 2024-02-21 08:23:46 ~7 min android 🤖apk 📲
✔️ 2c4cbbe #2 2024-02-21 08:23:46 ~7 min android-e2e 🤖apk 📲
✔️ 283e323 #3 2024-03-03 12:14:05 ~6 min android-e2e 🤖apk 📲
✔️ 283e323 #3 2024-03-03 12:14:35 ~6 min tests 📄log
✔️ 283e323 #3 2024-03-03 12:15:18 ~7 min android 🤖apk 📲
✔️ 283e323 #3 2024-03-03 12:18:17 ~10 min ios 📱ipa 📲
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ 64db69b #4 2024-03-04 11:05:23 ~7 min android-e2e 🤖apk 📲
✔️ 64db69b #4 2024-03-04 11:05:39 ~7 min android 🤖apk 📲
✔️ 64db69b #4 2024-03-04 11:13:46 ~15 min ios 📱ipa 📲
✔️ 64db69b #5 2024-03-04 11:36:46 ~4 min tests 📄log
✔️ eed0a88 #5 2024-03-04 11:45:04 ~6 min android-e2e 🤖apk 📲
✔️ eed0a88 #6 2024-03-04 11:45:17 ~6 min tests 📄log
✔️ eed0a88 #5 2024-03-04 11:46:33 ~8 min android 🤖apk 📲
✔️ eed0a88 #5 2024-03-04 11:51:35 ~13 min ios 📱ipa 📲

@siddarthkay siddarthkay requested a review from a team February 9, 2024 09:29
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.

Looks good. We need to make sure that we eventually move all async callbacks to promesa going forward.

@clauxx
Copy link
Member Author

clauxx commented Feb 9, 2024

Looks good. We need to make sure that we eventually move all async callbacks to promesa going forward.

@shivekkhurana when/if merged, will make an issue to collect & track promises that are hidden behind callbacks so that anybody could get some practice using it.

Copy link
Contributor

@mohsen-ghafouri mohsen-ghafouri left a comment

Choose a reason for hiding this comment

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

Great work

Copy link
Member

@briansztamfater briansztamfater left a comment

Choose a reason for hiding this comment

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

Something definitely needed in our codebase, thanks for adding it!

Copy link
Contributor

@ilmotta ilmotta left a comment

Choose a reason for hiding this comment

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

Thank you @clauxx. I remember two other external contributors also asked if promesa was available or if they should add it.

Let's keep an eye on guidelines too. I see you changed from .then to p/then, and .catch to p/catch. Consistency is important, so if we are going in that direction, maybe soon we should have a guideline specifying to prefer to not use promises with interop. p/then for instance automatically promisifies code, which is handy.

@status-im-auto
Copy link
Member

88% of end-end tests have passed

Total executed tests: 48
Failed tests: 5
Expected to fail tests: 1
Passed tests: 42
IDs of failed tests: 702809,702782,702733,703391,703629 
IDs of expected to fail tests: 703503 

Failed tests (5)

Click to expand
  • Rerun failed tests

  • Class TestCommunityMultipleDeviceMergedTwo:

    1. test_community_markdown_support, id: 702809

    Device 1: Looking for a message by text: quote reply (one row)
    Device 2: Looking for a message by text: quote reply (one row)

    critical/chats/test_public_chat_browsing.py:979: in test_community_markdown_support
        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))]))
     italic text in underscore is not displayed with markdown in community channel for the recipient (device 1)
    



    Device sessions

    2. test_community_join_when_node_owner_offline, id: 703629

    Device 2: Looking for community: 'open community'
    Device 2: Click until Text by accessibility id: community-description-text will be presented

    critical/chats/test_public_chat_browsing.py:1177: in test_community_join_when_node_owner_offline
        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))]))
     Text "You joined “closed community”" in shown toast element doesn't match expected "You joined “open community”"
    



    Device sessions

    Class TestOneToOneChatMultipleSharedDevicesNewUi:

    1. test_1_1_chat_emoji_send_reply_and_open_link, id: 702782

    Device 1: Tap on found: SendMessageButton
    Device 2: Looking for a message by text: Test with link: https://status.im/ here should be nothing unusual.

    critical/chats/test_1_1_public_chats.py:149: in test_1_1_chat_emoji_send_reply_and_open_link
        self.chat_2.chat_element_by_text(url_message).wait_for_element(20)
    ../views/base_element.py:121: in wait_for_element
        raise TimeoutException(
     Device `2`: `ChatElementByText` by` xpath`: `//*[starts-with(@text,'Test with link: https://status.im/ here should be nothing unusual.')]/ancestor::android.view.ViewGroup[@content-desc='chat-item']` is not found on the screen after wait_for_element
    



    Device sessions

    2. test_1_1_chat_text_message_delete_push_disappear, id: 702733

    Device 2: Find Button by accessibility id: jump-to

    critical/chats/test_1_1_public_chats.py:461: in test_1_1_chat_text_message_delete_push_disappear
        self.chat_2.jump_to_card_by_text(self.username_1)
    ../views/base_view.py:658: in jump_to_card_by_text
        self.click_on_floating_jump_to()
    ../views/base_view.py:647: in click_on_floating_jump_to
        self.jump_to_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: `jump-to` 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

    3. test_1_1_chat_send_image_save_and_share, id: 703391

    Device 2: Tap on found: Button
    Device 2: Find BaseElement by accessibility id: toast-content

    critical/chats/test_1_1_public_chats.py:438: in test_1_1_chat_send_image_save_and_share
        toast_element_text = toast_element.text
    ../views/base_element.py:229: in text
        return self.find_element().text
    /home/jenkins/.local/lib/python3.10/site-packages/selenium/webdriver/remote/webelement.py:90: in text
        return self._execute(Command.GET_ELEMENT_TEXT)["value"]
    /home/jenkins/.local/lib/python3.10/site-packages/selenium/webdriver/remote/webelement.py:395: in _execute
        return self._parent.execute(command, params)
    /home/jenkins/.local/lib/python3.10/site-packages/selenium/webdriver/remote/webdriver.py:345: in execute
        self.error_handler.check_response(response)
    /home/jenkins/.local/lib/python3.10/site-packages/appium/webdriver/errorhandler.py:122: in check_response
        raise exception_class(msg=message, stacktrace=format_stacktrace(stacktrace))
     The element 'By.accessibilityId: toast-content' does not exist in DOM anymore; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#stale-element-reference-exception
    E   Stacktrace:
    E   io.appium.uiautomator2.common.exceptions.StaleElementReferenceException: The element 'By.accessibilityId: toast-content' does not exist in DOM anymore
    E   	at io.appium.uiautomator2.model.ElementsCache.restore(ElementsCache.java:117)
    E   	at io.appium.uiautomator2.model.ElementsCache.get(ElementsCache.java:153)
    E   	at io.appium.uiautomator2.handler.GetText.safeHandle(GetText.java:20)
    E   	at io.appium.uiautomator2.handler.request.SafeRequestHandler.handle(SafeRequestHandler.java:59)
    E   	at io.appium.uiautomator2.server.AppiumServlet.handleRequest(AppiumServlet.java:277)
    E   	at io.appium.uiautomator2.server.AppiumServlet.handleHttpRequest(AppiumServlet.java:271)
    E   	at io.appium.uiautomator2.http.ServerHandler.channelRead(ServerHandler.java:68)
    E   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:366)
    E   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:352)
    E   	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:345)
    E   	at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102)
    E   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:366)
    E   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:352)
    E   	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:345)
    E   	at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:435)
    E   	at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:293)
    E   	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:267)
    E   	at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:250)
    E   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:366)
    E   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:352)
    E   	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:345)
    E   	at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:266)
    E   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:366)
    E   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:352)
    E   	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:345)
    E   	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1294)
    E   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:366)
    E   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:352)
    E   	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:911)
    E   	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:131)
    E   	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:611)
    E   	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:552)
    E   	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:466)
    E   	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:438)
    E   	at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:140)
    E   	at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:144)
    E   	at java.lang.Thread.run(Thread.java:1012)
    



    Device sessions

    Expected to fail tests (1)

    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]]

    Passed tests (42)

    Click to expand

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

    1. test_activity_center_mentions, id: 702957
    Device sessions

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

    1. test_group_chat_pin_messages, id: 702732
    Device sessions

    2. test_group_chat_mute_chat, id: 703495
    Device sessions

    3. test_group_chat_send_image_save_and_share, id: 703297
    Device sessions

    4. test_group_chat_reactions, id: 703202
    Device sessions

    5. test_group_chat_join_send_text_messages_push, id: 702807
    Device sessions

    6. test_group_chat_offline_pn, id: 702808
    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 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 TestCommunityMultipleDeviceMergedTwo:

    1. test_community_hashtag_links_to_community_channels, id: 702948
    Device sessions

    2. test_community_mentions_push_notification, id: 702786
    Device sessions

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

    1. test_1_1_chat_push_emoji, id: 702813
    Device sessions

    2. test_1_1_chat_non_latin_messages_stack_update_profile_photo, id: 702745
    Device sessions

    3. test_1_1_chat_edit_message, id: 702855
    Device sessions

    4. test_1_1_chat_pin_messages, id: 702731
    Device sessions

    5. test_1_1_chat_message_reaction, id: 702730
    Device sessions

    @status-im-auto
    Copy link
    Member

    90% of end-end tests have passed

    Total executed tests: 48
    Failed tests: 4
    Expected to fail tests: 1
    Passed tests: 43
    
    IDs of failed tests: 702948,704615,703202,703629 
    
    IDs of expected to fail tests: 703503 
    

    Failed tests (4)

    Click to expand
  • Rerun failed tests

  • Class TestCommunityMultipleDeviceMerged:

    1. test_community_edit_delete_message_when_offline, id: 704615

    Device 1: Looking for a message by text: text after edit
    Device 1: Looking for a message by text: message to delete

    critical/chats/test_public_chat_browsing.py:796: in test_community_edit_delete_message_when_offline
        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))]))
     Message 'message to delete' was not deleted for the receiver
    



    Device sessions

    Class TestCommunityMultipleDeviceMergedTwo:

    1. test_community_hashtag_links_to_community_channels, id: 702948

    Device 2: Find Text by xpath: //android.view.ViewGroup[@content-desc='chat-item']//android.widget.TextView[contains(@text,'#cats')]
    Device 2: Looking for a message by text: it is just a message text

    critical/chats/test_public_chat_browsing.py:1090: in test_community_hashtag_links_to_community_channels
        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))]))
     Not all channels are shown in community before joining: ['dogs', 'cats']
    



    Device sessions

    2. test_community_join_when_node_owner_offline, id: 703629

    Device 2: Looking for community: 'open community'
    Device 2: Click until Text by accessibility id: community-description-text will be presented

    critical/chats/test_public_chat_browsing.py:1177: in test_community_join_when_node_owner_offline
        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))]))
     Text "You joined “closed community”" in shown toast element doesn't match expected "You joined “open community”"
    



    Device sessions

    Class TestGroupChatMultipleDeviceMergedNewUI:

    1. test_group_chat_reactions, id: 703202

    Device 1: Find EmojisNumber by xpath: //*[starts-with(@text,'This is a test message to check some reactions.')]/ancestor::android.view.ViewGroup[@content-desc='chat-item']/../..//*[@content-desc='emoji-reaction-2']/android.widget.TextView[2]
    Device 1: Find EmojisNumber by xpath: //*[starts-with(@text,'This is a test message to check some reactions.')]/ancestor::android.view.ViewGroup[@content-desc='chat-item']/../..//*[@content-desc='emoji-reaction-2']/android.widget.TextView[2]

    critical/chats/test_group_chat.py:119: in test_group_chat_reactions
        message_element.emojis_below_message(emoji="thumbs-up").wait_for_element_text(2)
    ../views/base_element.py:182: in wait_for_element_text
        self.driver.fail(message if message else "`%s` is not equal to expected `%s` in %s sec" % (
    base_test_case.py:179: in fail
        pytest.fail('Device %s: %s' % (self.number, text))
     Device 1: `1` is not equal to expected `2` in 30 sec
    



    Device sessions

    Expected to fail tests (1)

    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]]

    Passed tests (43)

    Click to expand

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

    Class TestCommunityMultipleDeviceMergedTwo:

    1. test_community_markdown_support, id: 702809
    Device sessions

    2. test_community_mentions_push_notification, id: 702786
    Device sessions

    3. test_community_leave, id: 702845
    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 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 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 TestDeepLinksOneDevice:

    1. test_links_open_universal_links_from_chat, id: 704613
    Device sessions

    2. test_links_deep_links, id: 702775
    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_mute_chat, id: 703495
    Device sessions

    3. test_group_chat_send_image_save_and_share, id: 703297
    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

    @pavloburykh
    Copy link
    Contributor

    @clauxx thanks for the PR. Ready for merge.

    clauxx added 2 commits March 4, 2024 13:37
    Signed-off-by: Cristian Lungu <lungucristian95@gmail.com>
    Signed-off-by: Cristian Lungu <lungucristian95@gmail.com>
    @clauxx clauxx force-pushed the cl-add-promesa-lib branch from 64db69b to eed0a88 Compare March 4, 2024 11:38
    @clauxx clauxx merged commit f8cd142 into develop Mar 4, 2024
    6 checks passed
    @clauxx clauxx deleted the cl-add-promesa-lib branch March 4, 2024 11:59
    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.

    Fix how we deal with promises in the app