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

Quo Wallet/Approval-Label Component #20117

Merged
merged 1 commit into from
May 22, 2024
Merged

Conversation

ajayesivan
Copy link
Contributor

fixes #20081

Summary

Implements the Wallet/Approval Label component

Testing notes

Manual QA can be skipped since this PR only adds a quo component and doesn't introduce any changes outside Quo Preview.

Platforms

  • Android
  • iOS

Areas that maybe impacted

None

Steps to test

Quo Preview -> Wallet -> Approval Label

Screenshots

Android

Light theme Dark theme

iOS

Light theme Dark theme

status: ready

@status-im-auto
Copy link
Member

status-im-auto commented May 20, 2024

Jenkins Builds

Click to see older builds (8)
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ 4a9d7bf #1 2024-05-20 18:29:00 ~4 min tests 📄log
✔️ 4a9d7bf #1 2024-05-20 18:30:53 ~6 min android-e2e 🤖apk 📲
✔️ 4a9d7bf #1 2024-05-20 18:32:08 ~7 min android 🤖apk 📲
✔️ 4a9d7bf #1 2024-05-20 18:33:19 ~8 min ios 📱ipa 📲
✔️ 2fb28c8 #2 2024-05-21 04:32:57 ~4 min tests 📄log
✔️ 2fb28c8 #2 2024-05-21 04:35:40 ~6 min android 🤖apk 📲
✔️ 2fb28c8 #2 2024-05-21 04:35:48 ~7 min android-e2e 🤖apk 📲
✔️ 2fb28c8 #2 2024-05-21 04:37:13 ~8 min ios 📱ipa 📲
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ faf9126 #4 2024-05-21 12:01:02 ~4 min tests 📄log
✔️ faf9126 #4 2024-05-21 12:03:18 ~6 min android-e2e 🤖apk 📲
✔️ faf9126 #4 2024-05-21 12:03:19 ~6 min android 🤖apk 📲
✔️ faf9126 #4 2024-05-21 12:06:43 ~9 min ios 📱ipa 📲
✔️ 6e6d2bd #5 2024-05-22 07:52:57 ~6 min android-e2e 🤖apk 📲
✔️ 6e6d2bd #5 2024-05-22 07:53:36 ~6 min tests 📄log
✔️ 6e6d2bd #5 2024-05-22 07:54:54 ~7 min android 🤖apk 📲
✔️ 6e6d2bd #5 2024-05-22 07:55:46 ~8 min ios 📱ipa 📲

Comment on lines +38 to +41
:borderBottomStartRadius 16
:borderBottomEndRadius 16}]
Copy link
Member

Choose a reason for hiding this comment

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

Can we use kebab-case here?

Copy link
Member

Choose a reason for hiding this comment

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

I think we need to set hole view up properly, or else it's just weird 👽

Copy link
Contributor Author

Choose a reason for hiding this comment

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

As far as I understand, Reagent doesn't automatically convert kebab-case to camelCase for nested maps. Therefore, we need to use camelCase here. I'm not sure about the best way to fix this.

cc: @ilmotta

Copy link
Member

Choose a reason for hiding this comment

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

