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

Update create profile and sign in screen #21609

Open
wants to merge 3 commits into
base: develop
Choose a base branch
from

Conversation

Parveshdhull
Copy link
Member

@Parveshdhull Parveshdhull commented Nov 11, 2024

fixes #21565
fixes #21564

Testing

Please update the e2e tests(if needed) and perform a light check for regressions in above screen.
Note: The content of the info buttons is out of scope.

status: ready

@Parveshdhull Parveshdhull self-assigned this Nov 11, 2024
@status-im-auto
Copy link
Member

status-im-auto commented Nov 11, 2024

Jenkins Builds

Click to see older builds (26)
Commit #️⃣ Finished (UTC) Duration Platform Result
e47fdd5 #1 2024-11-11 10:38:39 ~58 sec ios 📄log
e47fdd5 #1 2024-11-11 10:38:43 ~59 sec android-e2e 📄log
e47fdd5 #1 2024-11-11 10:38:48 ~1 min android 📄log
e47fdd5 #1 2024-11-11 10:40:25 ~2 min tests 📄log
621d588 #2 2024-11-18 13:25:50 ~49 sec android 📄log
621d588 #2 2024-11-18 13:25:58 ~57 sec ios 📄log
621d588 #2 2024-11-18 13:26:06 ~1 min android-e2e 📄log
621d588 #2 2024-11-18 13:27:38 ~2 min tests 📄log
0dba21e #3 2024-11-22 08:39:27 ~43 sec ios 📄log
0dba21e #3 2024-11-22 08:39:43 ~59 sec android 📄log
0dba21e #3 2024-11-22 08:39:47 ~1 min android-e2e 📄log
0dba21e #3 2024-11-22 08:41:04 ~2 min tests 📄log
ec462f3 #4 2024-11-22 09:28:57 ~3 min tests 📄log
✔️ ec462f3 #4 2024-11-22 09:33:55 ~8 min android-e2e 🤖apk 📲
✔️ ec462f3 #4 2024-11-22 09:35:42 ~10 min android 🤖apk 📲
✔️ ec462f3 #4 2024-11-22 09:35:52 ~10 min ios 📱ipa 📲
✔️ 7ede4f9 #5 2024-11-22 09:49:20 ~5 min tests 📄log
✔️ 7ede4f9 #5 2024-11-22 09:51:26 ~7 min android-e2e 🤖apk 📲
✔️ b53cab5 #6 2024-11-22 09:58:09 ~5 min tests 📄log
✔️ b53cab5 #6 2024-11-22 10:00:27 ~7 min android-e2e 🤖apk 📲
✔️ b53cab5 #6 2024-11-22 10:00:41 ~7 min android 🤖apk 📲
✔️ b53cab5 #6 2024-11-22 10:02:25 ~9 min ios 📱ipa 📲
✔️ 55c2c35 #7 2024-11-22 12:07:44 ~4 min tests 📄log
✔️ 55c2c35 #7 2024-11-22 12:10:21 ~7 min android-e2e 🤖apk 📲
✔️ 55c2c35 #7 2024-11-22 12:10:52 ~8 min android 🤖apk 📲
✔️ 55c2c35 #7 2024-11-22 12:12:38 ~9 min ios 📱ipa 📲
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ 24a1f1d #8 2024-11-22 15:04:11 ~4 min tests 📄log
✔️ 24a1f1d #8 2024-11-22 15:07:51 ~8 min android-e2e 🤖apk 📲
✔️ 24a1f1d #8 2024-11-22 15:08:23 ~8 min android 🤖apk 📲
✔️ 24a1f1d #8 2024-11-22 15:08:58 ~9 min ios 📱ipa 📲
✔️ 99891f4 #9 2024-11-22 16:40:55 ~4 min tests 📄log
✔️ 99891f4 #9 2024-11-22 16:42:55 ~6 min android-e2e 🤖apk 📲
✔️ 99891f4 #9 2024-11-22 16:44:21 ~8 min android 🤖apk 📲
✔️ 99891f4 #9 2024-11-22 16:44:58 ~8 min ios 📱ipa 📲

