diff --git a/app/main/views/dashboard.py b/app/main/views/dashboard.py index 8d190db3c..90565dc9e 100644 --- a/app/main/views/dashboard.py +++ b/app/main/views/dashboard.py @@ -30,6 +30,7 @@ from app.utils.pagination import generate_next_dict, generate_previous_dict from app.utils.time import get_current_financial_year from app.utils.user import user_has_permissions + @main.route("/services//dashboard") @user_has_permissions("view_activity", "send_messages") def old_service_dashboard(service_id): diff --git a/app/templates/components/table.html b/app/templates/components/table.html index 803030e54..3f938d124 100644 --- a/app/templates/components/table.html +++ b/app/templates/components/table.html @@ -16,7 +16,7 @@ {% endfor %} - + {{ caller() }} diff --git a/tests/app/main/views/test_accept_invite.py b/tests/app/main/views/test_accept_invite.py index 696a3ea83..76d3a6b79 100644 --- a/tests/app/main/views/test_accept_invite.py +++ b/tests/app/main/views/test_accept_invite.py @@ -14,6 +14,108 @@ from tests.conftest import ( normalize_spaces, ) +FAKE_ONE_OFF_NOTIFICATION = { + "links": {}, + "notifications": [ + { + "api_key": None, + "billable_units": 0, + "carrier": None, + "client_reference": None, + "created_at": "2023-12-14T20:35:55+00:00", + "created_by": { + "email_address": "grsrbsrgsrf@fake.gov", + "id": "de059e0a-42e5-48bb-939e-4f76804ab739", + "name": "grsrbsrgsrf", + }, + "document_download_count": None, + "id": "a3442b43-0ba1-4854-9e0a-d2fba1cc9b81", + "international": False, + "job": { + "id": "55b242b5-9f62-4271-aff7-039e9c320578", + "original_file_name": "1127b78e-a4a8-4b70-8f4f-9f4fbf03ece2.csv", + }, + "job_row_number": 0, + "key_name": None, + "key_type": "normal", + "normalised_to": "+16615555555", + "notification_type": "sms", + "personalisation": { + "dayofweek": "2", + "favecolor": "3", + "phonenumber": "+16615555555", + }, + "phone_prefix": "1", + "provider_response": None, + "rate_multiplier": 1.0, + "reference": None, + "reply_to_text": "development", + "sent_at": None, + "sent_by": None, + "service": "f62d840f-8bcb-4b36-b959-4687e16dd1a1", + "status": "created", + "template": { + "content": "((day of week)) and ((fave color))", + "id": "bd9caa7e-00ee-4c5a-839e-10ae1a7e6f73", + "name": "personalized", + "redact_personalisation": False, + "subject": None, + "template_type": "sms", + "version": 1, + }, + "to": "+16615555555", + "updated_at": None, + } + ], + "page_size": 50, + "total": 1, +} + +MOCK_ONE_OFF_JOB = { + "data": { + "api_key": "mocked_api_key", + "billable_units": 1, + "carrier": "mocked_carrier", + "client_reference": "mocked_client_reference", + "created_at": "2024-01-04T20:43:52+00:00", + "created_by": { + "email_address": "mocked_email@example.com", + "id": "mocked_user_id", + "name": "mocked_user", + }, + "document_download_count": None, + "id": "mocked_notification_id", + "international": False, + "job": {"id": "mocked_job_id", "original_file_name": "mocked_file.txt"}, + "job_row_number": 0, + "key_name": "mocked_key_name", + "key_type": "normal", + "normalised_to": "+12133166548", + "notification_type": "sms", + "personalisation": {"phonenumber": "+12133166548"}, + "phone_prefix": "1", + "provider_response": "mocked_provider_response", + "rate_multiplier": 1.0, + "reference": "mocked_reference", + "reply_to_text": "mocked_reply_text", + "sent_at": "2024-01-04T20:43:53+00:00", + "sent_by": "mocked_sender", + "service": "mocked_service_id", + "status": "sending", + "template": { + "content": "((day of week)) and ((fave color))", + "id": "bd9caa7e-00ee-4c5a-839e-10ae1a7e6f73", + "name": "personalized", + "redact_personalisation": False, + "subject": None, + "template_type": "sms", + "version": 1, + }, + "to": "+12133166548", + "updated_at": "2024-01-04T20:43:53+00:00", + } +} + @pytest.fixture() def _mock_no_users_for_service(mocker): @@ -207,7 +309,11 @@ def test_accepting_invite_removes_invite_from_session( sample_invite["email_address"] = user["email_address"] client_request.login(user) - + mocker.patch("app.job_api_client.get_job", return_value=MOCK_ONE_OFF_JOB) + mocker.patch( + "app.notification_api_client.get_notifications_for_service", + return_value=FAKE_ONE_OFF_NOTIFICATION, + ) page = client_request.get( "main.accept_invite", token="thisisnotarealtoken", @@ -619,6 +725,11 @@ def test_new_invited_user_verifies_and_added_to_service( token="thisisnotarealtoken", _expected_redirect=url_for("main.register_from_invite"), ) + mocker.patch("app.job_api_client.get_job", return_value=MOCK_ONE_OFF_JOB) + mocker.patch( + "app.notification_api_client.get_notifications_for_service", + return_value=FAKE_ONE_OFF_NOTIFICATION, + ) # get redirected to register from invite data = { diff --git a/tests/app/main/views/test_dashboard.py b/tests/app/main/views/test_dashboard.py index fdb06a14d..d49af5e23 100644 --- a/tests/app/main/views/test_dashboard.py +++ b/tests/app/main/views/test_dashboard.py @@ -1773,6 +1773,7 @@ def test_service_dashboard_shows_usage( assert "500" in table_rows[0].find_all("td")[0].text assert "9500" in table_rows[0].find_all("td")[1].text + def test_service_dashboard_shows_free_allowance( mocker, client_request, diff --git a/tests/app/main/views/test_jobs.py b/tests/app/main/views/test_jobs.py index cc611f32b..7122d8b9f 100644 --- a/tests/app/main/views/test_jobs.py +++ b/tests/app/main/views/test_jobs.py @@ -323,7 +323,8 @@ def test_should_show_old_job( assert not page.select(".pill") assert not page.select("p.hint") assert not page.select("a[download]") - assert page.select_one("tbody").text.strip() == expected_message + assert ( + page.select_one("tbody").text.strip() == expected_message) assert [ normalize_spaces(column.text) for column in page.select("main .grid-col-3") ] == [