@ajayesivan have you tried using it with kebab-case? I believe it should work

    [hole-view/hole-view
     {:holes     [{:x                       0
                   :y                       0
                   :height                  style/top-hole-view-height
                   :width                   container-width
                   :border-bottom-start-radius 16
                   :border-bottom-end-radius   16}]

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yes. I tried and it doesn't work.

Copy link
Member

Choose a reason for hiding this comment

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

Oh that's right.. we are trying to change the case of a nested value not the prop key

Copy link
Contributor

Choose a reason for hiding this comment

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

@ajayesivan, @OmarBasem We could definitely solve this problem in an elegant (automatic) way, but having a general solution for this problem would likely mean a tradeoff in performance, which we're not very keen of. On the other hand, given these nested props rarely appear and could be in a limited allowlist of "transformable keys" and that transformed keys are cached, it could be that the solution provided by a custom Reagent compiler would perform just as well as the current solution now (btw there's a proper Reagent compiler protocol).

I think it's more a matter of effort than anything else. Given our priorities and that hole props don't appear very often in the codebase, it doesn't make much sense to invest our time on such improvements.

Also I would add, we need to be very cautious with improvements in Reagent because if we are going to replace hiccup eventually, it would be a waste of resources to couple ourselves even more with Reagent. Hey, not saying we will kill it, but just to keep in mind.

Copy link
Member

Choose a reason for hiding this comment

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

it could be that the solution provided by a custom Reagent compiler would perform just as well as the current solution now (btw there's a proper Reagent compiler protocol).

Good to know!

I think it's more a matter of effort than anything else. Given our priorities and that hole props don't appear very often in the codebase, it doesn't make much sense to invest our time on such improvements.

@ilmotta that's right, I agree!

Copy link
Contributor

Choose a reason for hiding this comment

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

@ilmotta @OmarBasem @ajayesivan

Just a side comment.

This problem would also be solved if we explore the idea I mentioned in:

:width container-width
:borderBottomStartRadius 16
:borderBottomEndRadius 16}]
:style {:margin-top -24}
Copy link
Member

Choose a reason for hiding this comment

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

What is -24? Can we define this number in some constant?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

24 is the height of the hole-view, and if we don't add the negative margin here when using the component, it will look like this:

Screenshot 2024-05-21 at 09 42 20

Instead we want this:
Screenshot 2024-05-21 at 09 42 13

I have moved the value to a constant.

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.

We can skip manual QA, but what about design review? As it is a UI component should we request for it?

@J-Son89
Copy link
Member

J-Son89 commented May 20, 2024

We can skip manual QA, but what about design review? As it is a UI component should we request for it?

Yep definitely get the design review for the quo components 🙏


