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("