diff --git a/app/templates/views/platform-admin.html b/app/templates/views/platform-admin.html index 94b1ae7dc..47ecd4d14 100644 --- a/app/templates/views/platform-admin.html +++ b/app/templates/views/platform-admin.html @@ -104,7 +104,7 @@
{{ big_number_with_status( - global_stats.email.delivered, + global_stats.email.delivered + global_stats.email.failed, message_count_label(global_stats.email.delivered, 'email'), global_stats.email.failed, global_stats.email.failure_rate, @@ -113,7 +113,7 @@
{{ big_number_with_status( - global_stats.sms.delivered, + global_stats.sms.delivered + global_stats.sms.failed, message_count_label(global_stats.sms.delivered, 'sms'), global_stats.sms.failed, global_stats.sms.failure_rate, diff --git a/tests/app/main/views/test_platform_admin.py b/tests/app/main/views/test_platform_admin.py index 0ac1aafea..d71f69d49 100644 --- a/tests/app/main/views/test_platform_admin.py +++ b/tests/app/main/views/test_platform_admin.py @@ -147,7 +147,6 @@ def test_create_global_stats_sets_failure_rates(fake_uuid): ) stats = create_global_stats(services) - assert stats == { 'email': { 'delivered': 2, @@ -248,7 +247,6 @@ def test_should_show_email_and_sms_stats_for_all_service_types( service_row_group = table_body.find_all('tbody')[0].find_all('tr') email_stats = service_row_group[0].find_all('div', class_='big-number-number') sms_stats = service_row_group[1].find_all('div', class_='big-number-number') - email_sending, email_delivered, email_failed = [int(x.text.strip()) for x in email_stats] sms_sending, sms_delivered, sms_failed = [int(x.text.strip()) for x in sms_stats] @@ -323,3 +321,38 @@ def test_shows_archived_label_instead_of_live_or_research_mode_label( service_mode = table_body.find_all('tbody')[0].find_all('tr')[1].td.text.strip() # get second column, which contains flags as text. assert service_mode == 'archived' + + +def test_should_show_correct_sent_totals_for_platform_admin( + app_, + platform_admin_user, + mocker, + mock_get_detailed_services, + fake_uuid +): + services = [service_json(fake_uuid, 'My Service', [])] + services[0]['statistics'] = create_stats( + emails_requested=100, + emails_delivered=20, + emails_failed=40, + sms_requested=100, + sms_delivered=10, + sms_failed=30 + ) + + mock_get_detailed_services.return_value = {'data': services} + with app_.test_request_context(): + with app_.test_client() as client: + mock_get_user(mocker, user=platform_admin_user) + client.login(platform_admin_user) + response = client.get(url_for('main.platform_admin')) + + assert response.status_code == 200 + page = BeautifulSoup(response.data.decode('utf-8'), 'html.parser') + + totals = page.find_all('div', 'big-number-with-status') + email_total = int(totals[0].find_all('div', 'big-number-number')[0].text.strip()) + sms_total = int(totals[1].find_all('div', 'big-number-number')[0].text.strip()) + + assert email_total == 60 + assert sms_total == 40