status-desktop/test/e2e/tests/settings/settings_wallet/test_wallet_settings_networ...

128 lines
6.9 KiB
Python

import allure
import pytest
from allure import step
from . import marks
import configs.system
from constants.wallet import WalletNetworkSettings, WalletNetworkNaming
from gui.components.wallet.testnet_mode_banner import TestnetModeBanner
from gui.components.toast_message import ToastMessage
from gui.main_window import MainWindow
pytestmark = marks
@allure.testcase('https://ethstatus.testrail.net/index.php?/cases/view/703505', 'Network: Testnet switching')
@pytest.mark.case(703505)
def test_switch_testnet_mode(main_screen: MainWindow):
with step('Verify that Testnet toggle has subtitle'):
networks = main_screen.left_panel.open_settings().left_panel.open_wallet_settings().open_networks()
subtitle = networks.get_testnet_toggle_subtitle()
assert subtitle == WalletNetworkSettings.TESTNET_SUBTITLE.value, \
f"Testnet title is incorrect, current subtitle is {subtitle}"
with step('Verify back to Wallet settings button is present and text on top is correct'):
assert networks.is_back_to_wallet_settings_button_present(), \
f"Back to Wallet settings button is not visible on Networks screen"
with step('Verify that Testnet mode toggle is turned off'):
assert not networks.is_testnet_mode_toggle_checked(), f"Testnet toggle is on when it should not"
with step('Turn on Testnet mode'):
networks.switch_testnet_mode_toggle().turn_on_testnet_mode_in_testnet_modal()
with step('Verify that Testnet mode turned on'):
assert len(main_screen.wait_for_notification()) == 1, \
f"Multiple toast messages appeared"
message = main_screen.wait_for_notification()[0]
assert message == WalletNetworkSettings.TESTNET_ENABLED_TOAST_MESSAGE.value, \
f"Toast message is incorrect, current message is {message}"
if not configs.system.TEST_MODE:
TestnetModeBanner().wait_until_appears()
assert networks.is_testnet_mode_toggle_checked(), f"Testnet toggle if off when it should not"
with step('Verify networks are switched to testnets'):
assert networks.get_network_item_attribute_by_id_and_attr_name('title',
WalletNetworkNaming.ETHEREUM_SEPOLIA_NETWORK_ID.value) == WalletNetworkNaming.LAYER1_ETHEREUM.value
assert networks.get_network_item_attribute_by_id_and_attr_name('title',
WalletNetworkNaming.OPTIMISM_SEPOLIA_NETWORK_ID.value) == WalletNetworkNaming.LAYER2_OPTIMISIM.value
assert networks.get_network_item_attribute_by_id_and_attr_name('title',
WalletNetworkNaming.ARBITRUM_SEPOLIA_NETWORK_ID.value) == WalletNetworkNaming.LAYER2_ARBITRUM.value
# TODO: add verificatin for test net label
with step('Turn off Testnet mode in wallet settings'):
networks.switch_testnet_mode_toggle().turn_off_testnet_mode_in_testnet_modal()
with step('Verify that Testnet mode turned off'):
assert len(main_screen.wait_for_notification()) == 2
message = main_screen.wait_for_notification()[1]
assert message == WalletNetworkSettings.TESTNET_DISABLED_TOAST_MESSAGE.value, \
f"Toast message is incorrect, current message is {message}"
if not configs.system.TEST_MODE:
TestnetModeBanner().wait_until_hidden()
assert not networks.is_testnet_mode_toggle_checked(), f"Testnet toggle is on when it should not"
@allure.testcase('https://ethstatus.testrail.net/index.php?/cases/view/703621',
'Network: Enable testnet toggle and click cross button in confirmation')
@pytest.mark.case(703621)
def test_toggle_testnet_toggle_on_and_close_the_confirmation(main_screen: MainWindow):
networks = main_screen.left_panel.open_settings().left_panel.open_wallet_settings().open_networks()
with step('Verify that Testnet mode toggle is turned off'):
assert not networks.is_testnet_mode_toggle_checked(), f"Testnet toggle is enabled when it should not"
with step('Check Mainnet network item title'):
networks.get_network_item_attribute_by_id_and_attr_name('title',
WalletNetworkNaming.ETHEREUM_MAINNET_NETWORK_ID.value)
with step('Toggle the Testnet mode toggle ON'):
testnet_modal = networks.switch_testnet_mode_toggle()
with step('Click cross button on the Testnet modal'):
testnet_modal.close_testnet_modal_with_cross_button()
assert not networks.is_testnet_mode_toggle_checked()
with step('Verify that Testnet mode is not turned off'):
assert not ToastMessage().is_visible
if not configs.system.TEST_MODE:
assert not TestnetModeBanner().is_visible, f"Testnet banner is present when it should not"
assert not networks.is_testnet_mode_toggle_checked(), \
f"Testnet toggle is turned on when it should not"
@allure.testcase('https://ethstatus.testrail.net/index.php?/cases/view/703622',
'Network: Network: Enable Testnets, toggle testnet toggle OFF, click cancel in confirmation')
@pytest.mark.case(703622)
def test_switch_testnet_off_by_toggle_and_cancel_in_confirmation(main_screen: MainWindow):
networks = main_screen.left_panel.open_settings().left_panel.open_wallet_settings().open_networks()
with step('Verify that Testnet mode toggle is turned off'):
assert not networks.is_testnet_mode_toggle_checked(), f"Testnet toggle is enabled when it should not"
with step('Toggle the Testnet mode toggle ON'):
testnet_modal = networks.switch_testnet_mode_toggle()
with step('Confirm enabling testnet mode in testnet modal'):
testnet_modal.turn_on_testnet_mode_in_testnet_modal()
with step('Verify testnet mode is enabled'):
assert len(main_screen.wait_for_notification()) == 1, \
f"Multiple toast messages appeared"
message = main_screen.wait_for_notification()[0]
assert message == WalletNetworkSettings.TESTNET_ENABLED_TOAST_MESSAGE.value, \
f"Toast message is incorrect, current message is {message}"
if not configs.system.TEST_MODE:
assert TestnetModeBanner().wait_until_appears(), f"Testnet banner is not present when it should"
assert networks.is_testnet_mode_toggle_checked(), f"testnet toggle is off"
with step('Toggle the Testnet mode toggle Off'):
testnet_modal = networks.switch_testnet_mode_toggle()
with step('Click Cancel button on the Testnet modal'):
testnet_modal.click_cancel_button_in_testnet_modal()
assert networks.is_testnet_mode_toggle_checked(), f"Testnet toggle is turned OFF when it should not"
with step('Verify that Testnet mode is not turned off'):
if not configs.system.TEST_MODE:
assert TestnetModeBanner().wait_until_appears(), f"Testnet banner is not present when it should"