diff --git a/app/templates/views/usage.html b/app/templates/views/usage.html index 4afc893a0..43f7ce51a 100644 --- a/app/templates/views/usage.html +++ b/app/templates/views/usage.html @@ -30,7 +30,9 @@
{{ big_number(sms_sent, 'sent', smaller=True) }} {{ big_number(sms_free_allowance, 'free allowance', smaller=True) }} - {{ big_number(sms_allowance_remaining, 'free allowance remaining', smaller=True) }} + {% if sms_free_allowance > 0 %} + {{ big_number(sms_allowance_remaining, 'free allowance remaining', smaller=True) }} + {% endif %} {% if sms_chargeable %} {{ big_number( sms_chargeable, diff --git a/tests/app/main/views/test_dashboard.py b/tests/app/main/views/test_dashboard.py index abc0d8d90..8939ae9d3 100644 --- a/tests/app/main/views/test_dashboard.py +++ b/tests/app/main/views/test_dashboard.py @@ -1137,6 +1137,45 @@ def test_usage_page_displays_letters_split_by_month_and_postage( assert '7 international letters at £1.00' in may_row +@pytest.mark.parametrize('free_allowance, expected_sms_usage_breakdown', ( + (0, ( + 'Text messages ' + '252,190 sent ' + '0 free allowance ' + '252,190 at 1.65 pence per message' + )), + (100_000, ( + 'Text messages ' + '252,190 sent ' + '100,000 free allowance ' + '0 free allowance remaining ' + '152,190 at 1.65 pence per message' + )), +)) +def test_usage_page_with_0_free_allowance( + mocker, + client_request, + mock_get_usage, + mock_get_billable_units, + free_allowance, + expected_sms_usage_breakdown, +): + mocker.patch( + 'app.billing_api_client.get_free_sms_fragment_limit_for_year', + return_value=free_allowance, + ) + page = client_request.get( + 'main.usage', + service_id=SERVICE_ONE_ID, + year=2020, + ) + assert normalize_spaces( + page.select('main .govuk-grid-column-one-third')[1].text + ) == ( + expected_sms_usage_breakdown + ) + + def test_usage_page_with_year_argument( client_request, mock_get_usage,