From 1d15e0c115034adf3941d10fecdaea0bf8541e9c Mon Sep 17 00:00:00 2001 From: Kat Date: Thu, 11 May 2023 18:07:54 +0100 Subject: [PATCH] Redirect successful upload to logs index and display a success banner --- .../bulk_upload_lettings_data_check_controller.rb | 7 +++++++ .../bulk_upload_lettings_data_check/confirm.rb | 2 +- ..._upload_lettings_data_check_controller_spec.rb | 15 ++++++++++----- 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/app/controllers/bulk_upload_lettings_data_check_controller.rb b/app/controllers/bulk_upload_lettings_data_check_controller.rb index 0e17582c3..4975a29fb 100644 --- a/app/controllers/bulk_upload_lettings_data_check_controller.rb +++ b/app/controllers/bulk_upload_lettings_data_check_controller.rb @@ -1,4 +1,6 @@ class BulkUploadLettingsDataCheckController < ApplicationController + include ActionView::Helpers::TextHelper + before_action :authenticate_user! def show @@ -11,6 +13,11 @@ class BulkUploadLettingsDataCheckController < ApplicationController @bulk_upload = current_user.bulk_uploads.find(params[:id]) if form.valid? && form.save! + if params[:page] == "confirm" + n_logs = pluralize(@bulk_upload.logs.count, "log") + flash[:notice] = "You’ve successfully uploaded #{n_logs}" + end + redirect_to form.next_path else render form.view_path diff --git a/app/models/forms/bulk_upload_lettings_data_check/confirm.rb b/app/models/forms/bulk_upload_lettings_data_check/confirm.rb index 18e12db4a..38bd0a758 100644 --- a/app/models/forms/bulk_upload_lettings_data_check/confirm.rb +++ b/app/models/forms/bulk_upload_lettings_data_check/confirm.rb @@ -16,7 +16,7 @@ module Forms end def next_path - resume_bulk_upload_lettings_result_path(bulk_upload) + lettings_logs_path end def save! 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 507b4061f..cefe8bc39 100644 --- a/spec/requests/bulk_upload_lettings_data_check_controller_spec.rb +++ b/spec/requests/bulk_upload_lettings_data_check_controller_spec.rb @@ -46,6 +46,8 @@ RSpec.describe BulkUploadLettingsDataCheckController, type: :request do patch "/lettings-logs/bulk-upload-data-check/#{bulk_upload.id}/soft-errors-valid", params: { form: { soft_errors_valid: "no" } } expect(response).to redirect_to("/lettings-logs/bulk-upload-data-check/#{bulk_upload.id}/confirm") + follow_redirect! + expect(response.body).not_to include("You’ve successfully uploaded") end end end @@ -58,20 +60,23 @@ RSpec.describe BulkUploadLettingsDataCheckController, type: :request do 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.") + expect(response.body).not_to include("You’ve successfully uploaded") end end - describe "PATCH /lettings-logs/bulk-upload-resume/:ID/confirm" do - let(:mock_processor) { instance_double(BulkUpload::Processor, approve: nil) } + describe "PATCH /lettings-logs/bulk-upload-data-check/:ID/confirm" do + let(:mock_processor) { instance_double(BulkUpload::Processor, approve_and_confirm_soft_validations: 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" + patch "/lettings-logs/bulk-upload-data-check/#{bulk_upload.id}/confirm" - expect(mock_processor).to have_received(:approve) + expect(mock_processor).to have_received(:approve_and_confirm_soft_validations) - expect(response).to redirect_to("/lettings-logs/bulk-upload-results/#{bulk_upload.id}/resume") + expect(response).to redirect_to("/lettings-logs") + follow_redirect! + expect(response.body).to include("You’ve successfully uploaded 2 logs") end end end