@Parveshdhull Parveshdhull force-pushed the fix/onboarding-create-profile-screen branch 5 times, most recently from 7ede4f9 to b53cab5 Compare November 22, 2024 09:52
@Parveshdhull Parveshdhull changed the title [WIP]: Update create profile and sign in screen Update create profile and sign in screen Nov 22, 2024
@Parveshdhull Parveshdhull marked this pull request as ready for review November 22, 2024 09:53
@Parveshdhull Parveshdhull force-pushed the fix/onboarding-create-profile-screen branch from b53cab5 to 55c2c35 Compare November 22, 2024 12:02
@Parveshdhull Parveshdhull requested review from ilmotta and flexsurfer and removed request for ilmotta November 22, 2024 12:29
@VolodLytvynenko VolodLytvynenko self-assigned this Nov 22, 2024
@status-im-auto
Copy link
Member

0% of end-end tests have passed

Total executed tests: 8
Failed tests: 7
Expected to fail tests: 1
Passed tests: 0
IDs of failed tests: 727230,727231,702745,702742,740490,727229,703133 
IDs of expected to fail tests: 702843 

Failed tests (7)

Click to expand
  • Rerun failed tests

  • Class TestWalletMultipleDevice:

    1. test_wallet_send_asset_from_drawer, id: 727230
    Test setup failed: critical/test_wallet.py:28: in prepare_devices
        self.loop.run_until_complete(
    /usr/lib/python3.10/asyncio/base_events.py:649: in run_until_complete
        return future.result()
    __init__.py:52: in run_in_parallel
        returns.append(await k)
    /usr/lib/python3.10/concurrent/futures/thread.py:58: in run
        result = self.fn(*self.args, **self.kwargs)
    ../views/sign_in_view.py:274: in recover_access
        self.use_recovery_phrase_button.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 accessibility id: `use-recovery-phrase-option-card` 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 2: Tap on found: Button
    Device 2: Find Button by accessibility id: use-recovery-phrase-option-card

    Test setup failed: critical/test_wallet.py:28: in prepare_devices
        self.loop.run_until_complete(
    /usr/lib/python3.10/asyncio/base_events.py:649: in run_until_complete
        return future.result()
    __init__.py:52: in run_in_parallel
        returns.append(await k)
    /usr/lib/python3.10/concurrent/futures/thread.py:58: in run
        result = self.fn(*self.args, **self.kwargs)
    ../views/sign_in_view.py:274: in recover_access
        self.use_recovery_phrase_button.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 accessibility id: `use-recovery-phrase-option-card` 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 TestCommunityOneDeviceMerged:

    1. test_community_copy_and_paste_message_in_chat_input, id: 702742

    Device 1: EditBox element not found
    Device 1: Find EditBox by accessibility id: profile-title-input

    Test setup failed: critical/chats/test_public_chat_browsing.py:26: in prepare_devices
        self.home = self.sign_in.create_user(username=self.username)
    ../views/sign_in_view.py:252: in create_user
        self.set_profile(username)
    ../views/sign_in_view.py:236: in set_profile
        self.profile_title_input.send_keys(username)
    ../views/base_element.py:388: in send_keys
        self.find_element().send_keys(value)
    ../views/base_element.py:79: in find_element
        raise NoSuchElementException(
     Device 1: EditBox by accessibility id: `profile-title-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

    2. test_restore_multiaccount_with_waku_backup_remove_profile_switch, id: 703133

    Test setup failed: critical/chats/test_public_chat_browsing.py:26: in prepare_devices
        self.home = self.sign_in.create_user(username=self.username)
    ../views/sign_in_view.py:252: in create_user
        self.set_profile(username)
    ../views/sign_in_view.py:236: in set_profile
        self.profile_title_input.send_keys(username)
    ../views/base_element.py:388: in send_keys
        self.find_element().send_keys(value)
    ../views/base_element.py:79: in find_element
        raise NoSuchElementException(
     Device 1: EditBox by accessibility id: `profile-title-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 TestOneToOneChatMultipleSharedDevicesNewUi:

    1. test_1_1_chat_non_latin_messages_stack_update_profile_photo, id: 702745

    Device 1: EditBox element not found
    Device 1: Find EditBox by accessibility id: profile-title-input

    Test setup failed: critical/chats/test_1_1_public_chats.py:24: in prepare_devices
        self.loop.run_until_complete(run_in_parallel(((self.device_1.create_user, {'enable_notifications': True,
    /usr/lib/python3.10/asyncio/base_events.py:649: in run_until_complete
        return future.result()
    __init__.py:52: in run_in_parallel
        returns.append(await k)
    /usr/lib/python3.10/concurrent/futures/thread.py:58: in run
        result = self.fn(*self.args, **self.kwargs)
    ../views/sign_in_view.py:252: in create_user
        self.set_profile(username)
    ../views/sign_in_view.py:236: in set_profile
        self.profile_title_input.send_keys(username)
    ../views/base_element.py:388: in send_keys
        self.find_element().send_keys(value)
    ../views/base_element.py:79: in find_element
        raise NoSuchElementException(
     Device 1: EditBox by accessibility id: `profile-title-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 TestWalletOneDevice:

    1. test_wallet_add_remove_regular_account, id: 727231

    Test setup failed: critical/test_wallet.py:210: in prepare_devices
        self.sign_in_view.recover_access(passphrase=self.sender['passphrase'], username=self.sender_username)
    ../views/sign_in_view.py:274: in recover_access
        self.use_recovery_phrase_button.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 accessibility id: `use-recovery-phrase-option-card` 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_balance_mainnet, id: 740490

    Device 1: Tap on found: Button
    Device 1: Find Button by accessibility id: use-recovery-phrase-option-card

    Test setup failed: critical/test_wallet.py:210: in prepare_devices
        self.sign_in_view.recover_access(passphrase=self.sender['passphrase'], username=self.sender_username)
    ../views/sign_in_view.py:274: in recover_access
        self.use_recovery_phrase_button.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 accessibility id: `use-recovery-phrase-option-card` is not found on the screen; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#no-such-element-exception
    



    Expected to fail tests (1)

    Click to expand

    Class TestCommunityMultipleDeviceMerged:

    1. test_community_message_edit, id: 702843

    Test is not run, e2e blocker  
    

    [[reason: [NOTRUN] Skipped due to waku issue on staging fleet]]

    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.

    Just checking: @Parveshdhull, are the PNGs compressed?

    @Parveshdhull
    Copy link
    Member Author

    Just checking: @Parveshdhull, are the PNGs compressed?

    Thank you @ilmotta for reviewing the PR. Yes, PNGs are compressed.

    @VolodLytvynenko
    Copy link
    Contributor

    hi @ilmotta I’m a bit unclear about the expected results and would like to clarify a few points if my verification is correct:

    1. From this original task and this design The description states:

    Title "Sync or recover profile" changed to "Sign in"

    However, by design I see "Log in" instead of "Sign in".
    The app currently matches the latter ("Log in").

    Screen from the the latest build of current PR
    image

    1. In original task the description mentions:

    Figma still has references saying "recovery phrase" such as here. Always use "seed phrase" from now on.

    However, in the new design and in the latest build, "recovery phrase" is still used.
    image

    I understand the design might have been updated, which could cause discrepancies. To confirm:
    Should I refer to the simplified onboarding design as a correct resource for verification?

    @VolodLytvynenko
    Copy link
    Contributor

    hi @yevh-berdnyk Could you please adjust the e2e tests in this PR? It seems the accessibility ID use-recovery-phrase-option-card is no longer used. thanx!

    @Parveshdhull
    Copy link
    Member Author

    Parveshdhull commented Nov 22, 2024

    Hi, @VolodLytvynenko, Thank you very much for taking the PR for testing.

    Please use latest design (Simplified Onboarding) as source for comparison. Issue content is little outdated.

    Always use "seed phrase" from now on.

    #21568 (comment)

    @VolodLytvynenko
    Copy link
    Contributor

    @Parveshdhull thank you for clarification. One more question: Is it expected to see the "Feature not implemented" alert when selecting Use an empty Keycard during profile creation? From my discussion with @mariia-skrypnyk, it seems onboarding with an empty Keycard is available and enabled in the latest nightly. Could you clarify why it’s disabled in the PR?
    image

    @Parveshdhull
    Copy link
    Member Author

    Hi @flexsurfer, @ilmotta,

    Is the implementation of the empty key-card flow complete? Also, should both login with keycard and use empty keycard should use same dispatch, :open-modal :screen/keycard.check?

    @status-im-auto
    Copy link
    Member

    62% of end-end tests have passed

    Total executed tests: 8
    Failed tests: 2
    Expected to fail tests: 1
    Passed tests: 5
    
    IDs of failed tests: 727230,727229 
    
    IDs of expected to fail tests: 702843 
    

    Failed tests (2)

    Click to expand
  • Rerun failed tests

  • Class TestWalletMultipleDevice:

    1. test_wallet_send_asset_from_drawer, id: 727230
    critical/test_wallet.py:162: in test_wallet_send_asset_from_drawer
        self.wallet_1.navigate_back_to_wallet_view()
    ../views/base_view.py:456: in navigate_back_to_wallet_view
        while not element.is_element_displayed(1) and counter <= attempts:
    ../views/base_element.py:221: in is_element_displayed
        return self.wait_for_visibility_of_element(sec, ignored_exceptions=ignored_exceptions)
    ../views/base_element.py:145: in wait_for_visibility_of_element
        .until(expected_conditions.visibility_of_element_located((self.by, self.locator)))
    ../../../../status-app-prs-rerun@tmp/venv/lib/python3.10/site-packages/selenium/webdriver/support/wait.py:86: in until
        value = method(self._driver)
    ../../../../status-app-prs-rerun@tmp/venv/lib/python3.10/site-packages/selenium/webdriver/support/expected_conditions.py:152: in _predicate
        return _element_if_visible(driver.find_element(*locator))
    ../../../../status-app-prs-rerun@tmp/venv/lib/python3.10/site-packages/appium/webdriver/webdriver.py:409: in find_element
        return self.execute(RemoteCommand.FIND_ELEMENT, {'using': by, 'value': value})['value']
    ../../../../status-app-prs-rerun@tmp/venv/lib/python3.10/site-packages/selenium/webdriver/remote/webdriver.py:345: in execute
        self.error_handler.check_response(response)
    ../../../../status-app-prs-rerun@tmp/venv/lib/python3.10/site-packages/appium/webdriver/errorhandler.py:122: in check_response
        raise exception_class(msg=message, stacktrace=format_stacktrace(stacktrace))
     A session is either terminated or not started
    E   Stacktrace:
    E   NoSuchDriverError: A session is either terminated or not started
    E       at asyncHandler (/mnt/sauce/appium/appium-v2.11.0/packages/base-driver/lib/protocol/protocol.js:309:15)
    E       at /mnt/sauce/appium/appium-v2.11.0/packages/base-driver/lib/protocol/protocol.js:512:15
    E       at Layer.handle [as handle_request] (/mnt/sauce/appium/appium-v2.11.0/node_modules/express/lib/router/layer.js:95:5)
    E       at next (/mnt/sauce/appium/appium-v2.11.0/node_modules/express/lib/router/route.js:149:13)
    E       at Route.dispatch (/mnt/sauce/appium/appium-v2.11.0/node_modules/express/lib/router/route.js:119:3)
    E       at Layer.handle [as handle_request] (/mnt/sauce/appium/appium-v2.11.0/node_modules/express/lib/router/layer.js:95:5)
    E       at /mnt/sauce/appium/appium-v2.11.0/node_modules/express/lib/router/index.js:284:15
    E       at param (/mnt/sauce/appium/appium-v2.11.0/node_modules/express/lib/router/index.js:365:14)
    E       at param (/mnt/sauce/appium/appium-v2.11.0/node_modules/express/lib/router/index.js:376:14)
    E       at Function.process_params (/mnt/sauce/appium/appium-v2.11.0/node_modules/express/lib/router/index.js:421:3)
    E       at next (/mnt/sauce/appium/appium-v2.11.0/node_modules/express/lib/router/index.js:280:10)
    E       at logger (/mnt/sauce/appium/appium-v2.11.0/node_modules/morgan/index.js:144:5)
    E       at Layer.handle [as handle_request] (/mnt/sauce/appium/appium-v2.11.0/node_modules/express/lib/router/layer.js:95:5)
    E       at trim_prefix (/mnt/sauce/appium/appium-v2.11.0/node_modules/express/lib/router/index.js:328:13)
    E       at /mnt/sauce/appium/appium-v2.11.0/node_modules/express/lib/router/index.js:286:9
    E       at Function.process_params (/mnt/sauce/appium/appium-v2.11.0/node_modules/express/lib/router/index.js:346:12)
    E       at next (/mnt/sauce/appium/appium-v2.11.0/node_modules/express/lib/router/index.js:280:10)
    E       at /mnt/sauce/appium/appium-v2.11.0/node_modules/body-parser/lib/read.js:137:5
    E       at AsyncResource.runInAsyncScope (node:async_hooks:204:9)
    E       at invokeCallback (/mnt/sauce/appium/appium-v2.11.0/node_modules/raw-body/index.js:238:16)
    E       at done (/mnt/sauce/appium/appium-v2.11.0/node_modules/raw-body/index.js:227:7)
    E       at IncomingMessage.onEnd (/mnt/sauce/appium/appium-v2.11.0/node_modules/raw-body/index.js:287:7)
    E       at IncomingMessage.emit (node:events:513:28)
    E       at endReadableNT (node:internal/streams/readable:1359:12)
    E       at processTicksAndRejections (node:internal/process/task_queues:82:21)
    



    2. test_wallet_send_eth, id: 727229

    Expected amount of confirmations is 7, in fact 21347
    Expected amount of confirmations is 7, in fact 21425

    critical/test_wallet.py:141: in test_wallet_send_eth
        self.network_api.wait_for_confirmation_of_transaction(address=self.sender['wallet_address'],
    ../support/api/network_api.py:131: in wait_for_confirmation_of_transaction
        pytest.fail('The last transaction was not confirmed, address is %s, still has %s confirmations' % (
     The last transaction was not confirmed, address is 0x83DFF07F40642Fb42FEBB5deB6A314c8b725749E, still has 21425 confirmations
    



    Expected to fail tests (1)

    Click to expand

    Class TestCommunityMultipleDeviceMerged:

    1. test_community_message_edit, id: 702843

    Test is not run, e2e blocker  
    

    [[reason: [NOTRUN] Skipped due to waku issue on staging fleet]]

    Passed tests (5)

    Click to expand

    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

    Class TestWalletOneDevice:

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

    Class TestOneToOneChatMultipleSharedDevicesNewUi:

    1. test_1_1_chat_non_latin_messages_stack_update_profile_photo, id: 702745
    Device sessions

    @yevh-berdnyk
    Copy link
    Contributor

    Hi @Parveshdhull, @VolodLytvynenko, E2E tests are updated, the recent failures are not PR related. Thanks!

    @ilmotta
    Copy link
    Contributor

    ilmotta commented Nov 22, 2024

    Is the implementation of the empty key-card flow complete? Also, should both login with keycard and `use empty keycard should use same dispatch, :open-modal :screen/keycard.check?

    @Parveshdhull, @VolodLytvynenko, the PR to support the empty keycard flow is in progress #21623. @Parveshdhull I think it's up to you and @flexsurfer to decide who merges first and then the other adjust/rebase.

    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
    Projects
    Status: IN TESTING
    Development

    Successfully merging this pull request may close these issues.

    Onboarding - New Sign in screen Onboarding - Update Create Profile screen
    6 participants