diff --git a/app/templates/views/organisations/organisation/settings/edit-name/confirm.html b/app/templates/views/organisations/organisation/settings/edit-name/confirm.html index 8fd5f263f..aad813c7b 100644 --- a/app/templates/views/organisations/organisation/settings/edit-name/confirm.html +++ b/app/templates/views/organisations/organisation/settings/edit-name/confirm.html @@ -19,7 +19,7 @@
{% call form_wrapper() %} - {{ textbox(form.password) }} + {{ textbox(form.password, autocomplete='current-password') }}

Your organisation name will be changed from {{ current_org.name }} to {{ new_name }}

{{ page_footer('Confirm') }} {% endcall %} diff --git a/app/templates/views/register-from-invite.html b/app/templates/views/register-from-invite.html index 9a19ba145..d91de327b 100644 --- a/app/templates/views/register-from-invite.html +++ b/app/templates/views/register-from-invite.html @@ -23,7 +23,7 @@ Create an account {{ textbox(form.mobile_number, width='3-4', hint='We’ll send you a security code by text message') }}
{% endif %} - {{ textbox(form.password, hint="At least 8 characters", width='3-4') }} + {{ textbox(form.password, hint="At least 8 characters", width='3-4', autocomplete='new-password') }} {{ page_footer("Continue") }} {{form.service}} {{form.email_address}} diff --git a/app/templates/views/register-from-org-invite.html b/app/templates/views/register-from-org-invite.html index c5e32b704..be9d73374 100644 --- a/app/templates/views/register-from-org-invite.html +++ b/app/templates/views/register-from-org-invite.html @@ -18,7 +18,7 @@ Create an account
{{ textbox(form.mobile_number, width='3-4', hint='We’ll send you a security code by text message') }}
- {{ textbox(form.password, hint="At least 8 characters", width='3-4') }} + {{ textbox(form.password, hint="At least 8 characters", width='3-4', autocomplete='new-password') }} {{ page_footer("Continue") }} {{form.organisation}} {{form.email_address}} diff --git a/app/templates/views/register.html b/app/templates/views/register.html index bd2031e6c..a8a29bf87 100644 --- a/app/templates/views/register.html +++ b/app/templates/views/register.html @@ -19,7 +19,7 @@ Create an account {{ textbox(form.mobile_number, width='3-4', hint='We’ll send you a security code by text message') }} - {{ textbox(form.password, hint="At least 8 characters", width='3-4') }} + {{ textbox(form.password, hint="At least 8 characters", width='3-4', autocomplete='new-password') }} {{form.auth_type}} {{ page_footer("Continue") }} {% endcall %} diff --git a/app/templates/views/service-settings/confirm.html b/app/templates/views/service-settings/confirm.html index 6d222349b..12b90a7c5 100644 --- a/app/templates/views/service-settings/confirm.html +++ b/app/templates/views/service-settings/confirm.html @@ -19,7 +19,7 @@
{% call form_wrapper() %} - {{ textbox(form.password) }} + {{ textbox(form.password, autocomplete='current-password') }} {{ page_footer( 'Confirm', destructive=destructive diff --git a/app/templates/views/signin.html b/app/templates/views/signin.html index 5e3f3b426..9236cfe6e 100644 --- a/app/templates/views/signin.html +++ b/app/templates/views/signin.html @@ -33,7 +33,7 @@ {% call form_wrapper(autocomplete=True) %} {{ textbox(form.email_address, autocomplete='email') }} - {{ textbox(form.password) }} + {{ textbox(form.password, autocomplete='current-password') }} {{ page_footer("Continue", secondary_link=url_for('.forgot_password'), secondary_link_text="Forgot your password?") }} {% endcall %}
diff --git a/app/templates/views/user-profile/authenticate.html b/app/templates/views/user-profile/authenticate.html index 57cfe8c9d..a4cdfb759 100644 --- a/app/templates/views/user-profile/authenticate.html +++ b/app/templates/views/user-profile/authenticate.html @@ -19,7 +19,7 @@
{% call form_wrapper(autocomplete=True) %} - {{ textbox(form.password) }} + {{ textbox(form.password, autocomplete='current-password') }} {{ page_footer('Confirm') }} {% endcall %}
diff --git a/tests/app/main/views/test_register.py b/tests/app/main/views/test_register.py index 200a75a1b..ae8d84bd0 100644 --- a/tests/app/main/views/test_register.py +++ b/tests/app/main/views/test_register.py @@ -17,6 +17,7 @@ def test_render_register_returns_template_with_form(client): assert page.find('input', attrs={'name': 'auth_type'}).attrs['value'] == 'sms_auth' assert page.select_one('#email_address')['spellcheck'] == 'false' assert page.select_one('#email_address')['autocomplete'] == 'email' + assert page.select_one('#password')['autocomplete'] == 'new-password' assert 'Create an account' in response.get_data(as_text=True) diff --git a/tests/app/main/views/test_sign_in.py b/tests/app/main/views/test_sign_in.py index d4b9b2d71..a4d07eacb 100644 --- a/tests/app/main/views/test_sign_in.py +++ b/tests/app/main/views/test_sign_in.py @@ -5,20 +5,26 @@ from bs4 import BeautifulSoup from flask import url_for from app.models.user import User +from tests.conftest import normalize_spaces def test_render_sign_in_template_for_new_user( - client + client_request ): - response = client.get(url_for('main.sign_in', next=None)) - assert response.status_code == 200 - resp = response.get_data(as_text=True) - assert 'Sign in' in resp - assert 'Email address' in resp - assert 'Password' in resp - assert 'Forgot your password?' in resp - assert 'If you do not have an account, you can' in resp - assert 'Sign in again' not in resp + client_request.logout() + page = client_request.get('main.sign_in') + assert normalize_spaces(page.select_one('h1').text) == 'Sign in' + assert normalize_spaces(page.select('label')[0].text) == 'Email address' + assert page.select_one('#email_address')['value'] == '' + assert page.select_one('#email_address')['autocomplete'] == 'email' + assert normalize_spaces(page.select('label')[1].text) == 'Password' + assert page.select_one('#password')['value'] == '' + assert page.select_one('#password')['autocomplete'] == 'current-password' + assert page.select('main a')[0].text == 'create one now' + assert page.select('main a')[0]['href'] == url_for('main.register') + assert page.select('main a')[1].text == 'Forgot your password?' + assert page.select('main a')[1]['href'] == url_for('main.forgot_password') + assert 'Sign in again' not in normalize_spaces(page.text) def test_sign_in_explains_session_timeout(client):