diff --git a/app/assets/stylesheets/main.scss b/app/assets/stylesheets/main.scss index 29c376245..89b283ddd 100644 --- a/app/assets/stylesheets/main.scss +++ b/app/assets/stylesheets/main.scss @@ -66,6 +66,7 @@ $path: '/static/images/'; @import 'views/api'; @import 'views/product-page'; @import 'views/template'; +@import 'views/notification'; // TODO: break this up @import 'app'; diff --git a/app/assets/stylesheets/views/notification.scss b/app/assets/stylesheets/views/notification.scss new file mode 100644 index 000000000..08def6684 --- /dev/null +++ b/app/assets/stylesheets/views/notification.scss @@ -0,0 +1,18 @@ +.notification-status { + + @include core-16; + color: $secondary-text-colour; + margin-top: -$gutter-half; + + &.error { + + color: $error-colour; + font-weight: bold; + + a { + color: $error-colour; + } + + } + +} diff --git a/app/templates/partials/notifications/status.html b/app/templates/partials/notifications/status.html index 481b32446..730eb6954 100644 --- a/app/templates/partials/notifications/status.html +++ b/app/templates/partials/notifications/status.html @@ -1,6 +1,13 @@
-

- Sent {% if notification.created_by %}by {{ notification.created_by.name }} {% endif %} - on {{ notification.created_at|format_datetime_short }} +

+ {% if notification.status|format_notification_status_as_url %} + + {% endif %} + {{ notification.status|format_notification_status( + notification.template.template_type + ) }} + {% if notification.status|format_notification_status_as_url %} + + {% endif %}

diff --git a/tests/app/main/views/test_notifications.py b/tests/app/main/views/test_notifications.py index 683ef63c4..d5aceaecd 100644 --- a/tests/app/main/views/test_notifications.py +++ b/tests/app/main/views/test_notifications.py @@ -1,8 +1,6 @@ from freezegun import freeze_time import pytest -from werkzeug.datastructures import MultiDict -from app.main.views.notifications import get_status_arg from app.utils import ( REQUESTED_STATUSES, FAILURE_STATUSES, @@ -14,13 +12,31 @@ from tests.app.test_utils import normalize_spaces from tests.conftest import mock_get_notification +@pytest.mark.parametrize('notification_status, expected_status', [ + ('created', 'Sending'), + ('sending', 'Sending'), + ('delivered', 'Delivered'), + ('failed', 'Failed'), + ('temporary-failure', 'Phone not accepting messages right now'), + ('permanent-failure', 'Phone number doesn’t exist'), + ('technical-failure', 'Technical failure'), +]) @freeze_time("2016-01-01 11:09:00.061258") def test_notification_status_page_shows_details( client_request, - mock_get_notification, + mocker, service_one, fake_uuid, + notification_status, + expected_status, ): + + _mock_get_notification = mock_get_notification( + mocker, + fake_uuid, + notification_status=notification_status + ) + page = client_request.get( 'main.view_notification', service_id=service_one['id'], @@ -29,10 +45,10 @@ def test_notification_status_page_shows_details( assert page.find('div', {'class': 'sms-message-wrapper'}).text.strip() == 'service one: template content' assert normalize_spaces(page.select('.ajax-block-container p')[0].text) == ( - 'Sent by Test User on 1 January at 11:09am' + expected_status ) - mock_get_notification.assert_called_with( + _mock_get_notification.assert_called_with( service_one['id'], fake_uuid )