diff --git a/app/main/views/service_settings.py b/app/main/views/service_settings.py index 7561967ac..7d003239f 100644 --- a/app/main/views/service_settings.py +++ b/app/main/views/service_settings.py @@ -706,14 +706,20 @@ def service_add_letter_contact(service_id): form = ServiceLetterContactBlockForm() first_contact_block = current_service.count_letter_contact_details == 0 if form.validate_on_submit(): - service_api_client.add_letter_contact( + new_letter_contact = service_api_client.add_letter_contact( current_service.id, contact_block=form.letter_contact_block.data.replace('\r', '') or None, is_default=first_contact_block if first_contact_block else form.is_default.data ) - if request.args.get('from_template'): + from_template = request.args.get('from_template') + if from_template: + service_api_client.update_service_template_sender( + service_id, + from_template, + new_letter_contact['data']['id'], + ) return redirect( - url_for('.view_template', service_id=service_id, template_id=request.args.get('from_template')) + url_for('.view_template', service_id=service_id, template_id=from_template) ) return redirect(url_for('.service_letter_contact_details', service_id=service_id)) return render_template( diff --git a/tests/app/main/views/test_service_settings.py b/tests/app/main/views/test_service_settings.py index fa7660f94..db890bdd5 100644 --- a/tests/app/main/views/test_service_settings.py +++ b/tests/app/main/views/test_service_settings.py @@ -2168,6 +2168,7 @@ def test_add_letter_contact_when_coming_from_template( mock_add_letter_contact, fake_uuid, mock_get_service_letter_template, + mock_update_service_template_sender, ): page = client_request.get( 'main.service_add_letter_contact', @@ -2201,6 +2202,11 @@ def test_add_letter_contact_when_coming_from_template( contact_block="1 Example Street", is_default=True, ) + mock_update_service_template_sender.assert_called_once_with( + SERVICE_ONE_ID, + fake_uuid, + '1234', + ) @pytest.mark.parametrize('fixture, data, api_default_args', [ diff --git a/tests/conftest.py b/tests/conftest.py index 39d56b010..dd76991f1 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -270,7 +270,14 @@ def get_non_default_letter_contact_block(mocker): @pytest.fixture(scope='function') def mock_add_letter_contact(mocker): def _add_letter_contact(service_id, contact_block, is_default=False): - return + return {'data': { + 'id': '1234', + 'service_id': service_id, + 'contact_block': '1 Example Street', + 'is_default': True, + 'created_at': str(datetime.utcnow()), + 'updated_at': None + }} return mocker.patch('app.service_api_client.add_letter_contact', side_effect=_add_letter_contact)