From 48ca9bfebf1cf1fc0d32313f8f8669cf11f7e95c Mon Sep 17 00:00:00 2001 From: Kat Date: Wed, 10 May 2023 14:17:24 +0100 Subject: [PATCH] Add soft errors confirm page --- .../confirm.html.erb | 22 ++++++++++++++++ ...oad_lettings_data_check_controller_spec.rb | 26 +++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 app/views/bulk_upload_lettings_data_check/confirm.html.erb diff --git a/app/views/bulk_upload_lettings_data_check/confirm.html.erb b/app/views/bulk_upload_lettings_data_check/confirm.html.erb new file mode 100644 index 000000000..a2c139cb9 --- /dev/null +++ b/app/views/bulk_upload_lettings_data_check/confirm.html.erb @@ -0,0 +1,22 @@ +<% content_for :before_content do %> + <%= govuk_back_link href: @form.back_path %> +<% end %> + +
+
+ Bulk upload for lettings (<%= @bulk_upload.year_combo %>) +

Are you sure you want to upload all logs from this bulk upload?

+ +

There are <%= pluralize(@bulk_upload.logs.count, "log") %> in this bulk upload, and <%= pluralize(@bulk_upload.bulk_upload_errors.count, "unexpected answer") %> will be marked as correct.

+ + <%= govuk_warning_text(icon_fallback_text: "Danger") do %> + You can not delete logs once you create them + <% end %> + + <%= form_with model: @form, scope: :form, url: page_bulk_upload_lettings_data_check_path(@bulk_upload, page: "confirm"), method: :patch do |f| %> + <%= f.govuk_submit %> + + <%= govuk_button_link_to "Cancel", @form.back_path, secondary: true %> + <% end %> +
+
diff --git a/spec/requests/bulk_upload_lettings_data_check_controller_spec.rb b/spec/requests/bulk_upload_lettings_data_check_controller_spec.rb index 3c3672d72..507b4061f 100644 --- a/spec/requests/bulk_upload_lettings_data_check_controller_spec.rb +++ b/spec/requests/bulk_upload_lettings_data_check_controller_spec.rb @@ -6,6 +6,7 @@ RSpec.describe BulkUploadLettingsDataCheckController, type: :request do let(:bulk_upload_errors) { create_list(:bulk_upload_error, 2) } before do + create_list(:lettings_log, 2, bulk_upload:) sign_in user end @@ -48,4 +49,29 @@ RSpec.describe BulkUploadLettingsDataCheckController, type: :request do end end end + + describe "GET /lettings-logs/bulk-upload-data-check/:ID/confirm" do + it "renders page" do + get "/lettings-logs/bulk-upload-data-check/#{bulk_upload.id}/confirm" + + expect(response).to be_successful + + expect(response.body).to include("Are you sure you want to upload all logs from this bulk upload?") + expect(response.body).to include("There are 2 logs in this bulk upload, and 2 unexpected answers will be marked as correct.") + end + end + + describe "PATCH /lettings-logs/bulk-upload-resume/:ID/confirm" do + let(:mock_processor) { instance_double(BulkUpload::Processor, approve: nil) } + + it "approves logs for creation" do + allow(BulkUpload::Processor).to receive(:new).with(bulk_upload:).and_return(mock_processor) + + patch "/lettings-logs/bulk-upload-resume/#{bulk_upload.id}/confirm" + + expect(mock_processor).to have_received(:approve) + + expect(response).to redirect_to("/lettings-logs/bulk-upload-results/#{bulk_upload.id}/resume") + end + end end