mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-08-26 17:24:23 -04:00
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:
@@ -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', [
|
||||
|
||||
@@ -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,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user