Format 1000s properly on returned letters pages

Our style is to comma-separate numbers in the 1000s for easier reading.
This commit is contained in:
Chris Hill-Scott
2021-08-12 13:58:56 +01:00
parent bb414ee3b9
commit db0738ac39
3 changed files with 21 additions and 8 deletions

View File

@@ -37,7 +37,7 @@
<a class="govuk-link govuk-link--no-visited-state file-list-filename"
href="{{url_for('.returned_letters', service_id=current_service.id, reported_at=item.reported_at)}}">{{ item.reported_at | format_date_normal }}</a>
<p class="file-list-hint">
{{ item.returned_letter_count}} {{ item.returned_letter_count|message_count_label('letter', suffix='')}}
{{ item.returned_letter_count|format_thousands }} {{ item.returned_letter_count|message_count_label('letter', suffix='')}}
</p>
{% endcall %}
{% endcall %}

View File

@@ -51,7 +51,7 @@
{% endcall %}
{% if more_than_one_page %}
<p class="table-show-more-link">
Only showing the first {{ page_size }} of {{ count_of_returned_letters }} rows
Only showing the first {{ page_size }} of {{ count_of_returned_letters|format_thousands }} rows
</p>
{% endif %}
</div>

View File

@@ -1,5 +1,6 @@
import uuid
import pytest
from flask import url_for
from tests.conftest import SERVICE_ONE_ID, normalize_spaces
@@ -9,7 +10,7 @@ def test_returned_letter_summary(
client_request,
mocker
):
summary_data = [{'returned_letter_count': 30, 'reported_at': '2019-12-24'}]
summary_data = [{'returned_letter_count': 1234, 'reported_at': '2019-12-24'}]
mock = mocker.patch("app.service_api_client.get_returned_letter_summary",
return_value=summary_data)
@@ -22,7 +23,7 @@ def test_returned_letter_summary(
page.select_one('.table-field').text
) == (
'24 December 2019 '
'30 letters'
'1,234 letters'
)
assert page.select_one('.table-field a')['href'] == url_for(
'.returned_letters',
@@ -99,9 +100,21 @@ def test_returned_letters_page(
]
@pytest.mark.parametrize('number_of_letters, expected_message', (
pytest.param(
51,
'Only showing the first 50 of 51 rows'
),
pytest.param(
1234,
'Only showing the first 50 of 1,234 rows'
),
))
def test_returned_letters_page_with_many_letters(
client_request,
mocker
mocker,
number_of_letters,
expected_message,
):
data = [
{
@@ -116,7 +129,7 @@ def test_returned_letters_page_with_many_letters(
'job_row_number': None,
'uploaded_letter_file_name': None,
}
] * 51
] * number_of_letters
mocker.patch('app.service_api_client.get_returned_letters', return_value=data)
page = client_request.get(
@@ -125,12 +138,12 @@ def test_returned_letters_page_with_many_letters(
reported_at='2019-12-24',
)
assert len(data) == 51
assert len(data) == number_of_letters
assert len(page.select('tbody tr')) == 50
assert normalize_spaces(
page.select_one('.table-show-more-link').text
) == (
'Only showing the first 50 of 51 rows'
expected_message
)
assert page.select_one('a[download]').text == (
'Download this report'