mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-02-06 03:13:42 -05:00
Tell API what URL to use for email auth links
So that we can keep people on the prototype URL when doing user research. Depends on: - [ ] https://github.com/alphagov/notifications-api/pull/1645
This commit is contained in:
@@ -20,6 +20,7 @@ class UserApiClient(NotifyAdminAPIClient):
|
||||
self.service_id = app.config['ADMIN_CLIENT_USER_NAME']
|
||||
self.api_key = app.config['ADMIN_CLIENT_SECRET']
|
||||
self.max_failed_login_count = app.config["MAX_FAILED_LOGIN_COUNT"]
|
||||
self.admin_url = app.config['ADMIN_BASE_URL']
|
||||
|
||||
def register_user(self, name, email_address, mobile_number, password, auth_type):
|
||||
data = {
|
||||
@@ -93,6 +94,8 @@ class UserApiClient(NotifyAdminAPIClient):
|
||||
data = {'to': to}
|
||||
if next_string:
|
||||
data['next'] = next_string
|
||||
if code_type == 'email':
|
||||
data['email_auth_link_host'] = self.admin_url
|
||||
endpoint = '/user/{0}/{1}-code'.format(user_id, code_type)
|
||||
self.post(endpoint, data=data)
|
||||
|
||||
|
||||
@@ -117,6 +117,7 @@ def test_process_email_auth_sign_in_return_2fa_template(
|
||||
'password': 'val1dPassw0rd!'})
|
||||
assert response.status_code == 302
|
||||
assert response.location == url_for('.two_factor_email_sent', _external=True)
|
||||
mock_send_verify_code.assert_called_with(api_user_active_email_auth.id, 'email', None)
|
||||
mock_verify_password.assert_called_with(api_user_active_email_auth.id, 'val1dPassw0rd!')
|
||||
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import pytest
|
||||
|
||||
from app import user_api_client
|
||||
from app.notify_client.user_api_client import UserApiClient
|
||||
|
||||
|
||||
@@ -52,3 +53,21 @@ def test_client_doesnt_activate_if_already_active(mocker, api_user_active):
|
||||
client.activate_user(api_user_active)
|
||||
|
||||
assert not mock_post.called
|
||||
|
||||
|
||||
def test_client_passes_admin_url_when_sending_email_auth(
|
||||
app_,
|
||||
mocker,
|
||||
fake_uuid,
|
||||
):
|
||||
mock_post = mocker.patch('app.notify_client.user_api_client.UserApiClient.post')
|
||||
|
||||
user_api_client.send_verify_code(fake_uuid, 'email', 'ignored@example.com')
|
||||
|
||||
mock_post.assert_called_once_with(
|
||||
'/user/{}/email-code'.format(fake_uuid),
|
||||
data={
|
||||
'to': 'ignored@example.com',
|
||||
'email_auth_link_host': 'http://localhost:6012',
|
||||
}
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user