Browse Source

Redirect successful upload to logs index and display a success banner

pull/1615/head
Kat 3 years ago
parent
commit
1d15e0c115
  1. 7
      app/controllers/bulk_upload_lettings_data_check_controller.rb
  2. 2
      app/models/forms/bulk_upload_lettings_data_check/confirm.rb
  3. 15
      spec/requests/bulk_upload_lettings_data_check_controller_spec.rb

7
app/controllers/bulk_upload_lettings_data_check_controller.rb

@ -1,4 +1,6 @@
class BulkUploadLettingsDataCheckController < ApplicationController class BulkUploadLettingsDataCheckController < ApplicationController
include ActionView::Helpers::TextHelper
before_action :authenticate_user! before_action :authenticate_user!
def show def show
@ -11,6 +13,11 @@ class BulkUploadLettingsDataCheckController < ApplicationController
@bulk_upload = current_user.bulk_uploads.find(params[:id]) @bulk_upload = current_user.bulk_uploads.find(params[:id])
if form.valid? && form.save! 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 redirect_to form.next_path
else else
render form.view_path render form.view_path

2
app/models/forms/bulk_upload_lettings_data_check/confirm.rb

@ -16,7 +16,7 @@ module Forms
end end
def next_path def next_path
resume_bulk_upload_lettings_result_path(bulk_upload) lettings_logs_path
end end
def save! def save!

15
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" } } 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") 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 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("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).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
end end
describe "PATCH /lettings-logs/bulk-upload-resume/:ID/confirm" do describe "PATCH /lettings-logs/bulk-upload-data-check/:ID/confirm" do
let(:mock_processor) { instance_double(BulkUpload::Processor, approve: nil) } let(:mock_processor) { instance_double(BulkUpload::Processor, approve_and_confirm_soft_validations: nil) }
it "approves logs for creation" do it "approves logs for creation" do
allow(BulkUpload::Processor).to receive(:new).with(bulk_upload:).and_return(mock_processor) 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 end
end end

Loading…
Cancel
Save