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

Fix: nil pointer exception due to dynamic data being treated as a function #19672

Merged
merged 1 commit into from
Apr 16, 2024

Conversation

ilmotta
Copy link
Contributor

@ilmotta ilmotta commented Apr 16, 2024

Summary

This is a super straightforward PR, but the bug interrupted me for a while trying to figure out why sometimes an integration test was throwing TypeError: Cannot read properties of null (reading 'call').

I identified that the original code wasn't respecting Clojure's nil punning good practices. In Clojure, it's often recommended to not use dynamic data as functions, because if they're nil, in CLJS we'll get an exception and as usual in CLJS, the stacktrace won't be very readable.

We should prefer contains? or get, which will work just fine with nil values, and only use data as a function if it's static, e.g. a map defined in a def.

Areas that may be impacted

PR is safe to be merged without manual testing.

status: ready

@status-im-auto
Copy link
Member

status-im-auto commented Apr 16, 2024

Jenkins Builds

Click to see older builds (4)
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ 962e966 #1 2024-04-16 13:47:37 ~5 min android-e2e 🤖apk 📲
✔️ 962e966 #1 2024-04-16 13:47:49 ~5 min tests 📄log
✔️ 962e966 #1 2024-04-16 13:49:51 ~8 min android 🤖apk 📲
962e966 #1 2024-04-16 13:53:22 ~11 min ios 📄log
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ c853ee2 #2 2024-04-16 14:03:10 ~4 min tests 📄log
✔️ c853ee2 #2 2024-04-16 14:05:04 ~6 min android-e2e 🤖apk 📲
✔️ c853ee2 #2 2024-04-16 14:06:57 ~8 min android 🤖apk 📲
✔️ c853ee2 #2 2024-04-16 14:09:16 ~10 min ios 📱ipa 📲
✔️ 6f9e954 #3 2024-04-16 17:38:44 ~4 min tests 📄log
✔️ 6f9e954 #3 2024-04-16 17:40:29 ~5 min android-e2e 🤖apk 📲
✔️ 6f9e954 #3 2024-04-16 17:41:41 ~7 min android 🤖apk 📲
✔️ 6f9e954 #3 2024-04-16 17:43:19 ~8 min ios 📱ipa 📲

@ilmotta ilmotta force-pushed the ilmotta/quick-fix-function-call branch from 962e966 to c853ee2 Compare April 16, 2024 13:58
@status-im-auto
Copy link
Member

94% of end-end tests have passed

Total executed tests: 52
Failed tests: 1
Expected to fail tests: 2
Passed tests: 49
IDs of failed tests: 702850 
IDs of expected to fail tests: 703503,703495 

Failed tests (1)

