only show mobile number on register from invite page if user is sms_auth

also clean up the way the form is invoked - it now populates from an
invited_user object
This commit is contained in:
Leo Hemsted
2017-11-14 15:53:38 +00:00
parent c8dbd819ef
commit 8c14113da5
5 changed files with 37 additions and 12 deletions

View File

@@ -354,7 +354,7 @@ def test_new_invited_user_verifies_and_added_to_service(
'password': 'longpassword',
'mobile_number': '+447890123456',
'name': 'Invited User',
# 'auth_type': 'sms_auth'
'auth_type': 'sms_auth'
}
response = client.post(url_for('main.register_from_invite'), data=data)
assert response.status_code == 302

View File

@@ -327,3 +327,19 @@ def test_cannot_register_with_sms_auth_and_missing_mobile_number(
err = page.select_one('.error-message')
assert err.text.strip() == 'Cant be empty'
assert err.attrs['data-error-label'] == 'mobile_number'
def test_register_from_invite_form_doesnt_show_mobile_number_field_if_email_auth(
client,
sample_invite
):
sample_invite['auth_type'] = 'email_auth'
with client.session_transaction() as session:
session['invited_user'] = sample_invite
response = client.get(url_for('main.register_from_invite'))
assert response.status_code == 200
page = BeautifulSoup(response.data.decode('utf-8'), 'html.parser')
assert page.find('input', attrs={'name': 'auth_type'}).attrs['value'] == 'email_auth'
assert page.find('input', attrs={'name': 'mobile_number'}) is None