mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-07-10 19:34:27 -04:00
Fix no. of column headers on breaking change page
The breaking change page wasn’t properly accounting for the fact that letter recipients span multiple columns – it was assuming they’d only take up one column like they do for email and SMS. This commit fixes: - the number of column headers (A, B, C, …) to be correct - the count of columns (you will need X columns in your file) to be correct It then parameterises the test to look at a case where a recipient is in one column (email) and multiple columns (letter).
This commit is contained in:
@@ -8,6 +8,7 @@ from flask import url_for
|
||||
from freezegun import freeze_time
|
||||
from notifications_python_client.errors import HTTPError
|
||||
from tests.conftest import service_one as create_sample_service
|
||||
from tests.conftest import mock_get_service_email_template, mock_get_service_letter_template
|
||||
from tests import validate_route_permission, template_json, single_notification_json
|
||||
from tests.app.test_utils import normalize_spaces
|
||||
|
||||
@@ -313,18 +314,43 @@ def test_should_403_when_create_template_with_process_type_of_priority_for_non_p
|
||||
mock_update_service_template.called == 0
|
||||
|
||||
|
||||
@pytest.mark.parametrize('template_mock, expected_paragraphs', [
|
||||
(
|
||||
mock_get_service_email_template,
|
||||
[
|
||||
'You removed ((date))',
|
||||
'You added ((name))',
|
||||
'When you send messages using this template you’ll need 3 columns of data:',
|
||||
]
|
||||
),
|
||||
(
|
||||
mock_get_service_letter_template,
|
||||
[
|
||||
'You removed ((date))',
|
||||
'You added ((name))',
|
||||
'When you send messages using this template you’ll need 9 columns of data:',
|
||||
]
|
||||
),
|
||||
])
|
||||
def test_should_show_interstitial_when_making_breaking_change(
|
||||
logged_in_client,
|
||||
api_user_active,
|
||||
mock_login,
|
||||
mock_get_service_email_template,
|
||||
mock_update_service_template,
|
||||
mock_get_user,
|
||||
mock_get_service,
|
||||
mock_get_user_by_email,
|
||||
mock_has_permissions,
|
||||
fake_uuid,
|
||||
mocker,
|
||||
template_mock,
|
||||
expected_paragraphs,
|
||||
):
|
||||
template_mock(
|
||||
mocker,
|
||||
subject="Your ((thing)) is due soon",
|
||||
content="Your vehicle tax expires on ((date))",
|
||||
)
|
||||
service_id = fake_uuid
|
||||
template_id = fake_uuid
|
||||
response = logged_in_client.post(
|
||||
@@ -346,11 +372,7 @@ def test_should_show_interstitial_when_making_breaking_change(
|
||||
assert page.find('a', {'class': 'page-footer-back-link'})['href'] == url_for(".edit_service_template",
|
||||
service_id=service_id,
|
||||
template_id=template_id)
|
||||
for index, p in enumerate([
|
||||
'You removed ((date))',
|
||||
'You added ((name))',
|
||||
'When you send messages using this template you’ll need 3 columns of data:',
|
||||
]):
|
||||
for index, p in enumerate(expected_paragraphs):
|
||||
assert normalize_spaces(page.select('main p')[index].text) == p
|
||||
|
||||
for key, value in {
|
||||
|
||||
@@ -336,15 +336,15 @@ def mock_get_service_template_with_placeholders(mocker):
|
||||
|
||||
|
||||
@pytest.fixture(scope='function')
|
||||
def mock_get_service_email_template(mocker):
|
||||
def mock_get_service_email_template(mocker, content=None, subject=None):
|
||||
def _get(service_id, template_id, version=None):
|
||||
template = template_json(
|
||||
service_id,
|
||||
template_id,
|
||||
"Two week reminder",
|
||||
"email",
|
||||
"Your vehicle tax expires on ((date))",
|
||||
"Your ((thing)) is due soon"
|
||||
content or "Your vehicle tax expires on ((date))",
|
||||
subject or "Your ((thing)) is due soon",
|
||||
)
|
||||
return {'data': template}
|
||||
|
||||
@@ -354,30 +354,24 @@ def mock_get_service_email_template(mocker):
|
||||
|
||||
@pytest.fixture(scope='function')
|
||||
def mock_get_service_email_template_without_placeholders(mocker):
|
||||
def _create(service_id, template_id):
|
||||
template = template_json(
|
||||
service_id,
|
||||
template_id,
|
||||
"Two week reminder",
|
||||
"email",
|
||||
"Your vehicle tax expires soon",
|
||||
"Your thing is due soon"
|
||||
)
|
||||
return {'data': template}
|
||||
|
||||
return mocker.patch(
|
||||
'app.service_api_client.get_service_template', side_effect=_create)
|
||||
return mock_get_service_email_template(
|
||||
mocker,
|
||||
content="Your vehicle tax expires soon",
|
||||
subject="Your thing is due soon",
|
||||
)
|
||||
|
||||
|
||||
@pytest.fixture(scope='function')
|
||||
def mock_get_service_letter_template(mocker):
|
||||
def mock_get_service_letter_template(mocker, content=None, subject=None):
|
||||
def _create(service_id, template_id):
|
||||
template = template_json(
|
||||
service_id,
|
||||
template_id,
|
||||
"Two week reminder",
|
||||
"letter",
|
||||
"Template <em>content</em> with & entity", "Subject")
|
||||
content or "Template <em>content</em> with & entity",
|
||||
subject or "Subject",
|
||||
)
|
||||
return {'data': template}
|
||||
|
||||
return mocker.patch(
|
||||
|
||||
Reference in New Issue
Block a user