(defn view
[]
(let [state (reagent/atom {:status :approve
Copy link
Member

Choose a reason for hiding this comment

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

see @ilmotta's recent pr. Let's use use-state here instead? 🤔
#20053

(let [theme (quo.theme/use-theme)
[container-width set-container-width] (rn/use-state 0)
on-layout (rn/use-callback #(set-container-width
(oget % :nativeEvent :layout :width)))]
Copy link
Member

Choose a reason for hiding this comment

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

can we avoid the use of oops, it tends to cause crashes a lot 😢
I think at one point we were considering moving away from it completely

Copy link
Contributor

Choose a reason for hiding this comment

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

I don't recall having experienced crashes due to oops. @J-Son89, do you have an example code to share that caused a crash?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I'm not that familiar with the library, for now, I have removed the usage.

Copy link
Contributor

Choose a reason for hiding this comment

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

@ajayesivan We shouldn't remove oops. Our guidelines already contain the example https://github.com/status-im/status-mobile/blob/624593ec3542ea3f7bcd3f9c2dcc4abe930bd68c/doc/new-guidelines.md#javascript-interop

Although the guideline lacks an explanation (can be found in the oops README). ClojureScript advanced compilation can and will often cause really hard to debug problems if we're not careful. oops solves this problem. I faced one such problem in status-mobile and lost hours trying to pinpoint the cause.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Updated! It looks like I'm a little rusty on the guidelines. I will refresh 💪

Copy link
Contributor

Choose a reason for hiding this comment

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

Updated! It looks like I'm a little rusty on the guidelines. I will refresh 💪

💪🏼 Thanks Ajay!

Copy link
Contributor

Choose a reason for hiding this comment

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

can we avoid the use of oops, it tends to cause crashes a lot 😢 I think at one point we were considering moving away from it completely

@ilmotta I agree, we've had problems multiple times for a property not being in the object, it's weird, but the library throws an exception instead of returning nil.

BTW, 👀 https://github.com/applied-science/js-interop

@@ -0,0 +1,67 @@
(ns quo.components.wallet.approval-label.view
(:require [oops.core :refer [oget]]
Copy link
Contributor

Choose a reason for hiding this comment

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

We have 15 usages of oops.core using :refer. But ~60 usages of the namespace using :as because our guideline recommends avoiding :refer https://github.com/status-im/status-mobile/blob/b358c06a3132692c705e12cfd417a764e869341d/doc/new-guidelines.md#requireimport. It's better if we can stay consistent.

[text/text
{:size :paragraph-2
:style (style/message theme)}
(i18n/label (status status-message)
Copy link
Contributor

Choose a reason for hiding this comment

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

Nitpick: it's quite common in Clojure that if the map is statically defined, thus can never, ever be nil, the args are reversed. In other words, the static map would be treated as a function and become the first argument. So reversed it would be (status-message status).

Same logic can be applied to (status-icons status).

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I have updated the code. Is there any benefit to doing it like this?

Copy link
Contributor

Choose a reason for hiding this comment

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

I mentioned as a nitpick, but really, it's a matter of preference. There's no advantage, you could also just use (get status-icons status) and it would be nice. One difference is that (status-icons status) will throw an exception if status-icons is nil, so that's why this is done only with static maps or static sets (they can also work as functions as in (#{:a :b} :a)).

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Thanks for the explanation!

(defn- view-internal
[{:keys [status customization-color token-value token-symbol
container-style button-props]
:or {customization-color :blue}}]
Copy link
Contributor

Choose a reason for hiding this comment

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

@ajayesivan, this can lead to surprising (buggy) results if we aren't careful. That's why we have a guideline in src/quo/README.md about how to treat default values https://github.com/status-im/status-mobile/blob/b358c06a3132692c705e12cfd417a764e869341d/src/quo/README.md#default-value-when-destructuring.

@ajayesivan ajayesivan force-pushed the 20081-approval-label-component branch from 4a9d7bf to 2fb28c8 Compare May 21, 2024 04:28
@ajayesivan
Copy link
Contributor Author

ajayesivan commented May 21, 2024

@briansztamfater @J-Son89 @ilmotta Thanks for the review! I have updated the code based on your suggestions. Please review it when you have a chance.

@ajayesivan ajayesivan force-pushed the 20081-approval-label-component branch from 15e5651 to faf9126 Compare May 21, 2024 11:56
@ajayesivan ajayesivan moved this from REVIEW to E2E Tests in Pipeline for QA May 21, 2024
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.

Looks good 🚀

@@ -0,0 +1,14 @@
(ns quo.components.wallet.approval-label.schema)

(def ?schema
Copy link
Contributor

Choose a reason for hiding this comment

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

The schema is so simple and it's like a documentation about how the component should be used. I remember @ulisesmac said recently he's not a fan of always having a separate schema file and I agree with him. It's different than styles namespace, the schema is an integral part of the component API and forcing devs to always jump to a separate file to read it has a downside.

No suggestion for change @ajayesivan Just sharing thoughts and I added a section [2024-05-21] Should quo schemas be always defined in a separate file? in this issue's description for a future discussion #18726

Copy link
Contributor

@ulisesmac ulisesmac May 21, 2024

Choose a reason for hiding this comment

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

Thank you @ilmotta for opening the discussion.

Yeah, IMO it could be just above of the (def view ...) line.

Copy link
Member

Choose a reason for hiding this comment

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

One nice thing with separate files is that the lookup becomes really easy to find similar examples.
I can look up schema files and some key and then use these cases, e.g customisation-color.
It's not so much friction either way though

Copy link
Member

Choose a reason for hiding this comment

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

I'll add to that discussion instead

Copy link
Contributor

Choose a reason for hiding this comment

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

Agreed @J-Son89. There are upsides to separate files. It's no big deal, just another point we can come back later on to assess.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I also prefer the separate file approach for schemas. In my workflow, it's easier to look up schemas, especially since we don't have schemas for all components. I don't have any strong preferences. I'm happy to go with whatever the team decides.

@status-im-auto
Copy link
Member

83% of end-end tests have passed

Total executed tests: 52
Failed tests: 8
Expected to fail tests: 1
Passed tests: 43
IDs of failed tests: 727230,702782,702732,727229,702869,703202,702807,727232 
IDs of expected to fail tests: 703503 

Failed tests (8)

Click to expand
  • Rerun failed tests

  • Class TestCommunityOneDeviceMerged:

    1. test_community_undo_delete_message, id: 702869

    Device 1: Tap on found: Button
    Device 1: Find `Button` by `xpath`: `//*[@text="Undo"]`

    critical/chats/test_public_chat_browsing.py:112: in test_community_undo_delete_message
        self.channel.element_by_text("Undo").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: `//*[@text="Undo"]` 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 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:129: 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

    Class TestWalletOneDevice:

    1. test_wallet_add_remove_watch_only_account, id: 727232

    Device 1: Text is eth:oeth:arb1:0x8d2413447ff297d30bdc475f6d5cb00254685aae
    Device 1: Click system back button

    critical/test_wallet.py:212: 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 'eth:oeth:arb1:0x8d2413447ff297d30bdc475f6d5cb00254685aae' is shown when swiping between accounts, expected one is '0:x:8:d:2:4:1:3:4:4:7:f:f:2:9:7:d:3:0:b:d:c:4:7:5:f:6:d:5:c:b:0:0:2:5:4:6:8:5:a:a:e'
    



    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:119: 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:41: 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:111: 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:100: in send_asset
        self.confirm_transaction()
    ../views/wallet_view.py:87: in confirm_transaction
        self.slide_and_confirm_with_password()
    ../views/wallet_view.py:81: 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 TestGroupChatMultipleDeviceMergedNewUI:

    1. test_group_chat_pin_messages, id: 702732

    Device 2: Text is user admin
    Device 2: Looking for a pinned by message with text: Message 4

    critical/chats/test_group_chat.py:404: in test_group_chat_pin_messages
        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))]))
     Pinned messages count 2 doesn't match expected 3 for user 2
    E    Message 'Message 4' is missed on Pinned messages list for user 2
    



    Device sessions

    2. test_group_chat_reactions, id: 703202

    Device 1: Find Button by accessibility id: authors-for-reaction-5
    Device 1: Tap on found: Button

    critical/chats/test_group_chat.py:211: in test_group_chat_reactions
        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))]))
     Incorrect reactions count for member_1 after changing the reactions
    



    Device sessions

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

    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_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 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_navigate_to_channel_when_relaunch, id: 702846
    Device sessions

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

    Class TestWalletOneDevice:

    1. test_wallet_add_remove_regular_account, id: 727231
    Device sessions

    Class TestGroupChatMultipleDeviceMergedNewUI:

    1. test_group_chat_mute_chat, id: 703495
    Device sessions

    2. test_group_chat_send_image_save_and_share, id: 703297
    Device sessions

    3. test_group_chat_offline_pn, id: 702808
    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 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 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 TestDeepLinksOneDevice:

    1. test_links_open_universal_links_from_chat, id: 704613
    Device sessions

    2. test_links_deep_links, id: 702775
    Device sessions

    @yevh-berdnyk
    Copy link
    Contributor

    83% of end-end tests have passed

    E2E failures are not related to the PR

    @yevh-berdnyk yevh-berdnyk moved this from E2E Tests to Design review in Pipeline for QA May 21, 2024
    @ajayesivan
    Copy link
    Contributor Author

    Thanks everyone for the review!

    @Francesca-G can you do a design review of this PR? Thank you!

    Copy link

    @Francesca-G Francesca-G left a comment

    Choose a reason for hiding this comment

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

    Nice job ✨

    @Francesca-G Francesca-G moved this from Design review to MERGE in Pipeline for QA May 22, 2024
    @ajayesivan ajayesivan force-pushed the 20081-approval-label-component branch from faf9126 to 6e6d2bd Compare May 22, 2024 07:46
    @ajayesivan ajayesivan merged commit e5ab94f into develop May 22, 2024
    6 checks passed
    Pipeline for QA automation moved this from MERGE to DONE May 22, 2024
    @ajayesivan ajayesivan deleted the 20081-approval-label-component branch May 22, 2024 07:59
    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
    Projects
    Status: DONE
    Development

    Successfully merging this pull request may close these issues.

    Wallet/Approval-Label Component
    10 participants