diff --git a/app/controllers/bulk_upload_sales_results_controller.rb b/app/controllers/bulk_upload_sales_results_controller.rb new file mode 100644 index 000000000..d31ff5447 --- /dev/null +++ b/app/controllers/bulk_upload_sales_results_controller.rb @@ -0,0 +1,7 @@ +class BulkUploadSalesResultsController < ApplicationController + before_action :authenticate_user! + + def show + @bulk_upload = current_user.bulk_uploads.find(params[:id]) + end +end diff --git a/app/views/bulk_upload_sales_results/show.html.erb b/app/views/bulk_upload_sales_results/show.html.erb new file mode 100644 index 000000000..aacc80f9c --- /dev/null +++ b/app/views/bulk_upload_sales_results/show.html.erb @@ -0,0 +1,20 @@ +
+
+ Bulk Upload for sales (<%= @bulk_upload.year_combo %>) +

We found <%= pluralize(@bulk_upload.bulk_upload_errors.count, "error") %> in your file

+ +
+ Here’s a list of everything that you need to fix your spreadsheet. You can download the specification to help you fix the cells in your CSV file. +
+ +

<%= @bulk_upload.filename %>

+
+
+ +
+
+ <% @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/config/routes.rb b/config/routes.rb index df5d58b71..4e5b224c1 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -124,8 +124,6 @@ Rails.application.routes.draw do post "bulk-upload", to: "bulk_upload#bulk_upload" get "bulk-upload", to: "bulk_upload#show" - resources :bulk_upload_lettings_results, path: "bulk-upload-results", only: [:show] - get "csv-download", to: "lettings_logs#download_csv" post "email-csv", to: "lettings_logs#email_csv" get "csv-confirmation", to: "lettings_logs#csv_confirmation" @@ -135,6 +133,9 @@ Rails.application.routes.draw do get :start end end + + resources :bulk_upload_lettings_results, path: "bulk-upload-results", only: [:show] + get "update-logs", to: "lettings_logs#update_logs" end @@ -161,6 +162,8 @@ Rails.application.routes.draw do get :start end end + + resources :bulk_upload_sales_results, path: "bulk-upload-results", only: [:show] end FormHandler.instance.sales_forms.each do |_key, form| diff --git a/spec/requests/bulk_upload_sales_results_controller_spec.rb b/spec/requests/bulk_upload_sales_results_controller_spec.rb new file mode 100644 index 000000000..24f05df85 --- /dev/null +++ b/spec/requests/bulk_upload_sales_results_controller_spec.rb @@ -0,0 +1,46 @@ +require "rails_helper" + +RSpec.describe BulkUploadSalesResultsController, type: :request do + let(:user) { create(:user) } + let(:bulk_upload) { create(:bulk_upload, user:, bulk_upload_errors:) } + let(:bulk_upload_errors) { create_list(:bulk_upload_error, 2) } + + before do + sign_in user + end + + describe "GET /sales-logs/bulk-upload-results/:ID" do + it "renders correct year" do + get "/sales-logs/bulk-upload-results/#{bulk_upload.id}" + + expect(response).to be_successful + expect(response.body).to include("Bulk Upload for sales (2022/23)") + end + + it "renders correct number of errors" do + get "/sales-logs/bulk-upload-results/#{bulk_upload.id}" + + expect(response).to be_successful + expect(response.body).to include("We found 2 errors in your file") + end + + it "renders filename of the upload" do + get "/sales-logs/bulk-upload-results/#{bulk_upload.id}" + + 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 "/sales-logs/bulk-upload-results/#{bulk_upload.id}" + + expect(response.body).to include("