Refactor uploads preview error banner to use a shared component

Also refactor a corresponding test to avoid asserting on the content
This commit is contained in:
Pea Tyczynska
2019-10-24 22:57:05 +01:00
parent f2c7eb5c3e
commit 5e10ed23a1
5 changed files with 14 additions and 18 deletions

View File

@@ -145,13 +145,13 @@ def uploaded_letter_preview(service_id, file_id):
original_filename = metadata.get('filename') original_filename = metadata.get('filename')
page_count = metadata.get('page_count') page_count = metadata.get('page_count')
status = metadata.get('status') status = metadata.get('status')
error_message = metadata.get('message') error_shortcode = metadata.get('message')
invalid_pages = metadata.get('invalid_pages') invalid_pages = metadata.get('invalid_pages')
if invalid_pages: if invalid_pages:
invalid_pages = json.loads(invalid_pages) invalid_pages = json.loads(invalid_pages)
error = get_letter_validation_error(error_message, invalid_pages, page_count) error_message = get_letter_validation_error(error_shortcode, invalid_pages, page_count)
template_dict = service_api_client.get_precompiled_template(service_id) template_dict = service_api_client.get_precompiled_template(service_id)
# Override pre compiled letter template postage to none as it has not yet been picked even though # Override pre compiled letter template postage to none as it has not yet been picked even though
# the pre compiled letter template has its postage set as second class as the DB currently requires # the pre compiled letter template has its postage set as second class as the DB currently requires
@@ -177,7 +177,8 @@ def uploaded_letter_preview(service_id, file_id):
template=template, template=template,
status=status, status=status,
file_id=file_id, file_id=file_id,
error=error, message=error_message,
error_code=error_shortcode,
form=form, form=form,
) )

View File

@@ -1,4 +1,4 @@
<h1 class='banner-title' data-module="track-error" data-error-type="Trying to send a letter that's too long" data-error-label="{{ upload_id }}"> <h1 class='banner-title' data-module="track-error" data-error-type="Trying to send a letter that's too long" data-error-label="service_id: {{ current_service.id }}">
Your letter is too long Your letter is too long
</h1> </h1>
<p> <p>

View File

@@ -2,9 +2,13 @@
{% call banner_wrapper(type='dangerous') %} {% call banner_wrapper(type='dangerous') %}
{% if message is string %} {% if message is string %}
<h1 class="banner-title">{{ message }}</h1> <h1 class="banner-title">
{{ message }}
</h1>
{% else %} {% else %}
<h1 class="banner-title">{{ message.title }}</h1> <h1 class="banner-title" data-module="track-error" data-error-type="{{ error_code }}" data-error-label="precompiled letter validation failed for service_id: {{ current_service.id }}">
{{ message.title }}
</h1>
{% if message.detail %} {% if message.detail %}
<p> <p>
{{ message.detail | safe }} {{ message.detail | safe }}

View File

@@ -9,13 +9,8 @@
{% endblock %} {% endblock %}
{% block maincolumn_content %} {% block maincolumn_content %}
{% if status == 'invalid' and error %} {% if status == 'invalid' and message %}
{% call banner_wrapper(type='dangerous') %} {% include "partials/check/letter-validation-failed-banner.html" %}
<h1 class="banner-title">{{ error.title }}</h1>
{% if error.detail %}
<p>{{ error.detail | safe }}</p>
{% endif %}
{% endcall %}
{% elif current_service.trial_mode %} {% elif current_service.trial_mode %}
{% call banner_wrapper(type='dangerous') %} {% call banner_wrapper(type='dangerous') %}
{% with {% with

View File

@@ -249,11 +249,7 @@ def test_post_upload_letter_with_invalid_file(mocker, client_request):
message='content-outside-printable-area' message='content-outside-printable-area'
) )
assert page.find('div', class_='banner-dangerous').find('h1').text == 'We cannot print your letter' assert page.find('div', class_='banner-dangerous').find('h1', {"data-error-type": 'content-outside-printable-area'})
assert page.find(
'div', class_='banner-dangerous').find('p').text == (
'The content appears outside the printable area on page 1 Files must meet our letter specification.'
)
assert not page.find('button', {'type': 'submit'}) assert not page.find('button', {'type': 'submit'})