From f01eff36324bd7e8e20750fd9e22a10ce6d1f422 Mon Sep 17 00:00:00 2001 From: Phil Lee Date: Wed, 14 Dec 2022 15:33:53 +0000 Subject: [PATCH] group bulk upload errors by row on results --- .../bulk_upload_error_row_component.html.erb | 2 +- app/views/bulk_upload_lettings_results/show.html.erb | 4 +++- .../bulk_upload_lettings_results_controller_spec.rb | 12 ++++++++++++ 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/app/components/bulk_upload_error_row_component.html.erb b/app/components/bulk_upload_error_row_component.html.erb index 4917251fb..a24776611 100644 --- a/app/components/bulk_upload_error_row_component.html.erb +++ b/app/components/bulk_upload_error_row_component.html.erb @@ -1,4 +1,4 @@ -
+

Row <%= row %> Tenant code: <%= tenant_code %> Property reference: <%= property_ref %>

diff --git a/app/views/bulk_upload_lettings_results/show.html.erb b/app/views/bulk_upload_lettings_results/show.html.erb index a9dd4192f..452926787 100644 --- a/app/views/bulk_upload_lettings_results/show.html.erb +++ b/app/views/bulk_upload_lettings_results/show.html.erb @@ -13,6 +13,8 @@
- <%= render BulkUploadErrorRowComponent.new(bulk_upload_errors: @bulk_upload.bulk_upload_errors) %> + <% @bulk_upload.bulk_upload_errors.group_by(&:row).each do |_row, errors_for_row| %> + <%= render BulkUploadErrorRowComponent.new(bulk_upload_errors: errors_for_row) %> + <% end %>
diff --git a/spec/requests/bulk_upload_lettings_results_controller_spec.rb b/spec/requests/bulk_upload_lettings_results_controller_spec.rb index 673c4f5bc..828242b83 100644 --- a/spec/requests/bulk_upload_lettings_results_controller_spec.rb +++ b/spec/requests/bulk_upload_lettings_results_controller_spec.rb @@ -30,5 +30,17 @@ RSpec.describe BulkUploadLettingsResultsController, type: :request do expect(response).to be_successful expect(response.body).to include(bulk_upload.filename) end + + context "when there are errors for more than 1 row" do + let(:bulk_upload_errors) { [bulk_upload_error_1, bulk_upload_error_2] } + let(:bulk_upload_error_1) { create(:bulk_upload_error, row: 1) } + let(:bulk_upload_error_2) { create(:bulk_upload_error, row: 2) } + + it "renders no. of tables equal to no. of rows with errors" do + get "/lettings-logs/bulk-upload-results/#{bulk_upload.id}" + + expect(response.body).to include("