fix e2e tests
This commit is contained in:
parent
4476698f70
commit
311c601724
@ -22,7 +22,7 @@ class TestLogin:
|
||||
assert inputs[1].get_attribute('id') == 'password'
|
||||
assert inputs[1].get_attribute('type') == 'password'
|
||||
|
||||
button = selenium.find_element(By.TAG_NAME, 'button')
|
||||
button = selenium.find_elements(By.TAG_NAME, 'button')[-1]
|
||||
assert button.get_attribute('type') == 'submit'
|
||||
assert 'Log in' in button.text
|
||||
|
||||
@ -47,4 +47,7 @@ class TestLogin:
|
||||
assert 'Statistics' in nav
|
||||
assert 'Add a workout' in nav
|
||||
assert user['username'] in nav
|
||||
assert 'Logout' in nav
|
||||
logout_button = selenium.find_elements(By.CLASS_NAME, 'logout-button')[
|
||||
0
|
||||
]
|
||||
assert logout_button
|
||||
|
@ -6,14 +6,19 @@ from .utils import register_valid_user
|
||||
class TestLogout:
|
||||
def test_user_can_log_out(self, selenium):
|
||||
user = register_valid_user(selenium)
|
||||
user_menu = selenium.find_element(By.CLASS_NAME, 'nav-items-user-menu')
|
||||
logout_link = user_menu.find_elements(By.CLASS_NAME, 'nav-item')[2]
|
||||
logout_button = selenium.find_elements(By.CLASS_NAME, 'logout-button')[
|
||||
0
|
||||
]
|
||||
|
||||
logout_link.click()
|
||||
logout_button.click()
|
||||
modal = selenium.find_element(By.ID, 'modal')
|
||||
confirm_button = modal.find_elements(By.CLASS_NAME, 'confirm')[0]
|
||||
confirm_button.click()
|
||||
selenium.implicitly_wait(1)
|
||||
|
||||
nav = selenium.find_element(By.ID, 'nav').text
|
||||
assert 'Register' in nav
|
||||
assert 'Login' in nav
|
||||
assert user['username'] not in nav
|
||||
assert 'Logout' not in nav
|
||||
buttons = selenium.find_elements(By.CLASS_NAME, 'logout-button')
|
||||
assert buttons == []
|
||||
|
@ -35,7 +35,7 @@ class TestRegistration:
|
||||
assert form_infos[1].text == 'Enter a valid email address.'
|
||||
assert form_infos[2].text == 'At least 8 characters required.'
|
||||
|
||||
button = selenium.find_element(By.TAG_NAME, 'button')
|
||||
button = selenium.find_elements(By.TAG_NAME, 'button')[-1]
|
||||
assert button.get_attribute('type') == 'submit'
|
||||
assert 'Register' in button.text
|
||||
|
||||
@ -84,7 +84,11 @@ class TestRegistration:
|
||||
register(selenium, user)
|
||||
|
||||
assert selenium.current_url == URL
|
||||
errors = selenium.find_element(By.CLASS_NAME, 'error-message').text
|
||||
errors = (
|
||||
selenium.find_element(By.ID, 'user-form')
|
||||
.find_element(By.CLASS_NAME, 'error-message')
|
||||
.text
|
||||
)
|
||||
assert 'Sorry, that username is already taken.' in errors
|
||||
|
||||
def test_user_does_not_return_error_if_email_is_already_taken(
|
||||
|
@ -30,7 +30,7 @@ class TestWorkout:
|
||||
)
|
||||
selenium.find_element(By.NAME, 'workout-distance').send_keys('10')
|
||||
|
||||
confirm_button = selenium.find_element(By.CLASS_NAME, 'confirm')
|
||||
confirm_button = selenium.find_elements(By.CLASS_NAME, 'confirm')[-1]
|
||||
confirm_button.click()
|
||||
|
||||
WebDriverWait(selenium, 10).until(
|
||||
|
12
e2e/utils.py
12
e2e/utils.py
@ -34,7 +34,7 @@ def register(selenium, user):
|
||||
password.send_keys(user.get('password'))
|
||||
accepted_policy = selenium.find_element(By.ID, 'accepted_policy')
|
||||
accepted_policy.click()
|
||||
submit_button = selenium.find_element(By.TAG_NAME, 'button')
|
||||
submit_button = selenium.find_elements(By.TAG_NAME, 'button')[-1]
|
||||
submit_button.click()
|
||||
|
||||
|
||||
@ -45,7 +45,7 @@ def login(selenium, user):
|
||||
email.send_keys(user.get('email'))
|
||||
password = selenium.find_element(By.ID, 'password')
|
||||
password.send_keys(user.get('password'))
|
||||
submit_button = selenium.find_element(By.TAG_NAME, 'button')
|
||||
submit_button = selenium.find_elements(By.TAG_NAME, 'button')[-1]
|
||||
submit_button.click()
|
||||
|
||||
|
||||
@ -65,8 +65,12 @@ def register_valid_user(selenium):
|
||||
def register_valid_user_and_logout(selenium):
|
||||
user = register_valid_user(selenium)
|
||||
user_menu = selenium.find_element(By.CLASS_NAME, 'nav-items-user-menu')
|
||||
logout_link = user_menu.find_elements(By.CLASS_NAME, 'nav-item')[2]
|
||||
logout_link.click()
|
||||
logout_button = user_menu.find_elements(By.CLASS_NAME, 'logout-button')[0]
|
||||
logout_button.click()
|
||||
modal = selenium.find_element(By.ID, 'modal')
|
||||
confirm_button = modal.find_elements(By.CLASS_NAME, 'confirm')[0]
|
||||
confirm_button.click()
|
||||
selenium.implicitly_wait(1)
|
||||
return user
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user