diff --git a/app/main/views/send.py b/app/main/views/send.py index 870fdcb48..757f8cbe0 100644 --- a/app/main/views/send.py +++ b/app/main/views/send.py @@ -459,15 +459,17 @@ def check_messages(service_id, template_type, upload_id): data['recipients'].too_many_rows or not data['count_of_recipients'] or not data['recipients'].has_recipient_columns or - data['recipients'].missing_column_headers or - data['trying_to_send_letters_in_trial_mode'] + data['recipients'].missing_column_headers ): return render_template('views/check/column-errors.html', **data) if data['row_errors']: return render_template('views/check/row-errors.html', **data) - if data['errors']: + if ( + data['errors'] or + data['trying_to_send_letters_in_trial_mode'] + ): return render_template('views/check/column-errors.html', **data) return render_template('views/check/ok.html', **data) diff --git a/tests/app/main/views/test_send.py b/tests/app/main/views/test_send.py index d80548416..45e6b4b44 100644 --- a/tests/app/main/views/test_send.py +++ b/tests/app/main/views/test_send.py @@ -1631,6 +1631,38 @@ def test_check_messages_shows_trial_mode_error_for_letters( assert not error +def test_check_messages_shows_data_errors_before_trial_mode_errors_for_letters( + mocker, + client_request, + mock_get_service_letter_template, + mock_has_permissions, + mock_get_users_by_service, + mock_get_detailed_service_for_today, +): + + mocker.patch('app.main.views.send.s3download', return_value='\n'.join( + ['address_line_1,address_line_2,postcode,'] + + [' , ,11SW1 1AA'] + )) + + with client_request.session_transaction() as session: + session['upload_data'] = {'template_id': '', 'original_file_name': 'example.xlsx'} + + page = client_request.get( + 'main.check_messages', + service_id=SERVICE_ONE_ID, + template_type='letter', + upload_id=uuid.uuid4(), + _test_page_title=False, + ) + + assert normalize_spaces(page.select_one('.banner-dangerous').text) == ( + 'There is a problem with example.xlsx ' + 'You need to enter missing data in 1 row ' + 'Skip to file contents' + ) + + def test_generate_test_letter_doesnt_block_in_trial_mode( client_request, mocker,