2024-03-22 07:49:16 +00:00
|
|
|
import allure
|
|
|
|
import pytest
|
|
|
|
from allure_commons._allure import step
|
|
|
|
|
|
|
|
import driver
|
2024-05-13 07:09:56 +00:00
|
|
|
from gui.components.changes_detected_popup import CustomSortOrderChangesDetectedToastMessage
|
|
|
|
from gui.screens.wallet import WalletAccountView, ManageTokensView
|
2024-03-22 07:49:16 +00:00
|
|
|
from tests.wallet_main_screen import marks
|
|
|
|
|
|
|
|
from gui.components.signing_phrase_popup import SigningPhrasePopup
|
|
|
|
from gui.main_window import MainWindow
|
|
|
|
|
|
|
|
pytestmark = marks
|
|
|
|
|
|
|
|
|
2024-03-25 09:51:23 +00:00
|
|
|
@allure.testcase('https://ethstatus.testrail.net/index.php?/cases/view/727223',
|
2024-03-22 07:49:16 +00:00
|
|
|
'Sort by Asset balance value')
|
2024-03-25 09:51:23 +00:00
|
|
|
@allure.testcase('https://ethstatus.testrail.net/index.php?/cases/view/727224',
|
2024-03-22 07:49:16 +00:00
|
|
|
'Sort by Asset balance')
|
2024-03-25 09:51:23 +00:00
|
|
|
@allure.testcase('https://ethstatus.testrail.net/index.php?/cases/view/727225',
|
2024-03-22 07:49:16 +00:00
|
|
|
'Sort by Asset value')
|
2024-03-25 09:51:23 +00:00
|
|
|
@allure.testcase('https://ethstatus.testrail.net/index.php?/cases/view/727226',
|
|
|
|
'Sort by 1d change: balance value')
|
|
|
|
@allure.testcase('https://ethstatus.testrail.net/index.php?/cases/view/727227',
|
2024-03-22 07:49:16 +00:00
|
|
|
'Sort by Asset name')
|
2024-03-25 09:51:23 +00:00
|
|
|
@pytest.mark.case(727223, 727224, 727225, 727226, 727227)
|
2024-06-28 08:38:43 +00:00
|
|
|
@pytest.mark.parametrize('address, name, dai, wrappedeth, stt, eth', [
|
|
|
|
pytest.param('0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', 'AssetsCollectibles', 'Dai Stablecoin', 'Wrapped Ether',
|
2024-03-22 07:49:16 +00:00
|
|
|
'Status Test Token', 'Ether')
|
|
|
|
])
|
2024-06-28 08:38:43 +00:00
|
|
|
def test_wallet_sort_assets(main_screen: MainWindow, address, name, dai, wrappedeth, stt, eth):
|
2024-03-22 07:49:16 +00:00
|
|
|
with step('Turn on Testnet mode'):
|
|
|
|
networks = main_screen.left_panel.open_settings().left_panel.open_wallet_settings().open_networks()
|
|
|
|
networks.switch_testnet_mode_toggle().turn_on_testnet_mode_in_testnet_modal()
|
|
|
|
|
|
|
|
with step('Add watched address with plus action button'):
|
|
|
|
wallet = main_screen.left_panel.open_wallet()
|
|
|
|
SigningPhrasePopup().wait_until_appears().confirm_phrase()
|
|
|
|
account_popup = wallet.left_panel.open_add_account_popup()
|
2024-05-30 12:07:43 +00:00
|
|
|
account_popup.set_name(name).set_origin_watched_address(address).save_changes()
|
2024-03-22 07:49:16 +00:00
|
|
|
account_popup.wait_until_hidden()
|
|
|
|
|
|
|
|
with step(
|
|
|
|
'Sort assets by asset balance value and verify the value in combobox is correct and the order is correct'):
|
|
|
|
wallet_account_view = WalletAccountView()
|
|
|
|
sorting = wallet_account_view.open_assets_tab().click_filter_button()
|
|
|
|
sorting.choose_sort_by_value('Asset balance value')
|
|
|
|
wallet_account_view.click_arrow_button('arrow-up-icon', 1)
|
|
|
|
assert wallet_account_view.get_combobox_value() == 'Asset balance value ↑'
|
|
|
|
assets_order = wallet_account_view.get_list_of_assets()
|
|
|
|
assert driver.waitFor(lambda: assets_order[0].title == dai, 6000)
|
2024-06-28 08:38:43 +00:00
|
|
|
assert driver.waitFor(lambda: assets_order[1].title == stt, 6000)
|
|
|
|
assert driver.waitFor(lambda: assets_order[2].title == wrappedeth, 6000)
|
2024-03-22 07:49:16 +00:00
|
|
|
assert driver.waitFor(lambda: assets_order[3].title == eth, 6000)
|
|
|
|
|
|
|
|
wallet_account_view.click_arrow_button('arrow-down-icon', 1)
|
|
|
|
assert wallet_account_view.get_combobox_value() == 'Asset balance value ↓'
|
|
|
|
assets_order = wallet_account_view.get_list_of_assets()
|
|
|
|
assert driver.waitFor(lambda: assets_order[0].title == eth, 6000)
|
2024-06-28 08:38:43 +00:00
|
|
|
assert driver.waitFor(lambda: assets_order[1].title == wrappedeth, 6000)
|
|
|
|
assert driver.waitFor(lambda: assets_order[2].title == dai, 6000)
|
2024-03-22 07:49:16 +00:00
|
|
|
assert driver.waitFor(lambda: assets_order[3].title == stt, 6000)
|
|
|
|
|
|
|
|
with step('Sort assets by asset balance and verify the value in combobox is correct and the order is correct'):
|
|
|
|
sorting.choose_sort_by_value('Asset balance')
|
|
|
|
wallet_account_view.click_arrow_button('arrow-up-icon', 2)
|
|
|
|
assert wallet_account_view.get_combobox_value() == 'Asset balance ↑'
|
|
|
|
assets_order = wallet_account_view.get_list_of_assets()
|
|
|
|
assert driver.waitFor(lambda: assets_order[0].title == dai, 6000)
|
|
|
|
assert driver.waitFor(lambda: assets_order[1].title == stt, 6000)
|
2024-06-28 08:38:43 +00:00
|
|
|
assert driver.waitFor(lambda: assets_order[2].title == wrappedeth, 6000)
|
2024-03-22 07:49:16 +00:00
|
|
|
assert driver.waitFor(lambda: assets_order[3].title == eth, 6000)
|
|
|
|
|
|
|
|
wallet_account_view.click_arrow_button('arrow-down-icon', 2)
|
|
|
|
assert wallet_account_view.get_combobox_value() == 'Asset balance ↓'
|
|
|
|
assets_order = wallet_account_view.get_list_of_assets()
|
|
|
|
assert driver.waitFor(lambda: assets_order[0].title == eth, 6000)
|
2024-06-28 08:38:43 +00:00
|
|
|
assert driver.waitFor(lambda: assets_order[1].title == wrappedeth, 6000)
|
2024-03-22 07:49:16 +00:00
|
|
|
assert driver.waitFor(lambda: assets_order[2].title == dai, 6000)
|
|
|
|
assert driver.waitFor(lambda: assets_order[3].title == stt, 6000)
|
|
|
|
|
|
|
|
with step('Sort assets by asset value and verify the value in combobox is correct and the order is correct'):
|
|
|
|
sorting.choose_sort_by_value('Asset value')
|
|
|
|
wallet_account_view.click_arrow_button('arrow-up-icon', 3)
|
|
|
|
assert wallet_account_view.get_combobox_value() == 'Asset value ↑'
|
|
|
|
assets_order = wallet_account_view.get_list_of_assets()
|
2024-06-28 08:38:43 +00:00
|
|
|
assert driver.waitFor(lambda: assets_order[0].title == stt, 6000)
|
|
|
|
assert driver.waitFor(lambda: assets_order[1].title == dai, 6000)
|
|
|
|
assert driver.waitFor(lambda: assets_order[2].title == wrappedeth, 6000)
|
2024-03-22 07:49:16 +00:00
|
|
|
assert driver.waitFor(lambda: assets_order[3].title == eth, 6000)
|
|
|
|
|
|
|
|
wallet_account_view.click_arrow_button('arrow-down-icon', 3)
|
|
|
|
assert wallet_account_view.get_combobox_value() == 'Asset value ↓'
|
|
|
|
assets_order = wallet_account_view.get_list_of_assets()
|
|
|
|
assert driver.waitFor(lambda: assets_order[0].title == eth, 6000)
|
2024-06-28 08:38:43 +00:00
|
|
|
assert driver.waitFor(lambda: assets_order[1].title == wrappedeth, 6000)
|
|
|
|
assert driver.waitFor(lambda: assets_order[2].title == dai, 6000)
|
|
|
|
assert driver.waitFor(lambda: assets_order[3].title == stt, 6000)
|
2024-03-22 07:49:16 +00:00
|
|
|
|
|
|
|
with step(
|
|
|
|
'Sort assets by 1d change: balance value and verify the value in combobox is correct and the order is correct'):
|
|
|
|
sorting.choose_sort_by_value('1d change: balance value')
|
|
|
|
wallet_account_view.click_arrow_button('arrow-up-icon', 4)
|
|
|
|
assert wallet_account_view.get_combobox_value() == '1d change: balance value ↑'
|
|
|
|
assets_order = wallet_account_view.get_list_of_assets()
|
|
|
|
assert driver.waitFor(lambda: assets_order[0].title == dai, 6000)
|
2024-06-28 08:38:43 +00:00
|
|
|
assert driver.waitFor(lambda: assets_order[1].title == stt, 6000)
|
|
|
|
assert driver.waitFor(lambda: assets_order[2].title == wrappedeth, 6000)
|
2024-03-22 07:49:16 +00:00
|
|
|
assert driver.waitFor(lambda: assets_order[3].title == eth, 6000)
|
|
|
|
|
|
|
|
wallet_account_view.click_arrow_button('arrow-down-icon', 4)
|
|
|
|
assert wallet_account_view.get_combobox_value() == '1d change: balance value ↓'
|
|
|
|
assets_order = wallet_account_view.get_list_of_assets()
|
|
|
|
assert driver.waitFor(lambda: assets_order[0].title == eth, 6000)
|
2024-06-28 08:38:43 +00:00
|
|
|
assert driver.waitFor(lambda: assets_order[1].title == wrappedeth, 6000)
|
|
|
|
assert driver.waitFor(lambda: assets_order[2].title == dai, 6000)
|
2024-03-22 07:49:16 +00:00
|
|
|
assert driver.waitFor(lambda: assets_order[3].title == stt, 6000)
|
|
|
|
|
|
|
|
with step('Sort assets by asset name and verify the value in combobox is correct and the order is correct'):
|
|
|
|
sorting.choose_sort_by_value('Asset name')
|
|
|
|
wallet_account_view.click_arrow_button('arrow-up-icon', 5)
|
|
|
|
assert wallet_account_view.get_combobox_value() == 'Asset name ↑'
|
|
|
|
assets_order = wallet_account_view.get_list_of_assets()
|
|
|
|
assert driver.waitFor(lambda: assets_order[0].title == dai, 6000)
|
|
|
|
assert driver.waitFor(lambda: assets_order[1].title == eth, 6000)
|
|
|
|
assert driver.waitFor(lambda: assets_order[2].title == stt, 6000)
|
2024-06-28 08:38:43 +00:00
|
|
|
assert driver.waitFor(lambda: assets_order[3].title == wrappedeth, 6000)
|
2024-03-22 07:49:16 +00:00
|
|
|
|
|
|
|
wallet_account_view.click_arrow_button('arrow-down-icon', 5)
|
|
|
|
assert wallet_account_view.get_combobox_value() == 'Asset name ↓'
|
|
|
|
assets_order = wallet_account_view.get_list_of_assets()
|
2024-06-28 08:38:43 +00:00
|
|
|
assert driver.waitFor(lambda: assets_order[0].title == wrappedeth, 6000)
|
2024-03-22 07:49:16 +00:00
|
|
|
assert driver.waitFor(lambda: assets_order[1].title == stt, 6000)
|
|
|
|
assert driver.waitFor(lambda: assets_order[2].title == eth, 6000)
|
|
|
|
assert driver.waitFor(lambda: assets_order[3].title == dai, 6000)
|
2024-05-13 07:09:56 +00:00
|
|
|
|
|
|
|
|
|
|
|
@allure.testcase('https://ethstatus.testrail.net/index.php?/cases/view/704709',
|
|
|
|
'Create custom order')
|
|
|
|
@allure.testcase('https://ethstatus.testrail.net/index.php?/cases/view/704731',
|
|
|
|
'Select custom order')
|
|
|
|
@allure.testcase('https://ethstatus.testrail.net/index.php?/cases/view/704732',
|
|
|
|
'Edit custom order')
|
|
|
|
@pytest.mark.case(704709, 704731, 704732)
|
2024-06-28 08:38:43 +00:00
|
|
|
@pytest.mark.parametrize('address, name, dai, wrappedeth, stt, eth', [
|
|
|
|
pytest.param('0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', 'AssetsCollectibles', 'Dai Stablecoin', 'Wrapped Ether',
|
2024-05-13 07:09:56 +00:00
|
|
|
'Status Test Token', 'Ether')
|
|
|
|
])
|
2024-06-28 08:38:43 +00:00
|
|
|
def test_custom_ordering(main_screen: MainWindow, address, name, dai, wrappedeth, stt, eth):
|
2024-05-13 07:09:56 +00:00
|
|
|
with step('Turn on Testnet mode'):
|
|
|
|
networks = main_screen.left_panel.open_settings().left_panel.open_wallet_settings().open_networks()
|
|
|
|
networks.switch_testnet_mode_toggle().turn_on_testnet_mode_in_testnet_modal()
|
|
|
|
|
|
|
|
with step('Add watched address with plus action button'):
|
|
|
|
wallet = main_screen.left_panel.open_wallet()
|
|
|
|
SigningPhrasePopup().wait_until_appears().confirm_phrase()
|
|
|
|
account_popup = wallet.left_panel.open_add_account_popup()
|
2024-05-30 12:07:43 +00:00
|
|
|
account_popup.set_name(name).set_origin_watched_address(address).save_changes()
|
2024-05-13 07:09:56 +00:00
|
|
|
account_popup.wait_until_hidden()
|
|
|
|
|
|
|
|
with step(
|
|
|
|
'Choose Create custom order in sorting dropdown and verify Manage tokens view appears'):
|
|
|
|
wallet_account_view = WalletAccountView()
|
|
|
|
sorting = wallet_account_view.open_assets_tab().click_filter_button()
|
|
|
|
sorting.choose_sort_by_value('Create custom order →')
|
|
|
|
manage_tokens = ManageTokensView()
|
|
|
|
assert manage_tokens.exists
|
|
|
|
|
|
|
|
with step('Drag first token to the end of the list and save changes'):
|
|
|
|
manage_tokens.drag_token(dai, 3)
|
|
|
|
CustomSortOrderChangesDetectedToastMessage().wait_until_appears().save_changes()
|
|
|
|
|
|
|
|
with step('Verify the order is correct in Manage Tokens View'):
|
|
|
|
tokens_order = manage_tokens.tokens
|
|
|
|
assert driver.waitFor(lambda: tokens_order[0].title == eth, 6000)
|
2024-06-28 08:38:43 +00:00
|
|
|
assert driver.waitFor(lambda: tokens_order[1].title == wrappedeth, 6000)
|
2024-05-13 07:09:56 +00:00
|
|
|
assert driver.waitFor(lambda: tokens_order[2].title == stt, 6000)
|
|
|
|
assert driver.waitFor(lambda: tokens_order[3].title == dai, 6000)
|
|
|
|
|
|
|
|
with step('Go to Wallet view and choose Custom order from dropdown'):
|
|
|
|
main_screen.left_panel.open_wallet().left_panel.select_account(name)
|
|
|
|
sorting = wallet_account_view.open_assets_tab().click_filter_button()
|
|
|
|
sorting.choose_sort_by_value('Custom order')
|
|
|
|
assets_order = wallet_account_view.get_list_of_assets()
|
|
|
|
assert driver.waitFor(lambda: assets_order[0].title == eth, 6000)
|
2024-06-28 08:38:43 +00:00
|
|
|
assert driver.waitFor(lambda: assets_order[1].title == wrappedeth, 6000)
|
2024-05-13 07:09:56 +00:00
|
|
|
assert driver.waitFor(lambda: assets_order[2].title == stt, 6000)
|
|
|
|
assert driver.waitFor(lambda: assets_order[3].title == dai, 6000)
|
|
|
|
|
|
|
|
with step('Choose Edit custom order in sorting dropdown and verify Manage tokens view appears'):
|
|
|
|
sorting.choose_sort_by_value('Edit custom order →')
|
|
|
|
manage_tokens = ManageTokensView()
|
|
|
|
assert manage_tokens.exists
|
|
|
|
|
|
|
|
with step('Drag first token to the end of the list and apply changes'):
|
|
|
|
manage_tokens.drag_token(eth, 3)
|
|
|
|
CustomSortOrderChangesDetectedToastMessage().wait_until_appears().save_and_apply_changes()
|
|
|
|
|
2024-06-28 08:38:43 +00:00
|
|
|
# TODO return these steps back after fix of https://github.com/status-im/status-desktop/issues/15368
|
|
|
|
|
|
|
|
# with step('Verify the order is correct in Manage Tokens View'):
|
|
|
|
# tokens_order = manage_tokens.tokens
|
|
|
|
# assert driver.waitFor(lambda: tokens_order[0].title == wrappedeth, 6000)
|
|
|
|
# assert driver.waitFor(lambda: tokens_order[1].title == stt, 6000)
|
|
|
|
# assert driver.waitFor(lambda: tokens_order[2].title == dai, 6000)
|
|
|
|
# assert driver.waitFor(lambda: tokens_order[3].title == eth, 6000)
|
|
|
|
#
|
|
|
|
# with step('Verify the order is correct in Wallet view'):
|
|
|
|
# main_screen.left_panel.open_wallet().left_panel.select_account(name)
|
|
|
|
# assets_order = wallet_account_view.get_list_of_assets()
|
|
|
|
# assert driver.waitFor(lambda: assets_order[0].title == wrappedeth, 6000)
|
|
|
|
# assert driver.waitFor(lambda: assets_order[1].title == stt, 6000)
|
|
|
|
# assert driver.waitFor(lambda: assets_order[2].title == dai, 6000)
|
|
|
|
# assert driver.waitFor(lambda: assets_order[3].title == eth, 6000)
|