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

[#21658] - Avatars blinking #21782

Merged
merged 15 commits into from
Jan 9, 2025
Merged

[#21658] - Avatars blinking #21782

merged 15 commits into from
Jan 9, 2025

Conversation

ulisesmac
Copy link
Contributor

@ulisesmac ulisesmac commented Dec 10, 2024

fixes #21658
fixes #21215

Summary

This PR fixes some issues found related to the rendering of some components. The code fixes are listed in the self-review.

The main fixes are:

1. fast-image usages blinking

A background image for the image was added, this fix might be polemic because we are duplicating the images rendered, so feel free to share your thoughts about it. (btw, the no-flicker-image in the repo already does this for rn/image). The comparison:

Before:

avatars-blinking.mp4

After:

avatars-fixed.mp4

2. Avatar not being updated in profile screen:

Before:

Avatar-not-updated.mp4

After:

avatar-not-updated-fixed.mp4

3. Fixed the avatar styles and animation.

Reported in:

Now it follows designs and the calculations are simpler. You can see the animation also looks more stable:

Before:

avatar-animation.mp4

After:

avatar-animation-fixed.mp4

4. Fixed the ring around the avatar on Android, it changes its color. This feature still works on iOS consistently.

Before:

avatar-circle-not-matching.mp4

After:

avatar.circle.mp4

Platforms

  • Android
  • iOS

status: ready

Comment on lines 39 to 43
on-image-loaded (fn [event on-load source]
(when (fn? on-load) (on-load event))
(reset! loaded? true)
(reset! error? false)
(reset! previous-source source))]
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Fast image fix 👀

Comment on lines 30 to 42
(defn base-list-props
[{:keys [key-fn render-fn empty-component header footer separator data render-data on-drag-end-fn]
[{:keys [key-fn data render-fn empty-component header footer separator render-data on-drag-end-fn]
:as props}]
(merge
{:data (to-array data)}
(when key-fn {:keyExtractor (wrap-key-fn key-fn)})
(when render-fn {:renderItem (wrap-render-fn render-fn render-data)})
(when separator {:ItemSeparatorComponent (fn [] (reagent/as-element separator))})
(when empty-component {:ListEmptyComponent (fn [] (reagent/as-element empty-component))})
(when header {:ListHeaderComponent (reagent/as-element header)})
(when footer {:ListFooterComponent (reagent/as-element footer)})
(when on-drag-end-fn {:onDragEnd (wrap-on-drag-end-fn on-drag-end-fn)})
(dissoc props :data :header :footer :empty-component :separator :render-fn :key-fn :on-drag-end-fn)))
(cond-> {:data (to-array data)}
key-fn (assoc :keyExtractor (wrap-key-fn key-fn))
render-fn (assoc :renderItem (wrap-render-fn render-fn render-data))
separator (assoc :ItemSeparatorComponent (fn [] (reagent/as-element separator)))
empty-component (assoc :ListEmptyComponent (fn [] (reagent/as-element empty-component)))
header (assoc :ListHeaderComponent (reagent/as-element header))
footer (assoc :ListFooterComponent (reagent/as-element footer))
on-drag-end-fn (assoc :onDragEnd (wrap-on-drag-end-fn on-drag-end-fn))
:always (merge (dissoc-custom-props props))))

Copy link
Contributor Author

Choose a reason for hiding this comment

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

multiple merge -> multiple assoc

Comment on lines -10 to +12
(defn f-avatar
(def scroll-range #js [0 48])
(def scale-range #js [1 0.4])

(defn view
[{:keys [scroll-y full-name online? profile-picture customization-color border-color]}]
(let [image-scale-animation (reanimated/interpolate scroll-y
scroll-animation-input-range
[1 0.4]
header-extrapolation-option)
image-top-margin-animation (reanimated/interpolate scroll-y
scroll-animation-input-range
[0 20]
header-extrapolation-option)
image-side-margin-animation (reanimated/interpolate scroll-y
scroll-animation-input-range
[-4 -20]
header-extrapolation-option)]
[reanimated/view
{:style (style/wrapper {:scale image-scale-animation
:margin-top image-top-margin-animation
:margin image-side-margin-animation
:border-color border-color})}
(let [image-scale (reanimated/interpolate scroll-y scroll-range scale-range :clamp)]
[reanimated/view {:style (style/wrapper border-color image-scale)}
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Avatar animation fix

Comment on lines -65 to +66
:render-fn (fn [item]
(chat-list-item/chat-list-item item theme))
:render-data {:theme theme}
:render-fn chat-list-item/chat-list-item
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Fix rerenders on items for this flat-list

Comment on lines +25 to +29
(defn avatar-border-color
[theme]
(if platform/android?
colors/neutral-80-opa-80 ;; Fix is not needed because Android doesn't use blur
(colors/theme-colors colors/border-avatar-light colors/neutral-80-opa-80 theme)))
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Avatar's ring fix

Copy link
Contributor

Choose a reason for hiding this comment

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

Worth noting that we have an issue that we can play in 2.33 to remove identity rings #21743

Copy link
Contributor Author

Choose a reason for hiding this comment

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

This ring I'm referring to is the one showed in PR's video:

avatar-circle-not-matching.mp4

different to the identity ring

@status-im-auto
Copy link
Member

status-im-auto commented Dec 10, 2024

Jenkins Builds

Click to see older builds (34)
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ f87590c #1 2024-12-10 02:53:40 ~5 min tests 📄log
✔️ f87590c #1 2024-12-10 02:55:22 ~7 min android-e2e 🤖apk 📲
✔️ f87590c #1 2024-12-10 02:57:00 ~9 min android 🤖apk 📲
✔️ f87590c #1 2024-12-10 02:59:45 ~11 min ios 📱ipa 📲
✔️ 7764e2c #2 2024-12-11 17:56:21 ~5 min tests 📄log
✔️ 7764e2c #2 2024-12-11 17:59:47 ~8 min android-e2e 🤖apk 📲
✔️ 7764e2c #2 2024-12-11 18:00:33 ~9 min android 🤖apk 📲
✔️ 7764e2c #2 2024-12-11 18:08:52 ~17 min ios 📱ipa 📲
0bd6156 #3 2024-12-13 01:25:50 ~2 min tests 📄log
✔️ 0560f79 #4 2024-12-13 01:33:52 ~4 min tests 📄log
✔️ 0560f79 #4 2024-12-13 01:36:03 ~6 min android 🤖apk 📲
✔️ 0560f79 #4 2024-12-13 01:36:11 ~7 min ios 📱ipa 📲
✔️ 0560f79 #4 2024-12-13 01:36:57 ~7 min android-e2e 🤖apk 📲
99b30d2 #5 2024-12-17 01:34:39 ~2 min tests 📄log
✔️ 99b30d2 #5 2024-12-17 01:38:14 ~6 min ios 📱ipa 📲
✔️ 99b30d2 #5 2024-12-17 01:38:26 ~6 min android 🤖apk 📲
✔️ 99b30d2 #5 2024-12-17 01:39:11 ~7 min android-e2e 🤖apk 📲
05698c4 #6 2024-12-18 19:32:59 ~2 min tests 📄log
✔️ 05698c4 #6 2024-12-18 19:36:50 ~6 min ios 📱ipa 📲
✔️ 05698c4 #6 2024-12-18 19:37:10 ~7 min android-e2e 🤖apk 📲
✔️ 05698c4 #6 2024-12-18 19:38:12 ~8 min android 🤖apk 📲
247a9e7 #7 2025-01-03 09:56:55 ~2 min tests 📄log
✔️ 247a9e7 #7 2025-01-03 10:01:46 ~7 min android-e2e 🤖apk 📲
✔️ 247a9e7 #7 2025-01-03 10:02:15 ~8 min android 🤖apk 📲
✔️ 247a9e7 #8 2025-01-03 10:03:31 ~9 min ios 📱ipa 📲
86150dd #8 2025-01-06 23:58:27 ~2 min tests 📄log
✔️ 86150dd #9 2025-01-07 00:02:32 ~6 min ios 📱ipa 📲
✔️ 86150dd #8 2025-01-07 00:02:38 ~7 min android 🤖apk 📲
✔️ 86150dd #8 2025-01-07 00:02:50 ~7 min android-e2e 🤖apk 📲
86150dd #9 2025-01-07 00:06:32 ~2 min tests 📄log
✔️ d303740 #9 2025-01-07 00:20:17 ~7 min android-e2e 🤖apk 📲
✔️ d303740 #10 2025-01-07 00:20:23 ~6 min tests 📄log
✔️ d303740 #10 2025-01-07 00:21:17 ~7 min ios 📱ipa 📲
✔️ d303740 #9 2025-01-07 00:22:08 ~8 min android 🤖apk 📲
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ be72c11 #12 2025-01-08 01:45:37 ~4 min tests 📄log
✔️ be72c11 #12 2025-01-08 01:47:37 ~6 min ios 📱ipa 📲
✔️ be72c11 #11 2025-01-08 01:48:41 ~7 min android 🤖apk 📲
✔️ be72c11 #11 2025-01-08 01:48:42 ~7 min android-e2e 🤖apk 📲
✔️ 54a12ae #13 2025-01-08 22:34:30 ~4 min tests 📄log
✔️ 54a12ae #13 2025-01-08 22:36:38 ~6 min ios 📱ipa 📲
✔️ 54a12ae #12 2025-01-08 22:36:49 ~6 min android 🤖apk 📲
✔️ 54a12ae #12 2025-01-08 22:37:40 ~7 min android-e2e 🤖apk 📲

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.

LGTM, Nice improvement 🚀

@flexsurfer
Copy link
Member

hey @ulisesmac do you know why we didn't have fast-image usages blinking problem before? When and where did it come from?

Comment on lines +25 to +29
(defn avatar-border-color
[theme]
(if platform/android?
colors/neutral-80-opa-80 ;; Fix is not needed because Android doesn't use blur
(colors/theme-colors colors/border-avatar-light colors/neutral-80-opa-80 theme)))
Copy link
Contributor

Choose a reason for hiding this comment

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

Worth noting that we have an issue that we can play in 2.33 to remove identity rings #21743

:priority :high}
source))

;; NOTE: We need to use ratoms to avoid the flickering since their state is updated
Copy link
Contributor

Choose a reason for hiding this comment

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

@ulisesmac I thought all image flickers were caused by buggy implementation (e.g. components receiving unstable function references as we both identified in #21658).

If the new props passed to fast-image are equal to previous props, Reagent would skip processing fast-image altogether and there would be no flicker. If you could pick one example where this workaround is needed, could you explain what's changing between render passes of fast-image that is causing Reagent to reprocess it?

@ulisesmac
Copy link
Contributor Author

ulisesmac commented Dec 10, 2024

@ilmotta @flexsurfer

Thank you so much for your review!
I'll explain the fix about fast-image.

I thought all image flickers were caused by buggy implementation (e.g. components receiving unstable function references as we both identified in #21658).

Yeah, that's true for unnecessary rerenders, but not all image flickerings are due to this.

If the new props passed to fast-image are equal to previous props, Reagent would skip processing fast-image altogether and there would be no flicker. If you could pick one example where this workaround is needed, could you explain what's changing between render passes of fast-image that is causing Reagent to reprocess it?

This is a side effect of the image server.

I added videos to the description, here's an example:

We use an URL A to render the avatar, but when the user opens the share modal, the app switches to a background state, so the image server will change its port, so we generate an URL B for the avatar, so a rerender is needed even though the resource is the same (i.e. the same user image).

And now, you may wonder

How is that related to fast-image?

The answer is that our wrapper for fast-image is rendering a spinner and a letter X as placeholders for loading and error states respectively, causing a quick blink when we swap URLs (sources). fast-image itself isn't able to swap sources without a visual blank state.

What I did in this PR is implementing a second bg image that avoids that visual blank state. It's just a visual fix.

This fix also improved the appearance of necessary re-renders. e.g. When the user `updates their profile name, the avatar blinks on develop, in this PR this no longer happens. LMK if you want me to record videos comparing the differences.

IMO this fix is relatively cheap and provides a lot the looking of the app.

do you know why we didn't have fast-image usages blinking problem before? When and where did it come from?

The image server dynamic port is a reason, another reason is when we just update its props, so I'd say the issue has been there all the time. Maybe on some fast iOS devices the rerender is too fast to be easily perceived

@ilmotta
Copy link
Contributor

ilmotta commented Dec 10, 2024

Thanks @ulisesmac for the detailed answer.

The fast image cache strategy we use is the default, immutable. That means whenever the port changes or any other part of the URL, the cache is thrown away. This isn't good of course.

The best possible implementation I think is if we could leverage the ETag HTTP header because then no data is even transferred if the resource didn't change. I wonder how much/well the fast-image library supports cache headers as they say with the web strategy. The ETag value is usually a hash of the resource, which status-go would compute.

A change of port shouldn't be considered a change of resource between the client & status-go communication. But I think fast-image doesn't provide a way to customize the logic to decide when the cache is stale or not, at least as far as the official docs go.

What if we provide a custom React key that's stable between re-renders by ignoring the port change? Wouldn't that solve the flashing?

The answer is that our wrapper for fast-image is rendering a spinner and a letter X as placeholders for loading and error states

For loading, we should ideally differenciate between fetching local resources and actual remote resources. The loading spinner should only be used for non-local resources, similar to how we avoid in UX to show spinners for resources loading in milliseconds. Images coming from the media-server are local as far as I understand.

For error states I'm not sure what to say, but it should be a rare problem that wouldn't justify flashing side-effects.

@ulisesmac
Copy link
Contributor Author

Thanks @ulisesmac for the detailed answer.

The best possible implementation I think is if we could leverage the ETag HTTP header because then no data is even transferred if the resource didn't change. I wonder how much/well the fast-image library supports cache headers as they say with the web strategy. The ETag value is usually a hash of the resource, which status-go would compute.

I agree, or explore better solutions for the image-server.

What if we provide a custom React key that's stable between re-renders by ignoring the port change? Wouldn't that solve the flashing?

The problem is: if we skip the rerender, how do we know when the image should have been updated?

E.g. the user actually had their profile picture updated but we ignored the rerender.

For loading, we should ideally differenciate between fetching local resources and actual remote resources. The loading spinner should only be used for non-local resources, similar to how we avoid in UX to show spinners for resources loading in milliseconds. Images coming from the media-server are local as far as I understand.

For local resources we shouldn't use fast-image, I agree. But even if no spinners or error states were displayed, the fast image still shows a blink (since it throws the previous image and loads the new one)

@ilmotta
Copy link
Contributor

ilmotta commented Dec 11, 2024

The problem is: if we skip the rerender, how do we know when the image should have been updated?

E.g. the user actually had their profile picture updated but we ignored the rerender.

The idea is that the port number shouldn't be considered part of the cache key for FastImage or any other mechanism. If we use React.memo we can provide a custom comparator function that ignores the port number in the URI. I tested this solution and the blinking disappeared completely from all avatars and the share QR code screen.

Don't judge too much the following snippet @ulisesmac, but it's a starting point and seems to work well. I wouldn't be surprised if this idea is flawed. For simplification purposes I ignored loading and error conditions.

(defn clean-port
  [uri]
  (string/replace-first uri #":\d+" ""))

(def fast-image
  (reagent/adapt-react-class
   (rn/memo
    (fn [^js props]
      (let [source (oops/oget props :source)]
        (react/createElement
         FastImage
         (js/Object.assign
          #js {}
          props
          (when (and props source)
            #js {:source (if (string? source)
                           #js {:uri      source
                                :priority "high"}
                           #js {:uri      (oops/oget source :uri)
                                :priority "high"})})))))
    (fn [prev-props next-props]
      (let [prev-uri (oops/oget prev-props :source :uri)
            next-uri (oops/oget next-props :source :uri)]
        (and prev-uri
             next-uri
             (= (remove-port prev-uri) (remove-port next-uri))))))))

In any case, it's not my intention to suggest this is the only way, I leave it up to you and other CCs to judge. It's good to know we have other options in the future to better fix blinking images.

@flexsurfer
Copy link
Member

flexsurfer commented Dec 11, 2024

but when the user opens the share modal, the app switches to a background state

i'm not sure i understand how that happen, could you elaborate? why does it switch to a background state in that case?

@seanstrom
Copy link
Member

@flexsurfer I think when an iOS share-sheet opens, the OS will sorta transition the the app into an inactive/background state because share-sheet is native OS menu and outside of the app's control. I think also might happen when someone pulls down the iOS control-center from the top-right while running the app.

@seanstrom
Copy link
Member

@ulisesmac I like the idea of having a component that maintains a background image and foreground image, that could be pretty useful for transitioning between two images!

Though I was thinking that @ilmotta's approach with using a component to ignore changes with port prop to also be compelling, since it would save us from needing to have a second image for each image (right?).

Also, we still have a clock that's useful for determining when a profile image has been changed. So we could potentially rely on the clock field and other source name fields to help with determining when a profiles avatar/image has changed. In the case with the initials-avatar, I think it should be the display-name (or full-name) and the clock field that should cause a re-render.

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.

Even though I think there are better solutions to the blinking problem, I think your solution is practical and solves the problem without introducing performance regressions. Approved! Thanks @ulisesmac for solving this old problem!

@ulisesmac
Copy link
Contributor Author

@flexsurfer

i'm not sure i understand how that happen, could you elaborate? why does it switch to a background state in that case?

It's switched to a background state because, as @seanstrom said, the share sheet comes from the OS, so it swithces our app to bg, after the sheet is closed our app returns to foreground.

Because of this, the image server changes its ports and a re-render happens for all the images provided by the server.

@ulisesmac
Copy link
Contributor Author

ulisesmac commented Dec 12, 2024

@ilmotta Thanks for remembering me memo is an option.

The solution you provided looks better to me since we aren't duplicating the images shown. However, although it solves the unnecessary re-render problem, it doesn't solve the issue about swapping the image without a blink.

Thanks for approving, but I'll test your suggestion to see how it behaves 👍 Thanks again

@ulisesmac ulisesmac force-pushed the 21658-avatars-blinking branch from 7764e2c to 0bd6156 Compare December 13, 2024 01:22
@ulisesmac ulisesmac force-pushed the 21658-avatars-blinking branch from 247a9e7 to 86150dd Compare January 6, 2025 23:55
@ulisesmac
Copy link
Contributor Author

@VolodLytvynenko Thank you so much for testing!

I've just fixed the isues!

@status-im-auto
Copy link
Member

59% of end-end tests have passed

Total executed tests: 56
Failed tests: 23
Expected to fail tests: 0
Passed tests: 33
IDs of failed tests: 702845,702840,727231,702894,703086,702947,702958,702786,702844,702841,702839,740490,702809,702838,704615,702948,702859,703629,702957,702843,703495,702777,703194 

Failed tests (23)

Click to expand
  • Rerun failed tests

  • Class TestWalletOneDevice:

    1. test_wallet_add_remove_regular_account, id: 727231

    # STEP: Adding new regular account
    Device 1: Find `Button` by `accessibility id`: `add-account`

    critical/test_wallet.py:266: in test_wallet_add_remove_regular_account
        self.wallet_view.add_regular_account(account_name=new_account_name)
    ../views/wallet_view.py:175: in add_regular_account
        self.add_account_button.click()
    ../views/base_element.py:89: in click
        element = self.find_element()
    ../views/base_element.py:78: in find_element
        raise NoSuchElementException(
     Device 1: Button by accessibility id: `add-account` 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; also Unexpected Alert is shown: 'Cannot read property 'replace' of undefined'
    



    2. test_wallet_balance_mainnet, id: 740490

    ## Sign in (password: qwerty1234)
    Device 1: Getting username card by 'shdUaM8M6QcxQ4qn32nQ'

    critical/test_wallet.py:230: in test_wallet_balance_mainnet
        self.sign_in_view.sign_in(user_name=self.sender_username)
    ../views/sign_in_view.py:134: in sign_in
        self.get_user_profile_by_name(user_name).click()
    ../views/sign_in_view.py:147: in get_user_profile_by_name
        raise NoSuchElementException(msg="User %s is not found!" % username)
     User shdUaM8M6QcxQ4qn32nQ is not found!; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#no-such-element-exception; also Unexpected Alert is shown: 'Cannot read property 'replace' of undefined'
    



    Class TestCommunityMultipleDeviceMerged:

    1. test_community_emoji_send_copy_paste_reply, id: 702840

    Test setup failed: critical/chats/test_public_chat_browsing.py:344: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:338: in join_community
        self.password_input.send_keys(password)
    ../views/base_element.py:370: in send_keys
        self.find_element().send_keys(value)
    ../views/base_element.py:78: in find_element
        raise NoSuchElementException(
     Device 2: EditBox by accessibility id: `password-input` 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_contact_block_unblock_offline, id: 702894

    Test setup failed: critical/chats/test_public_chat_browsing.py:344: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:338: in join_community
        self.password_input.send_keys(password)
    ../views/base_element.py:370: in send_keys
        self.find_element().send_keys(value)
    ../views/base_element.py:78: in find_element
        raise NoSuchElementException(
     Device 2: EditBox by accessibility id: `password-input` 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_mark_all_messages_as_read, id: 703086

    Test setup failed: critical/chats/test_public_chat_browsing.py:344: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:338: in join_community
        self.password_input.send_keys(password)
    ../views/base_element.py:370: in send_keys
        self.find_element().send_keys(value)
    ../views/base_element.py:78: in find_element
        raise NoSuchElementException(
     Device 2: EditBox by accessibility id: `password-input` 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
    



    4. test_community_links_with_previews_github_youtube_twitter_gif_send_enable, id: 702844

    Test setup failed: critical/chats/test_public_chat_browsing.py:344: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:338: in join_community
        self.password_input.send_keys(password)
    ../views/base_element.py:370: in send_keys
        self.find_element().send_keys(value)
    ../views/base_element.py:78: in find_element
        raise NoSuchElementException(
     Device 2: EditBox by accessibility id: `password-input` 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 
    

    [[Youtube links preview is not loaded on LambdaTest emulators, needs investigation]]

    5. test_community_unread_messages_badge, id: 702841

    Test setup failed: critical/chats/test_public_chat_browsing.py:344: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:338: in join_community
        self.password_input.send_keys(password)
    ../views/base_element.py:370: in send_keys
        self.find_element().send_keys(value)
    ../views/base_element.py:78: in find_element
        raise NoSuchElementException(
     Device 2: EditBox by accessibility id: `password-input` 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
    



    6. test_community_message_delete, id: 702839

    Test setup failed: critical/chats/test_public_chat_browsing.py:344: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:338: in join_community
        self.password_input.send_keys(password)
    ../views/base_element.py:370: in send_keys
        self.find_element().send_keys(value)
    ../views/base_element.py:78: in find_element
        raise NoSuchElementException(
     Device 2: EditBox by accessibility id: `password-input` 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
    



    7. test_community_message_send_check_timestamps_sender_username, id: 702838

    Device 2: Find Button by xpath: (//*[@resource-id='slide-button-track']//*[@content-desc='icon'])[1]
    Device 2: Find EditBox by accessibility id: password-input

    Test setup failed: critical/chats/test_public_chat_browsing.py:344: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:338: in join_community
        self.password_input.send_keys(password)
    ../views/base_element.py:370: in send_keys
        self.find_element().send_keys(value)
    ../views/base_element.py:78: in find_element
        raise NoSuchElementException(
     Device 2: EditBox by accessibility id: `password-input` 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

    8. test_community_edit_delete_message_when_offline, id: 704615

    Test setup failed: critical/chats/test_public_chat_browsing.py:344: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:338: in join_community
        self.password_input.send_keys(password)
    ../views/base_element.py:370: in send_keys
        self.find_element().send_keys(value)
    ../views/base_element.py:78: in find_element
        raise NoSuchElementException(
     Device 2: EditBox by accessibility id: `password-input` 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
    



    9. test_community_one_image_send_reply, id: 702859

    Test setup failed: critical/chats/test_public_chat_browsing.py:344: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:338: in join_community
        self.password_input.send_keys(password)
    ../views/base_element.py:370: in send_keys
        self.find_element().send_keys(value)
    ../views/base_element.py:78: in find_element
        raise NoSuchElementException(
     Device 2: EditBox by accessibility id: `password-input` 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
    



    10. test_community_message_edit, id: 702843

    Test setup failed: critical/chats/test_public_chat_browsing.py:344: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:338: in join_community
        self.password_input.send_keys(password)
    ../views/base_element.py:370: in send_keys
        self.find_element().send_keys(value)
    ../views/base_element.py:78: in find_element
        raise NoSuchElementException(
     Device 2: EditBox by accessibility id: `password-input` 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
    



    11. test_community_several_images_send_reply, id: 703194

    Test setup failed: critical/chats/test_public_chat_browsing.py:344: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:338: in join_community
        self.password_input.send_keys(password)
    ../views/base_element.py:370: in send_keys
        self.find_element().send_keys(value)
    ../views/base_element.py:78: in find_element
        raise NoSuchElementException(
     Device 2: EditBox by accessibility id: `password-input` 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_mute_chat, id: 703495

    Device 2: Click until ChatMessageInput by accessibility id: chat-message-input will be presented
    Device 2: Looking for a message by text: Chat is unmuted now

    critical/chats/test_group_chat.py:530: in test_group_chat_mute_chat
        self.errors.verify_no_errors()
    base_test_case.py:176: in verify_no_errors
        pytest.fail('\n '.join([self.errors.pop(0) for _ in range(len(self.errors))]))
     Message text 'Chat is unmuted now' is not shown in chat preview after unmute
    



    Device sessions

    Class TestActivityMultipleDevicePR:

    1. test_activity_center_reply_read_unread_delete_filter_swipe, id: 702947

    Device 2: Find Button by xpath: (//*[@resource-id='slide-button-track']//*[@content-desc='icon'])[1]
    Device 2: Find EditBox by accessibility id: password-input

    Test setup failed: activity_center/test_activity_center.py:259: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:338: in join_community
        self.password_input.send_keys(password)
    ../views/base_element.py:370: in send_keys
        self.find_element().send_keys(value)
    ../views/base_element.py:78: in find_element
        raise NoSuchElementException(
     Device 2: EditBox by accessibility id: `password-input` 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 TestCommunityMultipleDeviceMergedTwo:

    1. test_community_leave, id: 702845

    Test setup failed: critical/chats/test_public_chat_browsing.py:874: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:338: in join_community
        self.password_input.send_keys(password)
    ../views/base_element.py:370: in send_keys
        self.find_element().send_keys(value)
    ../views/base_element.py:78: in find_element
        raise NoSuchElementException(
     Device 2: EditBox by accessibility id: `password-input` 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_mentions_push_notification, id: 702786

    Device 2: Find Button by xpath: (//*[@resource-id='slide-button-track']//*[@content-desc='icon'])[1]
    Device 2: Find EditBox by accessibility id: password-input

    Test setup failed: critical/chats/test_public_chat_browsing.py:874: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:338: in join_community
        self.password_input.send_keys(password)
    ../views/base_element.py:370: in send_keys
        self.find_element().send_keys(value)
    ../views/base_element.py:78: in find_element
        raise NoSuchElementException(
     Device 2: EditBox by accessibility id: `password-input` 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_community_markdown_support, id: 702809

    Test setup failed: critical/chats/test_public_chat_browsing.py:874: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:338: in join_community
        self.password_input.send_keys(password)
    ../views/base_element.py:370: in send_keys
        self.find_element().send_keys(value)
    ../views/base_element.py:78: in find_element
        raise NoSuchElementException(
     Device 2: EditBox by accessibility id: `password-input` 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
    



    4. test_community_hashtag_links_to_community_channels, id: 702948

    Test setup failed: critical/chats/test_public_chat_browsing.py:874: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:338: in join_community
        self.password_input.send_keys(password)
    ../views/base_element.py:370: in send_keys
        self.find_element().send_keys(value)
    ../views/base_element.py:78: in find_element
        raise NoSuchElementException(
     Device 2: EditBox by accessibility id: `password-input` 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 
    

    [[Can't navigate to a community channel before joining the community, https://github.com//issues/21776]]

    5. test_community_join_when_node_owner_offline, id: 703629

    Test setup failed: critical/chats/test_public_chat_browsing.py:874: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:338: in join_community
        self.password_input.send_keys(password)
    ../views/base_element.py:370: in send_keys
        self.find_element().send_keys(value)
    ../views/base_element.py:78: in find_element
        raise NoSuchElementException(
     Device 2: EditBox by accessibility id: `password-input` 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 
    

    [[Can't navigate to a community channel before joining the community, https://github.com//issues/21776]]

    Class TestActivityMultipleDevicePRTwo:

    1. test_activity_center_admin_notification_accept_swipe, id: 702958

    Test setup failed: activity_center/test_activity_center.py:399: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:338: in join_community
        self.password_input.send_keys(password)
    ../views/base_element.py:370: in send_keys
        self.find_element().send_keys(value)
    ../views/base_element.py:78: in find_element
        raise NoSuchElementException(
     Device 2: EditBox by accessibility id: `password-input` 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_activity_center_mentions, id: 702957

    Device 2: Find Button by xpath: (//*[@resource-id='slide-button-track']//*[@content-desc='icon'])[1]
    Device 2: Find EditBox by accessibility id: password-input

    Test setup failed: activity_center/test_activity_center.py:399: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:338: in join_community
        self.password_input.send_keys(password)
    ../views/base_element.py:370: in send_keys
        self.find_element().send_keys(value)
    ../views/base_element.py:78: in find_element
        raise NoSuchElementException(
     Device 2: EditBox by accessibility id: `password-input` 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 TestActivityCenterContactRequestMultipleDevicePR:

    1. test_add_contact_field_validation, id: 702777

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

    activity_center/test_activity_center.py:222: in test_add_contact_field_validation
        self.errors.verify_no_errors()
    base_test_case.py:176: in verify_no_errors
        pytest.fail('\n '.join([self.errors.pop(0) for _ in range(len(self.errors))]))
     Error message is not shown for value "cs3:X1cQV8s:DjA:m98mmxybnvbBzWT6dvyJBxscKiZadihUfU6rzPidRqCo:4sndpaaoqt2W8FHA1RsQ9va4YQshHRnW1vPKbZ68afSU:Qy1nM4RGgg5TUkpE7L9GNR:KsyQyWXedh8zScpG5Kx4rgG4CLZt1t3wxu7RPdR11ALWqePVbdpNbF5RF6vqsK5kHZzGb1FQ6WKsy8jRT4C1vUY6BJ"
    



    Device sessions

    Passed tests (33)

    Click to expand

    Class TestOneToOneChatMultipleSharedDevicesNewUi:

    1. test_1_1_chat_edit_message, id: 702855
    Device sessions

    2. test_1_1_chat_message_reaction, id: 702730
    Device sessions

    3. test_1_1_chat_non_latin_messages_stack_update_profile_photo, id: 702745
    Device sessions

    4. test_1_1_chat_pin_messages, id: 702731
    Device sessions

    5. test_1_1_chat_text_message_delete_push_disappear, id: 702733
    Device sessions

    6. test_1_1_chat_push_emoji, id: 702813
    Device sessions

    7. test_1_1_chat_emoji_send_reply_and_open_link, id: 702782
    Device sessions

    8. test_1_1_chat_send_image_save_and_share, id: 703391
    Device sessions

    Class TestDeepLinksOneDevice:

    1. test_links_open_universal_links_from_chat, id: 704613
    Device sessions

    2. test_links_deep_links_profile, id: 702775
    Device sessions

    3. test_deep_links_communities, id: 739307
    Device sessions

    Class TestGroupChatMultipleDeviceMergedNewUI:

    1. test_group_chat_reactions, id: 703202
    Device sessions

    2. test_group_chat_join_send_text_messages_push, id: 702807
    Device sessions

    3. test_group_chat_offline_pn, id: 702808
    Device sessions

    4. test_group_chat_pin_messages, id: 702732
    Device sessions

    5. test_group_chat_send_image_save_and_share, id: 703297
    Device sessions

    Class TestFallbackMultipleDevice:

    1. test_fallback_add_key_pair, id: 741054
    2. test_fallback_sync_with_error, id: 740220
    3. test_fallback_with_correct_seed_phrase, id: 740221
    4. test_fallback_validate_seed_phrase, id: 740222

    Class TestOneToOneChatMultipleSharedDevicesNewUiTwo:

    1. test_1_1_chat_mute_chat, id: 703496
    Device sessions

    2. test_1_1_chat_is_shown_message_sent_delivered_from_offline, id: 702783
    Device sessions

    3. test_1_1_chat_delete_via_long_press_relogin, id: 702784
    Device sessions

    Class TestCommunityOneDeviceMerged:

    1. test_restore_multiaccount_with_waku_backup_remove_profile_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_undo_delete_message, id: 702869
    Device sessions

    5. test_community_mute_community_and_channel, id: 703382
    Device sessions

    6. test_community_discovery, id: 703503
    Device sessions

    Class TestWalletMultipleDevice:

    1. test_wallet_send_asset_from_drawer, id: 727230
    2. test_wallet_send_eth, id: 727229

    Class TestActivityCenterContactRequestMultipleDevicePR:

    1. test_activity_center_contact_request_accept_swipe_mark_all_as_read, id: 702851
    Device sessions

    2. test_activity_center_contact_request_decline, id: 702850
    Device sessions

    @status-im-auto
    Copy link
    Member

    9% of end-end tests have passed

    Total executed tests: 23
    Failed tests: 21
    Expected to fail tests: 0
    Passed tests: 2
    
    IDs of failed tests: 702845,702840,727231,702894,703086,702947,702958,702786,702844,702841,702839,740490,702809,702838,704615,702948,702859,703629,702957,702843,703194 
    

    Failed tests (21)

    Click to expand
  • Rerun failed tests

  • Class TestActivityMultipleDevicePR:

    1. test_activity_center_reply_read_unread_delete_filter_swipe, id: 702947

    Device 2: Find `Button` by `xpath`: `(//*[@resource-id='slide-button-track']//*[@content-desc='icon'])[1]`
    Device 2: Find `EditBox` by `accessibility id`: `password-input`

    Test setup failed: activity_center/test_activity_center.py:259: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:338: in join_community
        self.password_input.send_keys(password)
    ../views/base_element.py:370: in send_keys
        self.find_element().send_keys(value)
    ../views/base_element.py:78: in find_element
        raise NoSuchElementException(
     Device 2: EditBox by accessibility id: `password-input` 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 TestCommunityMultipleDeviceMergedTwo:

    1. test_community_leave, id: 702845

    Test setup failed: critical/chats/test_public_chat_browsing.py:872: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:338: in join_community
        self.password_input.send_keys(password)
    ../views/base_element.py:370: in send_keys
        self.find_element().send_keys(value)
    ../views/base_element.py:78: in find_element
        raise NoSuchElementException(
     Device 2: EditBox by accessibility id: `password-input` 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_mentions_push_notification, id: 702786

    Device 2: Find Button by xpath: (//*[@resource-id='slide-button-track']//*[@content-desc='icon'])[1]
    Device 2: Find EditBox by accessibility id: password-input

    Test setup failed: critical/chats/test_public_chat_browsing.py:872: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:338: in join_community
        self.password_input.send_keys(password)
    ../views/base_element.py:370: in send_keys
        self.find_element().send_keys(value)
    ../views/base_element.py:78: in find_element
        raise NoSuchElementException(
     Device 2: EditBox by accessibility id: `password-input` 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_community_markdown_support, id: 702809

    Test setup failed: critical/chats/test_public_chat_browsing.py:872: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:338: in join_community
        self.password_input.send_keys(password)
    ../views/base_element.py:370: in send_keys
        self.find_element().send_keys(value)
    ../views/base_element.py:78: in find_element
        raise NoSuchElementException(
     Device 2: EditBox by accessibility id: `password-input` 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
    



    4. test_community_hashtag_links_to_community_channels, id: 702948

    Test setup failed: critical/chats/test_public_chat_browsing.py:872: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:338: in join_community
        self.password_input.send_keys(password)
    ../views/base_element.py:370: in send_keys
        self.find_element().send_keys(value)
    ../views/base_element.py:78: in find_element
        raise NoSuchElementException(
     Device 2: EditBox by accessibility id: `password-input` 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 
    

    [[Can't navigate to a community channel before joining the community, https://github.com//issues/21776]]

    5. test_community_join_when_node_owner_offline, id: 703629

    Test setup failed: critical/chats/test_public_chat_browsing.py:872: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:338: in join_community
        self.password_input.send_keys(password)
    ../views/base_element.py:370: in send_keys
        self.find_element().send_keys(value)
    ../views/base_element.py:78: in find_element
        raise NoSuchElementException(
     Device 2: EditBox by accessibility id: `password-input` 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 
    

    [[Can't navigate to a community channel before joining the community, https://github.com//issues/21776]]

    Class TestWalletOneDevice:

    1. test_wallet_add_remove_regular_account, id: 727231

    # STEP: Adding new regular account
    Device 1: Find Button by accessibility id: add-account

    critical/test_wallet.py:259: in test_wallet_add_remove_regular_account
        self.wallet_view.add_regular_account(account_name=new_account_name)
    ../views/wallet_view.py:175: in add_regular_account
        self.add_account_button.click()
    ../views/base_element.py:89: in click
        element = self.find_element()
    ../views/base_element.py:78: in find_element
        raise NoSuchElementException(
     Device 1: Button by accessibility id: `add-account` 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; also Unexpected Alert is shown: 'Cannot read property 'replace' of undefined'
    



    2. test_wallet_balance_mainnet, id: 740490

    ## Sign in (password: qwerty1234)
    Device 1: Getting username card by 'shdUaM8M6QcxQ4qn32nQ'

    critical/test_wallet.py:223: in test_wallet_balance_mainnet
        self.sign_in_view.sign_in(user_name=self.sender_username)
    ../views/sign_in_view.py:134: in sign_in
        self.get_user_profile_by_name(user_name).click()
    ../views/sign_in_view.py:147: in get_user_profile_by_name
        raise NoSuchElementException(msg="User %s is not found!" % username)
     User shdUaM8M6QcxQ4qn32nQ is not found!; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#no-such-element-exception; also Unexpected Alert is shown: 'Cannot read property 'replace' of undefined'
    



    Class TestActivityMultipleDevicePRTwo:

    1. test_activity_center_admin_notification_accept_swipe, id: 702958

    Test setup failed: activity_center/test_activity_center.py:399: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:338: in join_community
        self.password_input.send_keys(password)
    ../views/base_element.py:370: in send_keys
        self.find_element().send_keys(value)
    ../views/base_element.py:78: in find_element
        raise NoSuchElementException(
     Device 2: EditBox by accessibility id: `password-input` 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_activity_center_mentions, id: 702957

    Device 2: Find Button by xpath: (//*[@resource-id='slide-button-track']//*[@content-desc='icon'])[1]
    Device 2: Find EditBox by accessibility id: password-input

    Test setup failed: activity_center/test_activity_center.py:399: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:338: in join_community
        self.password_input.send_keys(password)
    ../views/base_element.py:370: in send_keys
        self.find_element().send_keys(value)
    ../views/base_element.py:78: in find_element
        raise NoSuchElementException(
     Device 2: EditBox by accessibility id: `password-input` 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 TestCommunityMultipleDeviceMerged:

    1. test_community_emoji_send_copy_paste_reply, id: 702840

    Test setup failed: critical/chats/test_public_chat_browsing.py:344: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:338: in join_community
        self.password_input.send_keys(password)
    ../views/base_element.py:370: in send_keys
        self.find_element().send_keys(value)
    ../views/base_element.py:78: in find_element
        raise NoSuchElementException(
     Device 2: EditBox by accessibility id: `password-input` 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_contact_block_unblock_offline, id: 702894

    Test setup failed: critical/chats/test_public_chat_browsing.py:344: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:338: in join_community
        self.password_input.send_keys(password)
    ../views/base_element.py:370: in send_keys
        self.find_element().send_keys(value)
    ../views/base_element.py:78: in find_element
        raise NoSuchElementException(
     Device 2: EditBox by accessibility id: `password-input` 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_mark_all_messages_as_read, id: 703086

    Test setup failed: critical/chats/test_public_chat_browsing.py:344: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:338: in join_community
        self.password_input.send_keys(password)
    ../views/base_element.py:370: in send_keys
        self.find_element().send_keys(value)
    ../views/base_element.py:78: in find_element
        raise NoSuchElementException(
     Device 2: EditBox by accessibility id: `password-input` 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
    



    4. test_community_links_with_previews_github_youtube_twitter_gif_send_enable, id: 702844

    Test setup failed: critical/chats/test_public_chat_browsing.py:344: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:338: in join_community
        self.password_input.send_keys(password)
    ../views/base_element.py:370: in send_keys
        self.find_element().send_keys(value)
    ../views/base_element.py:78: in find_element
        raise NoSuchElementException(
     Device 2: EditBox by accessibility id: `password-input` 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 
    

    [[Youtube links preview is not loaded on LambdaTest emulators, needs investigation]]

    5. test_community_unread_messages_badge, id: 702841

    Test setup failed: critical/chats/test_public_chat_browsing.py:344: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:338: in join_community
        self.password_input.send_keys(password)
    ../views/base_element.py:370: in send_keys
        self.find_element().send_keys(value)
    ../views/base_element.py:78: in find_element
        raise NoSuchElementException(
     Device 2: EditBox by accessibility id: `password-input` 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
    



    6. test_community_message_delete, id: 702839

    Test setup failed: critical/chats/test_public_chat_browsing.py:344: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:338: in join_community
        self.password_input.send_keys(password)
    ../views/base_element.py:370: in send_keys
        self.find_element().send_keys(value)
    ../views/base_element.py:78: in find_element
        raise NoSuchElementException(
     Device 2: EditBox by accessibility id: `password-input` 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
    



    7. test_community_message_send_check_timestamps_sender_username, id: 702838

    Device 2: Find Button by xpath: (//*[@resource-id='slide-button-track']//*[@content-desc='icon'])[1]
    Device 2: Find EditBox by accessibility id: password-input

    Test setup failed: critical/chats/test_public_chat_browsing.py:344: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:338: in join_community
        self.password_input.send_keys(password)
    ../views/base_element.py:370: in send_keys
        self.find_element().send_keys(value)
    ../views/base_element.py:78: in find_element
        raise NoSuchElementException(
     Device 2: EditBox by accessibility id: `password-input` 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

    8. test_community_edit_delete_message_when_offline, id: 704615

    Test setup failed: critical/chats/test_public_chat_browsing.py:344: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:338: in join_community
        self.password_input.send_keys(password)
    ../views/base_element.py:370: in send_keys
        self.find_element().send_keys(value)
    ../views/base_element.py:78: in find_element
        raise NoSuchElementException(
     Device 2: EditBox by accessibility id: `password-input` 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
    



    9. test_community_one_image_send_reply, id: 702859

    Test setup failed: critical/chats/test_public_chat_browsing.py:344: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:338: in join_community
        self.password_input.send_keys(password)
    ../views/base_element.py:370: in send_keys
        self.find_element().send_keys(value)
    ../views/base_element.py:78: in find_element
        raise NoSuchElementException(
     Device 2: EditBox by accessibility id: `password-input` 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
    



    10. test_community_message_edit, id: 702843

    Test setup failed: critical/chats/test_public_chat_browsing.py:344: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:338: in join_community
        self.password_input.send_keys(password)
    ../views/base_element.py:370: in send_keys
        self.find_element().send_keys(value)
    ../views/base_element.py:78: in find_element
        raise NoSuchElementException(
     Device 2: EditBox by accessibility id: `password-input` 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
    



    11. test_community_several_images_send_reply, id: 703194

    Test setup failed: critical/chats/test_public_chat_browsing.py:344: in prepare_devices
        self.community_2.join_community()
    ../views/chat_view.py:338: in join_community
        self.password_input.send_keys(password)
    ../views/base_element.py:370: in send_keys
        self.find_element().send_keys(value)
    ../views/base_element.py:78: in find_element
        raise NoSuchElementException(
     Device 2: EditBox by accessibility id: `password-input` 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
    



    Passed tests (2)

    Click to expand

    Class TestActivityCenterContactRequestMultipleDevicePR:

    1. test_add_contact_field_validation, id: 702777
    Device sessions

    Class TestGroupChatMultipleDeviceMergedNewUI:

    1. test_group_chat_mute_chat, id: 703495
    Device sessions

    @VolodLytvynenko
    Copy link
    Contributor

    Hi @ulisesmac thank you for the fixes. Issue 1 is fixed

    Unfortunately, one more issue is found

    PR_ISSUE 2: 'Cannot Read Property Replace of Undefined' Error After Switching Between Testnet and Mainnet

    Steps to Reproduce:

    1. Open the app.
    2. Switch the app from Mainnet to Testnet, or vice versa.

    Actual Result:

    The error "Cannot read property replace of undefined" is displayed.

    switch.mp4

    Expected Result:

    The app transitions smoothly between Mainnet and Testnet without any errors.

    Devices Tested:

    Pixel 7a (Android 13)
    iPhone 11 Pro Max (iOS 17)

    Logs:

    Status-debug-logs.zip

    @VolodLytvynenko
    Copy link
    Contributor

    ##PR_ISSUE 3: "Cannot Read Property 'uri' of Null" Error When Opening Join Community Drawer

    Steps to Reproduce:

    1. Navigate to any community where you are not currently a member.
    2. Tap to join the community.
    3. Open the Join Community Drawer.

    Actual Result:

    Error Message: "Cannot read property 'uri' of null" is displayed every time the Join Community Drawer is opened.

    community.mp4

    Expected Result:

    The Join Community Drawer should open without errors.

    Devices:

    • Pixel 7a, Android 13
    • iPhone 11 Pro Max, IOS 17

    Logs

    https://drive.google.com/file/d/1L1rJiPT4ZsW9WRjcxTUizKkouRN-puWJ/view?usp=drive_link

    @ulisesmac ulisesmac force-pushed the 21658-avatars-blinking branch from d303740 to 5d9bca4 Compare January 8, 2025 01:38
    @ulisesmac
    Copy link
    Contributor Author

    @VolodLytvynenko
    The implementation had multiple issues everywhere we imported image. It was my fault to do not properly test these places.

    It's been fixed now, please re-test it.

    Thanks!

    @status-im-auto
    Copy link
    Member

    89% of end-end tests have passed

    Total executed tests: 56
    Failed tests: 4
    Expected to fail tests: 2
    Passed tests: 50
    
    IDs of failed tests: 702894,703086,704615,702843 
    
    IDs of expected to fail tests: 702844,703503 
    

    Failed tests (4)

    Click to expand
  • Rerun failed tests

  • Class TestCommunityMultipleDeviceMerged:

    1. test_community_contact_block_unblock_offline, id: 702894

    Device 1: Looking for chat: 'shibaVfdjMbLNctGZQ4m'
    Device 1: Find `Button` by `xpath`: `//*[@content-desc='author-primary-name'][starts-with(@text,'shibaVfdjMbLNctGZQ4m')]/../*[@content-desc='Unblock']`

    critical/chats/test_public_chat_browsing.py:730: in test_community_contact_block_unblock_offline
        self.home_1.get_chat(self.username_2).profile_unblock_button.click()
    ../views/base_element.py:89: in click
        element = self.find_element()
    ../views/base_element.py:78: in find_element
        raise NoSuchElementException(
     Device 1: Button by xpath: `//*[@content-desc='author-primary-name'][starts-with(@text,'shibaVfdjMbLNctGZQ4m')]/../*[@content-desc='Unblock']` 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

    2. test_community_mark_all_messages_as_read, id: 703086

    Device 1: Long press on ChatElement until expected element is shown
    Device 1: Find Button by accessibility id: mark-as-read

    critical/chats/test_public_chat_browsing.py:797: in test_community_mark_all_messages_as_read
        mark_as_read_button.click()
    ../views/base_element.py:89: in click
        element = self.find_element()
    ../views/base_element.py:78: in find_element
        raise NoSuchElementException(
     Device 1: Button by accessibility id: `mark-as-read` 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_community_edit_delete_message_when_offline, id: 704615

    # STEP: Receiver is checking if initial messages were delivered
    Device 1: Looking for a message by text: message to edit

    critical/chats/test_public_chat_browsing.py:820: in test_community_edit_delete_message_when_offline
        self.channel_1.driver.fail("Message '%s' was not received" % message)
    base_test_case.py:154: in fail
        pytest.fail('Device %s: %s' % (self.number, text))
     Device 1: Message 'message to edit' was not received
    



    Device sessions

    4. test_community_message_edit, id: 702843

    Device 1: Find EmojisNumber by xpath: //*[starts-with(@text,'Message AFTER edit 2 (Edited)')]/ancestor::android.view.ViewGroup[@content-desc='chat-item']/../..//*[@content-desc='emoji-reaction-2']/android.widget.TextView[2]
    Device 1: Element EmojisNumber text is equal to 1

    critical/chats/test_public_chat_browsing.py:382: in test_community_message_edit
        self.errors.verify_no_errors()
    base_test_case.py:176: in verify_no_errors
        pytest.fail('\n '.join([self.errors.pop(0) for _ in range(len(self.errors))]))
     Message is not edited
    



    Device sessions

    Expected to fail tests (2)

    Click to expand

    Class TestCommunityMultipleDeviceMerged:

    1. test_community_links_with_previews_github_youtube_twitter_gif_send_enable, id: 702844

    Device 2: Find EmojisNumber by xpath: //*[starts-with(@text,'https://m.youtube.com/watch?v=Je7yErjEVt4')]/ancestor::android.view.ViewGroup[@content-desc='chat-item']/../..//*[@content-desc='emoji-reaction-4']/android.widget.TextView[2]
    Device 2: Element EmojisNumber text is equal to 1

    critical/chats/test_public_chat_browsing.py:652: in test_community_links_with_previews_github_youtube_twitter_gif_send_enable
        self.errors.verify_no_errors()
    base_test_case.py:176: in verify_no_errors
        pytest.fail('\n '.join([self.errors.pop(0) for _ in range(len(self.errors))]))
     No preview is loaded for url https://youtu.be/Je7yErjEVt4
    E    No preview is loaded for url https://www.youtube.com/watch?v=XN-SVmuJH2g&list=PLbrz7IuP1hrgNtYe9g6YHwHO6F3OqNMao
    E    No preview is loaded for url https://m.youtube.com/watch?v=Je7yErjEVt4 
    

    [[Youtube links preview is not loaded on LambdaTest emulators, needs investigation]]

    Device sessions

    Class TestCommunityOneDeviceMerged:

    1. test_community_discovery, id: 703503

    Device 1: Tap on found: Button
    # STEP: Check Status community tags in the Discover communities screen

    critical/chats/test_public_chat_browsing.py:297: in test_community_discovery
        self.errors.verify_no_errors()
    base_test_case.py:176: in verify_no_errors
        pytest.fail('\n '.join([self.errors.pop(0) for _ in range(len(self.errors))]))
     Community 'Status' is not in the Discover Communities list. 
    

    [[Might fail if the Discover curation dapp is too slow to load > 2 mins]]

    Device sessions

    Passed tests (50)

    Click to expand

    Class TestGroupChatMultipleDeviceMergedNewUI:

    1. test_group_chat_reactions, id: 703202
    Device sessions

    2. test_group_chat_join_send_text_messages_push, id: 702807
    Device sessions

    3. test_group_chat_offline_pn, id: 702808
    Device sessions

    4. test_group_chat_pin_messages, id: 702732
    Device sessions

    5. test_group_chat_send_image_save_and_share, id: 703297
    Device sessions

    6. test_group_chat_mute_chat, id: 703495
    Device sessions

    Class TestActivityMultipleDevicePR:

    1. test_activity_center_reply_read_unread_delete_filter_swipe, id: 702947
    Device sessions

    Class TestActivityMultipleDevicePRTwo:

    1. test_activity_center_admin_notification_accept_swipe, id: 702958
    Device sessions

    2. test_activity_center_mentions, id: 702957
    Device sessions

    Class TestActivityCenterContactRequestMultipleDevicePR:

    1. test_activity_center_contact_request_accept_swipe_mark_all_as_read, id: 702851
    Device sessions

    2. test_activity_center_contact_request_decline, id: 702850
    Device sessions

    3. test_add_contact_field_validation, id: 702777
    Device sessions

    Class TestWalletOneDevice:

    1. test_wallet_add_remove_regular_account, id: 727231
    2. test_wallet_balance_mainnet, id: 740490

    Class TestWalletMultipleDevice:

    1. test_wallet_send_asset_from_drawer, id: 727230
    2. test_wallet_send_eth, id: 727229

    Class TestOneToOneChatMultipleSharedDevicesNewUi:

    1. test_1_1_chat_edit_message, id: 702855
    Device sessions

    2. test_1_1_chat_message_reaction, id: 702730
    Device sessions

    3. test_1_1_chat_non_latin_messages_stack_update_profile_photo, id: 702745
    Device sessions

    4. test_1_1_chat_pin_messages, id: 702731
    Device sessions

    5. test_1_1_chat_text_message_delete_push_disappear, id: 702733
    Device sessions

    6. test_1_1_chat_push_emoji, id: 702813
    Device sessions

    7. test_1_1_chat_emoji_send_reply_and_open_link, id: 702782
    Device sessions

    8. test_1_1_chat_send_image_save_and_share, id: 703391
    Device sessions

    Class TestCommunityMultipleDeviceMerged:

    1. test_community_emoji_send_copy_paste_reply, id: 702840
    Device sessions

    2. test_community_unread_messages_badge, id: 702841
    Device sessions

    3. test_community_message_delete, id: 702839
    Device sessions

    4. test_community_message_send_check_timestamps_sender_username, id: 702838
    Device sessions

    5. test_community_one_image_send_reply, id: 702859
    Device sessions

    6. test_community_several_images_send_reply, id: 703194
    Device sessions

    Class TestDeepLinksOneDevice:

    1. test_links_open_universal_links_from_chat, id: 704613
    Device sessions

    2. test_links_deep_links_profile, id: 702775
    Device sessions

    3. test_deep_links_communities, id: 739307
    Device sessions

    Class TestOneToOneChatMultipleSharedDevicesNewUiTwo:

    1. test_1_1_chat_mute_chat, id: 703496
    Device sessions

    2. test_1_1_chat_is_shown_message_sent_delivered_from_offline, id: 702783
    Device sessions

    3. test_1_1_chat_delete_via_long_press_relogin, id: 702784
    Device sessions

    Class TestCommunityMultipleDeviceMergedTwo:

    1. test_community_leave, id: 702845
    Device sessions

    2. test_community_mentions_push_notification, id: 702786
    Device sessions

    3. test_community_markdown_support, id: 702809
    Device sessions

    4. test_community_hashtag_links_to_community_channels, id: 702948
    Device sessions

    5. test_community_join_when_node_owner_offline, id: 703629
    Device sessions

    Class TestFallbackMultipleDevice:

    1. test_fallback_add_key_pair, id: 741054
    2. test_fallback_sync_with_error, id: 740220
    3. test_fallback_with_correct_seed_phrase, id: 740221
    4. test_fallback_validate_seed_phrase, id: 740222

    Class TestCommunityOneDeviceMerged:

    1. test_restore_multiaccount_with_waku_backup_remove_profile_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_undo_delete_message, id: 702869
    Device sessions

    5. test_community_mute_community_and_channel, id: 703382
    Device sessions

    @status-im-auto
    Copy link
    Member

    100% of end-end tests have passed

    Total executed tests: 4
    Failed tests: 0
    Expected to fail tests: 0
    Passed tests: 4
    

    Passed tests (4)

    Click to expand

    Class TestCommunityMultipleDeviceMerged:

    1. test_community_contact_block_unblock_offline, id: 702894
    Device sessions

    2. test_community_mark_all_messages_as_read, id: 703086
    Device sessions

    3. test_community_edit_delete_message_when_offline, id: 704615
    Device sessions

    4. test_community_message_edit, id: 702843
    Device sessions

    @VolodLytvynenko
    Copy link
    Contributor

    hi @ulisesmac thank you for PR. No issues from my side. PR is ready to be merged

    @ulisesmac ulisesmac merged commit 32a3f85 into develop Jan 9, 2025
    5 checks passed
    @ulisesmac ulisesmac deleted the 21658-avatars-blinking branch January 9, 2025 00:16
    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.

    Avatars blink all over the app Profile - Status dropdown text is misaligned in profile settings
    10 participants