From 7d1cf2169d31e0c58566d4e2f782472c3cf3ec10 Mon Sep 17 00:00:00 2001 From: Chris Hill-Scott Date: Thu, 16 Nov 2017 14:13:32 +0000 Subject: [PATCH] Show text message sender in send one-off flow MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit If you’ve chosen a text message sender then it’s good to see confirmation of your choice. This replicates what we do when you choose an email reply-to address. --- .../stylesheets/components/sms-message.scss | 6 +++ app/utils.py | 3 +- tests/app/main/views/test_send.py | 51 +++++++++++++++++++ 3 files changed, 59 insertions(+), 1 deletion(-) diff --git a/app/assets/stylesheets/components/sms-message.scss b/app/assets/stylesheets/components/sms-message.scss index f9ce3643b..054d6b797 100644 --- a/app/assets/stylesheets/components/sms-message.scss +++ b/app/assets/stylesheets/components/sms-message.scss @@ -48,6 +48,12 @@ $tail-angle: 20deg; } +.sms-message-sender { + @include copy-19; + color: $secondary-text-colour; + margin: 0 0 -10px 0; +} + .sms-message-recipient { @include copy-19; color: $secondary-text-colour; diff --git a/app/utils.py b/app/utils.py index 47fd1f6f8..ba19eddc7 100644 --- a/app/utils.py +++ b/app/utils.py @@ -272,7 +272,7 @@ def get_template( page_count=1, redact_missing_personalisation=False, email_reply_to=None, - sms_sender=None + sms_sender=None, ): if 'email' == template['template_type']: return EmailPreviewTemplate( @@ -290,6 +290,7 @@ def get_template( prefix=service['name'], show_prefix=service['prefix_sms'], sender=sms_sender, + show_sender=bool(sms_sender), show_recipient=show_recipient, redact_missing_personalisation=redact_missing_personalisation, ) diff --git a/tests/app/main/views/test_send.py b/tests/app/main/views/test_send.py index 969b75523..960b8ecac 100644 --- a/tests/app/main/views/test_send.py +++ b/tests/app/main/views/test_send.py @@ -2377,3 +2377,54 @@ def test_reply_to_is_previewed_if_chosen( assert 'test@example.com' in email_meta else: assert 'test@example.com' not in email_meta + + +@pytest.mark.parametrize('endpoint, extra_args', [ + ('main.check_messages', {'template_type': 'sms', 'upload_id': fake_uuid()}), + ('main.send_one_off_step', {'template_id': fake_uuid(), 'step_index': 0}), +]) +@pytest.mark.parametrize('sms_sender', [ + None, + fake_uuid(), +]) +def test_sms_sender_is_previewed( + client_request, + mocker, + mock_get_service_template, + mock_s3_download, + mock_get_users_by_service, + mock_get_detailed_service_for_today, + get_default_sms_sender, + endpoint, + extra_args, + sms_sender, +): + + mocker.patch('app.main.views.send.s3download', return_value=""" + phone number,date,thing + 7700900986,foo,bar + """) + + with client_request.session_transaction() as session: + session['recipient'] = '7700900986' + session['placeholders'] = {} + session['upload_data'] = { + 'original_file_name': 'example.csv', + 'template_id': fake_uuid(), + 'notification_count': 1, + 'valid': True + } + session['sender_id'] = sms_sender + + page = client_request.get( + endpoint, + service_id=SERVICE_ONE_ID, + **extra_args + ) + + sms_sender_on_page = page.select_one('.sms-message-sender') + + if sms_sender: + assert sms_sender_on_page.text.strip() == 'From: GOVUK' + else: + assert not sms_sender_on_page