Click to expand
  • Rerun failed tests

  • Class TestActivityCenterContactRequestMultipleDevicePR:

    1. test_activity_center_contact_request_decline, id: 702850

    Device 1: Tap on found: Button
    Device 1: Find `Text` by `xpath`: `//*[@content-desc="pending-contact-requests-count"]/android.widget.TextView`

    activity_center/test_activity_center.py:73: in test_activity_center_contact_request_decline
        if self.home_1.pending_contact_request_text.text != '1':
    ../views/base_element.py:416: in text
        text = self.find_element().text
    ../views/base_element.py:79: in find_element
        raise NoSuchElementException(
     Device 1: Text by xpath: `//*[@content-desc="pending-contact-requests-count"]/android.widget.TextView` 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

    Expected to fail tests (2)

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

    Class TestGroupChatMultipleDeviceMergedNewUI:

    1. test_group_chat_mute_chat, id: 703495

    # STEP: Change device time so chat will be unmuted by timer
    Device 2: Long press on ChatElement

    critical/chats/test_group_chat.py:464: in test_group_chat_mute_chat
        self.errors.verify_no_errors()
    base_test_case.py:190: in verify_no_errors
        pytest.fail('\n '.join([self.errors.pop(0) for _ in range(len(self.errors))]))
     Chat is still muted after timeout 
    

    [[Chat is not unmuted after expected time: https://github.com//issues/19627]]

    Device sessions

    Passed tests (49)

    Click to expand

    Class TestGroupChatMultipleDeviceMergedNewUI:

    1. test_group_chat_join_send_text_messages_push, id: 702807
    Device sessions

    2. test_group_chat_reactions, id: 703202
    Device sessions

    3. test_group_chat_pin_messages, id: 702732
    Device sessions

    4. test_group_chat_offline_pn, id: 702808
    Device sessions

    5. test_group_chat_send_image_save_and_share, id: 703297
    Device sessions

    Class TestWalletMultipleDevice:

    1. test_wallet_send_asset_from_drawer, id: 727230
    Device sessions

    2. test_wallet_send_eth, id: 727229
    Device sessions

    Class TestCommunityMultipleDeviceMerged:

    1. test_community_one_image_send_reply, id: 702859
    Device sessions

    2. test_community_several_images_send_reply, id: 703194
    Device sessions

    3. test_community_mark_all_messages_as_read, id: 703086
    Device sessions

    4. test_community_edit_delete_message_when_offline, id: 704615
    Device sessions

    5. test_community_message_edit, id: 702843
    Device sessions

    6. test_community_message_send_check_timestamps_sender_username, id: 702838
    Device sessions

    7. test_community_emoji_send_copy_paste_reply, id: 702840
    Device sessions

    8. test_community_unread_messages_badge, id: 702841
    Device sessions

    9. test_community_links_with_previews_github_youtube_twitter_gif_send_enable, id: 702844
    Device sessions

    10. test_community_contact_block_unblock_offline, id: 702894
    Device sessions

    11. test_community_message_delete, id: 702839
    Device sessions

    Class TestActivityMultipleDevicePR:

    1. test_activity_center_reply_read_unread_delete_filter_swipe, id: 702947
    Device sessions

    2. test_navigation_jump_to, id: 702936
    Device sessions

    Class TestDeepLinksOneDevice:

    1. test_links_open_universal_links_from_chat, id: 704613
    Device sessions

    2. test_links_deep_links, id: 702775
    Device sessions

    Class 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

    Class TestWalletOneDevice:

    1. test_wallet_add_remove_watch_only_account, id: 727232
    Device sessions

    2. test_wallet_add_remove_regular_account, id: 727231
    Device sessions

    Class TestCommunityOneDeviceMerged:

    1. test_community_mute_community_and_channel, id: 703382
    Device sessions

    2. test_community_navigate_to_channel_when_relaunch, id: 702846
    Device sessions

    3. test_restore_multiaccount_with_waku_backup_remove_switch, id: 703133
    Device sessions

    4. test_community_copy_and_paste_message_in_chat_input, id: 702742
    Device sessions

    5. test_community_undo_delete_message, id: 702869
    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 TestOneToOneChatMultipleSharedDevicesNewUiTwo:

    1. test_1_1_chat_delete_via_long_press_relogin, id: 702784
    Device sessions

    2. test_1_1_chat_mute_chat, id: 703496
    Device sessions

    3. test_1_1_chat_is_shown_message_sent_delivered_from_offline, id: 702783
    Device sessions

    Class TestCommunityMultipleDeviceMergedTwo:

    1. test_community_hashtag_links_to_community_channels, id: 702948
    Device sessions

    2. test_community_markdown_support, id: 702809
    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 TestOneToOneChatMultipleSharedDevicesNewUi:

    1. test_1_1_chat_push_emoji, id: 702813
    Device sessions

    2. test_1_1_chat_text_message_delete_push_disappear, id: 702733
    Device sessions

    3. test_1_1_chat_emoji_send_reply_and_open_link, id: 702782
    Device sessions

    4. test_1_1_chat_message_reaction, id: 702730
    Device sessions

    5. test_1_1_chat_pin_messages, id: 702731
    Device sessions

    6. test_1_1_chat_edit_message, id: 702855
    Device sessions

    7. test_1_1_chat_non_latin_messages_stack_update_profile_photo, id: 702745
    Device sessions

    8. test_1_1_chat_send_image_save_and_share, id: 703391
    Device sessions

    @ilmotta ilmotta force-pushed the ilmotta/quick-fix-function-call branch from c853ee2 to 6f9e954 Compare April 16, 2024 17:34
    @ilmotta ilmotta merged commit c81dd8e into develop Apr 16, 2024
    6 checks passed
    @ilmotta ilmotta deleted the ilmotta/quick-fix-function-call branch April 16, 2024 17:48
    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
    Projects
    Archived in project
    Archived in project
    Development

    Successfully merging this pull request may close these issues.

    4 participants