status-desktop/test/e2e/gui/screens/settings_ens_usernames.py

74 lines
2.6 KiB
Python
Raw Normal View History

2023-12-11 07:20:57 +00:00
import allure
import configs.timeouts
import driver
from gui.components.wallet.send_popup import SendPopup
from gui.elements.button import Button
from gui.elements.object import QObject
from gui.elements.scroll import Scroll
from gui.elements.text_edit import TextEdit
class ENSSettingsView(QObject):
def __init__(self):
super().__init__('mainWindow_EnsWelcomeView')
self._start_button = Scroll('mainWindow_Start_StatusButton')
@allure.step('Start purhasing ens username')
def start(self):
self._start_button.click()
return ENSSearchView().wait_until_appears()
class ENSSearchView(QObject):
def __init__(self):
super(ENSSearchView, self).__init__('mainWindow_EnsSearchView')
self._username_text_field = TextEdit('mainWindow_ensUsernameInput_StyledTextField')
self._next_button = Button('mainWindow_ensNextButton_StatusRoundButton')
self._ens_text_note = QObject('ens_StatusBaseText')
@allure.step('Enter user name to text field')
def enter_user_name(self, name: str):
self._username_text_field.text = name
return self._next_button.wait_until_appears()
@allure.step('Click next button')
def click_next_button(self):
self._next_button.click()
return ENSTermsAndConditionsView().wait_until_appears()
@allure.step('Get all text notes from ens search view')
def ens_text_notes(self):
return [str(note.text) for note in driver.findAllObjects(self._ens_text_note.real_name)]
class ENSTermsAndConditionsView(QObject):
def __init__(self):
super(ENSTermsAndConditionsView, self).__init__('mainWindow_EnsTermsAndConditionsView')
self._agree_terms_checkbox = TextEdit('sview_ensAgreeTerms_StatusCheckBox')
self._register_button = Button('mainWindow_Register_StatusButton')
@allure.step('Get registered button enabled state')
def is_register_button_enabled(self) -> bool:
return driver.waitForObjectExists(self._register_button.real_name,
configs.timeouts.UI_LOAD_TIMEOUT_MSEC).enabled
@allure.step('Register ens username')
def register_ens_name(self):
self.check_agree_terms_checkbox()
driver.waitFor(lambda: self.is_register_button_enabled(), configs.timeouts.UI_LOAD_TIMEOUT_MSEC)
self._register_button.click()
return SendPopup().wait_until_appears()
@allure.step('Check agree terms checkbox')
def check_agree_terms_checkbox(self):
self._agree_terms_checkbox.click()
class ENSRegisteredView(QObject):
def __init__(self):
super(ENSRegisteredView, self).__init__('mainWindow_EnsRegisteredView')