mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-08-25 16:54:03 -04:00
Merge pull request #3041 from alphagov/delete-letter-contact
Let users delete letter contact blocks
This commit is contained in:
@@ -1852,10 +1852,10 @@ def test_and_more_hint_appears_on_settings_with_more_than_just_a_single_sender(
|
||||
assert get_row(page, 11) == "Sender addresses 1 Example Street …and 2 more Manage"
|
||||
|
||||
|
||||
@pytest.mark.parametrize('sender_list_page, expected_output', [
|
||||
('main.service_email_reply_to', 'test@example.com (default) Change'),
|
||||
('main.service_letter_contact_details', '1 Example Street (default) Change'),
|
||||
('main.service_sms_senders', 'GOVUK (default) Change')
|
||||
@pytest.mark.parametrize('sender_list_page, index, expected_output', [
|
||||
('main.service_email_reply_to', 0, 'test@example.com (default) Change'),
|
||||
('main.service_letter_contact_details', 1, '1 Example Street (default) Change'),
|
||||
('main.service_sms_senders', 0, 'GOVUK (default) Change')
|
||||
])
|
||||
def test_api_ids_dont_show_on_option_pages_with_a_single_sender(
|
||||
client_request,
|
||||
@@ -1864,7 +1864,8 @@ def test_api_ids_dont_show_on_option_pages_with_a_single_sender(
|
||||
mock_get_service_organisation,
|
||||
single_sms_sender,
|
||||
sender_list_page,
|
||||
expected_output
|
||||
index,
|
||||
expected_output,
|
||||
):
|
||||
rows = client_request.get(
|
||||
sender_list_page,
|
||||
@@ -1873,34 +1874,41 @@ def test_api_ids_dont_show_on_option_pages_with_a_single_sender(
|
||||
'.user-list-item'
|
||||
)
|
||||
|
||||
assert normalize_spaces(rows[0].text) == expected_output
|
||||
assert len(rows) == 1
|
||||
assert normalize_spaces(rows[index].text) == expected_output
|
||||
assert len(rows) == index + 1
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
'sender_list_page, \
|
||||
sample_data, \
|
||||
expected_default_sender_output, \
|
||||
expected_second_sender_output, \
|
||||
expected_third_sender_output',
|
||||
(
|
||||
'sender_list_page,'
|
||||
'sample_data,'
|
||||
'expected_items,'
|
||||
),
|
||||
[(
|
||||
'main.service_email_reply_to',
|
||||
multiple_reply_to_email_addresses,
|
||||
'test@example.com (default) Change 1234',
|
||||
'test2@example.com Change 5678',
|
||||
'test3@example.com Change 9457'
|
||||
[
|
||||
'test@example.com (default) Change 1234',
|
||||
'test2@example.com Change 5678',
|
||||
'test3@example.com Change 9457',
|
||||
],
|
||||
), (
|
||||
'main.service_letter_contact_details',
|
||||
multiple_letter_contact_blocks,
|
||||
'1 Example Street (default) Change 1234',
|
||||
'2 Example Street Change 5678',
|
||||
'3 Example Street Change 9457'
|
||||
[
|
||||
'Blank Make default',
|
||||
'1 Example Street (default) Change 1234',
|
||||
'2 Example Street Change 5678',
|
||||
'3 Example Street Change 9457',
|
||||
],
|
||||
), (
|
||||
'main.service_sms_senders',
|
||||
multiple_sms_senders,
|
||||
'Example (default and receives replies) Change 1234',
|
||||
'Example 2 Change 5678',
|
||||
'Example 3 Change 9457'
|
||||
[
|
||||
'Example (default and receives replies) Change 1234',
|
||||
'Example 2 Change 5678',
|
||||
'Example 3 Change 9457',
|
||||
],
|
||||
),
|
||||
]
|
||||
)
|
||||
@@ -1909,9 +1917,7 @@ def test_default_option_shows_for_default_sender(
|
||||
mocker,
|
||||
sender_list_page,
|
||||
sample_data,
|
||||
expected_default_sender_output,
|
||||
expected_second_sender_output,
|
||||
expected_third_sender_output
|
||||
expected_items,
|
||||
):
|
||||
sample_data(mocker)
|
||||
|
||||
@@ -1922,10 +1928,40 @@ def test_default_option_shows_for_default_sender(
|
||||
'.user-list-item'
|
||||
)
|
||||
|
||||
assert normalize_spaces(rows[0].text) == expected_default_sender_output
|
||||
assert normalize_spaces(rows[1].text) == expected_second_sender_output
|
||||
assert normalize_spaces(rows[2].text) == expected_third_sender_output
|
||||
assert len(rows) == 3
|
||||
assert [normalize_spaces(row.text) for row in rows] == expected_items
|
||||
|
||||
|
||||
def test_remove_default_from_default_letter_contact_block(
|
||||
client_request,
|
||||
mocker,
|
||||
multiple_letter_contact_blocks,
|
||||
mock_update_letter_contact,
|
||||
):
|
||||
letter_contact_details_page = url_for(
|
||||
'main.service_letter_contact_details',
|
||||
service_id=SERVICE_ONE_ID,
|
||||
_external=True,
|
||||
)
|
||||
|
||||
link = client_request.get_url(letter_contact_details_page).select_one('.user-list-item a')
|
||||
assert link.text == 'Make default'
|
||||
assert link['href'] == url_for(
|
||||
'.service_make_blank_default_letter_contact',
|
||||
service_id=SERVICE_ONE_ID,
|
||||
)
|
||||
|
||||
client_request.get_url(
|
||||
link['href'],
|
||||
_expected_status=302,
|
||||
_expected_redirect=letter_contact_details_page,
|
||||
)
|
||||
|
||||
mock_update_letter_contact.assert_called_once_with(
|
||||
SERVICE_ONE_ID,
|
||||
letter_contact_id='1234',
|
||||
contact_block='1 Example Street',
|
||||
is_default=False,
|
||||
)
|
||||
|
||||
|
||||
@pytest.mark.parametrize('sender_list_page, sample_data, expected_output', [
|
||||
@@ -1937,7 +1973,7 @@ def test_default_option_shows_for_default_sender(
|
||||
(
|
||||
'main.service_letter_contact_details',
|
||||
no_letter_contact_blocks,
|
||||
'You haven’t added any letter contact details yet'
|
||||
'Blank (default)'
|
||||
),
|
||||
(
|
||||
'main.service_sms_senders',
|
||||
@@ -2464,6 +2500,51 @@ def test_edit_letter_contact_block(
|
||||
)
|
||||
|
||||
|
||||
def test_confirm_delete_letter_contact_block(
|
||||
fake_uuid,
|
||||
client_request,
|
||||
get_default_letter_contact_block,
|
||||
):
|
||||
|
||||
page = client_request.get(
|
||||
'main.service_confirm_delete_letter_contact',
|
||||
service_id=SERVICE_ONE_ID,
|
||||
letter_contact_id=fake_uuid,
|
||||
_test_page_title=False,
|
||||
)
|
||||
|
||||
assert normalize_spaces(page.select_one('.banner-dangerous').text) == (
|
||||
'Are you sure you want to delete this contact block? '
|
||||
'Yes, delete'
|
||||
)
|
||||
assert 'action' not in page.select_one('.banner-dangerous form')
|
||||
assert page.select_one('.banner-dangerous form')['method'] == 'post'
|
||||
|
||||
|
||||
def test_delete_letter_contact_block(
|
||||
client_request,
|
||||
service_one,
|
||||
fake_uuid,
|
||||
get_default_letter_contact_block,
|
||||
mocker,
|
||||
):
|
||||
mock_delete = mocker.patch('app.service_api_client.delete_letter_contact')
|
||||
client_request.post(
|
||||
'.service_delete_letter_contact',
|
||||
service_id=SERVICE_ONE_ID,
|
||||
letter_contact_id=fake_uuid,
|
||||
_expected_redirect=url_for(
|
||||
'main.service_letter_contact_details',
|
||||
service_id=SERVICE_ONE_ID,
|
||||
_external=True,
|
||||
)
|
||||
)
|
||||
mock_delete.assert_called_once_with(
|
||||
service_id=SERVICE_ONE_ID,
|
||||
letter_contact_id=fake_uuid,
|
||||
)
|
||||
|
||||
|
||||
@pytest.mark.parametrize('fixture, data, api_default_args', [
|
||||
(get_default_sms_sender, {"is_default": "y", "sms_sender": "test"}, True),
|
||||
(get_default_sms_sender, {"sms_sender": "test"}, True),
|
||||
@@ -2513,14 +2594,14 @@ def test_edit_sms_sender(
|
||||
(
|
||||
'main.service_edit_letter_contact',
|
||||
get_default_letter_contact_block,
|
||||
'This is currently your default address for service one',
|
||||
'This is the default address for service one',
|
||||
'letter_contact_id',
|
||||
False
|
||||
),
|
||||
(
|
||||
'main.service_edit_letter_contact',
|
||||
get_non_default_letter_contact_block,
|
||||
'This is the default contact details for service one letters',
|
||||
'THIS TEXT WONT BE TESTED',
|
||||
'letter_contact_id',
|
||||
True
|
||||
),
|
||||
|
||||
@@ -355,6 +355,7 @@ def test_returns_value_from_cache(
|
||||
(service_api_client, 'delete_reply_to_email_address', [SERVICE_ONE_ID, ''], {}),
|
||||
(service_api_client, 'add_letter_contact', [SERVICE_ONE_ID, ''], {}),
|
||||
(service_api_client, 'update_letter_contact', [SERVICE_ONE_ID] + [''] * 2, {}),
|
||||
(service_api_client, 'delete_letter_contact', [SERVICE_ONE_ID, ''], {}),
|
||||
(service_api_client, 'add_sms_sender', [SERVICE_ONE_ID, ''], {}),
|
||||
(service_api_client, 'update_sms_sender', [SERVICE_ONE_ID] + [''] * 2, {}),
|
||||
(service_api_client, 'delete_sms_sender', [SERVICE_ONE_ID, ''], {}),
|
||||
|
||||
Reference in New Issue
Block a user