From adcacb37c83eda8337d8d7e64f92ceeb9aa6749f Mon Sep 17 00:00:00 2001 From: Phil Lee Date: Wed, 25 Jan 2023 12:54:30 +0000 Subject: [PATCH] after resolving bulk upload logs show interstitial --- app/controllers/lettings_logs_controller.rb | 11 +++++++++-- spec/requests/lettings_logs_controller_spec.rb | 17 +++++++++++++++-- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/app/controllers/lettings_logs_controller.rb b/app/controllers/lettings_logs_controller.rb index d58c2de9c..a7bc2dc56 100644 --- a/app/controllers/lettings_logs_controller.rb +++ b/app/controllers/lettings_logs_controller.rb @@ -3,9 +3,10 @@ class LettingsLogsController < LogsController before_action :session_filters, if: :current_user before_action :set_session_filters, if: :current_user - def index - extract_bulk_upload_from_session_filters + before_action :extract_bulk_upload_from_session_filters, only: [:index] + before_action :redirect_if_bulk_upload_resolved, only: [:index] + def index respond_to do |format| format.html do all_logs = current_user.lettings_logs @@ -111,6 +112,12 @@ class LettingsLogsController < LogsController private + def redirect_if_bulk_upload_resolved + if @bulk_upload && @bulk_upload.lettings_logs.in_progress.count.zero? + redirect_to resume_bulk_upload_lettings_result_path(@bulk_upload) + end + end + def extract_bulk_upload_from_session_filters id = ((@session_filters["bulk_upload_id"] || []).reject(&:blank?))[0] @bulk_upload = current_user.bulk_uploads.find_by(id:) diff --git a/spec/requests/lettings_logs_controller_spec.rb b/spec/requests/lettings_logs_controller_spec.rb index 8c706c930..08e812cb4 100644 --- a/spec/requests/lettings_logs_controller_spec.rb +++ b/spec/requests/lettings_logs_controller_spec.rb @@ -408,8 +408,8 @@ RSpec.describe LettingsLogsController, type: :request do let(:user) { create(:user, organisation:) } let(:bulk_upload) { create(:bulk_upload, user:) } - let!(:included_log) { create(:lettings_log, bulk_upload:, owning_organisation: organisation) } - let!(:excluded_log) { create(:lettings_log, owning_organisation: organisation) } + let!(:included_log) { create(:lettings_log, :in_progress, bulk_upload:, owning_organisation: organisation) } + let!(:excluded_log) { create(:lettings_log, :in_progress, owning_organisation: organisation) } it "returns logs only associated with the bulk upload" do get "/lettings-logs?bulk_upload_id[]=#{bulk_upload.id}" @@ -472,6 +472,19 @@ RSpec.describe LettingsLogsController, type: :request do expect(page).not_to have_content(also_excluded_log.id) end end + + context "when bulk upload has been resolved" do + let(:organisation) { create(:organisation) } + + let(:user) { create(:user, organisation:) } + let(:bulk_upload) { create(:bulk_upload, user:) } + + it "redirects to resume the bulk upload" do + get "/lettings-logs?bulk_upload_id[]=#{bulk_upload.id}" + + expect(response).to redirect_to(resume_bulk_upload_lettings_result_path(bulk_upload)) + end + end end context "without bulk_upload_id" do