Merge pull request #3043 from alphagov/add-first-letter-contact-experience

Make adding a ‘letter contact block’ for the first time make sense
This commit is contained in:
Chris Hill-Scott
2019-07-12 15:14:18 +01:00
committed by GitHub
8 changed files with 82 additions and 39 deletions

View File

@@ -2168,26 +2168,45 @@ 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,
):
data = {
'letter_contact_block': "1 Example Street"
}
page = client_request.post(
page = client_request.get(
'main.service_add_letter_contact',
service_id=SERVICE_ONE_ID,
_data=data,
from_template=fake_uuid,
_follow_redirects=True
)
assert page.select_one('.govuk-back-link')['href'] == url_for(
'main.view_template',
service_id=SERVICE_ONE_ID,
template_id=fake_uuid,
)
client_request.post(
'main.service_add_letter_contact',
service_id=SERVICE_ONE_ID,
_data={
'letter_contact_block': '1 Example Street',
},
from_template=fake_uuid,
_expected_redirect=url_for(
'main.view_template',
service_id=SERVICE_ONE_ID,
template_id=fake_uuid,
_external=True,
),
)
mock_add_letter_contact.assert_called_once_with(
SERVICE_ONE_ID,
contact_block="1 Example Street",
is_default=True
is_default=True,
)
mock_update_service_template_sender.assert_called_once_with(
SERVICE_ONE_ID,
fake_uuid,
'1234',
)
assert page.find('h1').text == 'Set letter contact block'
@pytest.mark.parametrize('fixture, data, api_default_args', [

View File

@@ -27,6 +27,7 @@ from tests.conftest import (
ElementNotFound,
active_caseworking_user,
active_user_view_permissions,
fake_uuid,
mock_get_service_email_template,
mock_get_service_letter_template,
mock_get_service_template,
@@ -687,17 +688,26 @@ def test_should_show_sms_template_with_downgraded_unicode_characters(
assert rendered_msg in page.text
@pytest.mark.parametrize('mock_contact_block, expected_partial_url', (
(no_letter_contact_blocks, partial(
url_for, 'main.service_add_letter_contact', from_template=fake_uuid(),
)),
(single_letter_contact_block, partial(
url_for, 'main.set_template_sender', template_id=fake_uuid(),
)),
))
def test_should_let_letter_contact_block_be_changed_for_the_template(
mocker,
mock_get_service_letter_template,
mock_get_template_folders,
no_letter_contact_blocks,
client_request,
service_one,
fake_uuid,
mock_contact_block,
expected_partial_url
):
service_one['permissions'].append('letter')
mocker.patch('app.main.views.templates.get_page_count_for_letter', return_value=1)
mock_contact_block(mocker)
page = client_request.get(
'main.view_template',
@@ -706,11 +716,9 @@ def test_should_let_letter_contact_block_be_changed_for_the_template(
_test_page_title=False,
)
assert page.find('a', {'class': 'edit-template-link-letter-contact'})['href'] == url_for(
'main.set_template_sender',
service_id=SERVICE_ONE_ID,
template_id=fake_uuid,
)
assert page.select_one(
'a.edit-template-link-letter-contact'
)['href'] == expected_partial_url(service_id=SERVICE_ONE_ID)
def test_should_show_page_template_with_priority_select_if_platform_admin(
@@ -2153,16 +2161,15 @@ def test_set_template_sender(
)
@pytest.mark.parametrize('fixture, add_button_is_on_page', [
(no_letter_contact_blocks, True),
(single_letter_contact_block, False),
@pytest.mark.parametrize('fixture', [
no_letter_contact_blocks,
single_letter_contact_block,
])
def test_add_sender_link_only_appears_on_services_with_no_senders(
client_request,
fake_uuid,
mocker,
fixture,
add_button_is_on_page,
mock_get_service_letter_template,
no_letter_contact_blocks
):
@@ -2173,4 +2180,8 @@ def test_add_sender_link_only_appears_on_services_with_no_senders(
template_id=fake_uuid,
)
assert (page.select_one('.column-three-quarters form > a') is not None) == add_button_is_on_page
assert page.select_one('.column-three-quarters form > a')['href'] == url_for(
'main.service_add_letter_contact',
service_id=SERVICE_ONE_ID,
from_template=fake_uuid,
)