Show personalisation in individual letters

Adds a new endpoint that works like view template/view preview of
letter, so that this page works the same way it does for emails/text
messages (ie showing the full content of the message, including
personalisation).

We’re not worrying about redaction in letters for now.
This commit is contained in:
Chris Hill-Scott
2017-07-13 13:28:11 +01:00
parent 63e9ef44e7
commit 68078041dd
3 changed files with 55 additions and 6 deletions

View File

@@ -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
@@ -134,3 +136,28 @@ def test_notification_page_shows_status_of_letter_notification(
'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'

View File

@@ -1703,6 +1703,7 @@ def mock_get_notification(
service_id,
'5407f4db-51c7-4150-8758-35412d42186a',
content='hello ((name))',
subject='blah',
redact_personalisation=redact_personalisation,
type_=template_type,
)