diff --git a/app/main/views/notifications.py b/app/main/views/notifications.py
index 5779db9b5..81f72343c 100644
--- a/app/main/views/notifications.py
+++ b/app/main/views/notifications.py
@@ -14,11 +14,13 @@ from app import (
current_service
)
from app.main import main
+from app.template_previews import TemplatePreview
from app.utils import (
user_has_permissions,
get_help_argument,
get_template,
get_time_left,
+ get_letter_timings,
REQUESTED_STATUSES,
FAILURE_STATUSES,
SENDING_STATUSES,
@@ -40,20 +42,18 @@ def get_status_arg(filter_args):
return REQUESTED_STATUSES
-@main.route("/services/
+ Estimated delivery date: {{ estimated_letter_delivery_date|string|format_date_short }} +
+ {% endif %} + {{ template|string }} - {{ ajax_block(partials, updates_url, 'status', finished=finished) }} + {% if template.template_type != 'letter' %} + {{ ajax_block(partials, updates_url, 'status', finished=finished) }} + {% endif %} {% endblock %} diff --git a/tests/__init__.py b/tests/__init__.py index ab20273e6..629fedb6d 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -86,7 +86,7 @@ def service_json( def template_json(service_id, id_, name="sample template", - type_="sms", + type_=None, content=None, subject=None, version=1, @@ -97,7 +97,7 @@ def template_json(service_id, template = { 'id': id_, 'name': name, - 'template_type': type_, + 'template_type': type_ or "sms", 'content': content, 'service': service_id, 'version': version, @@ -226,9 +226,10 @@ def notification_json( with_links=False, rows=5, personalisation=None, + template_type=None, ): if template is None: - template = template_json(service_id, str(generate_uuid())) + template = template_json(service_id, str(generate_uuid()), type_=template_type) if sent_at is None: sent_at = str(datetime.utcnow().time()) if created_at is None: diff --git a/tests/app/main/views/test_notifications.py b/tests/app/main/views/test_notifications.py index 996394fda..c3edc957f 100644 --- a/tests/app/main/views/test_notifications.py +++ b/tests/app/main/views/test_notifications.py @@ -1,4 +1,5 @@ from freezegun import freeze_time +from flask import url_for import pytest from app.utils import ( @@ -8,6 +9,7 @@ from app.utils import ( DELIVERED_STATUSES, ) +from notifications_utils.template import LetterImageTemplate from tests.conftest import mock_get_notification, SERVICE_ONE_ID, normalize_spaces @@ -110,3 +112,52 @@ def test_notification_page_doesnt_link_to_template_in_tour( 'sample template sent by Test User on 1 January at 1:01am' ) assert len(page.select('main p:nth-of-type(1) a')) == 0 + + +@freeze_time("2016-01-01 01:01") +def test_notification_page_shows_status_of_letter_notification( + client_request, + mocker, + fake_uuid, +): + + mock_get_notification(mocker, fake_uuid, template_type='letter') + + page = client_request.get( + 'main.view_notification', + service_id=SERVICE_ONE_ID, + notification_id=fake_uuid, + ) + + assert normalize_spaces(page.select('main p:nth-of-type(1)')[0].text) == ( + 'sample template sent by Test User on 1 January at 1:01am' + ) + assert normalize_spaces(page.select('main p:nth-of-type(2)')[0].text) == ( + 'Estimated delivery date: 6 January' + ) + assert page.select('p.notification-status') == [] + + +def test_should_show_image_of_letter_notification( + logged_in_client, + fake_uuid, + mocker +): + + mock_get_notification(mocker, fake_uuid, template_type='letter') + + mocked_preview = mocker.patch( + 'app.main.views.templates.TemplatePreview.from_utils_template', + return_value='foo' + ) + + response = logged_in_client.get(url_for( + 'main.view_letter_notification_as_image', + service_id=SERVICE_ONE_ID, + notification_id=fake_uuid, + )) + + assert response.status_code == 200 + assert response.get_data(as_text=True) == 'foo' + assert isinstance(mocked_preview.call_args[0][0], LetterImageTemplate) + assert mocked_preview.call_args[0][1] == 'png' diff --git a/tests/conftest.py b/tests/conftest.py index c224ac513..e5c9f2256 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -1679,6 +1679,7 @@ def mock_get_notification( fake_uuid, notification_status='delivered', redact_personalisation=False, + template_type=None, ): def _get_notification( service_id, @@ -1687,7 +1688,8 @@ def mock_get_notification( noti = notification_json( service_id, rows=1, - status=notification_status + status=notification_status, + template_type=template_type, )['notifications'][0] noti['id'] = notification_id @@ -1701,7 +1703,9 @@ def mock_get_notification( service_id, '5407f4db-51c7-4150-8758-35412d42186a', content='hello ((name))', + subject='blah', redact_personalisation=redact_personalisation, + type_=template_type, ) return noti