Browse Source

Route back to the initial log if it still has duplicates

pull/1793/head
Kat 3 years ago
parent
commit
ab4a122d36
  1. 30
      app/controllers/form_controller.rb
  2. 34
      spec/requests/form_controller_spec.rb

30
app/controllers/form_controller.rb

@ -161,17 +161,29 @@ private
params[@log.model_name.param_key]["interruption_page_referrer_type"].presence params[@log.model_name.param_key]["interruption_page_referrer_type"].presence
end end
def correcting_duplicate_logs_redirect_path
class_name = @log.class.name.underscore
original_log = current_user.send(class_name.pluralize).find_by(id: from_referrer_query("original_log_id"))
if current_user.send(class_name.pluralize).duplicate_logs(original_log).count.positive?
send("#{class_name}_duplicate_logs_path", original_log, original_log_id: original_log.id)
else
send("#{class_name}_duplicate_logs_path", "#{class_name}_id".to_sym => from_referrer_query("remaining_duplicate_id"), original_log_id: from_referrer_query("original_log_id"))
end
end
def successful_redirect_path def successful_redirect_path
if FeatureToggle.deduplication_flow_enabled? if FeatureToggle.deduplication_flow_enabled?
if @log.lettings? if is_referrer_type?("duplicate_logs")
if is_referrer_type?("duplicate_logs") return correcting_duplicate_logs_redirect_path
return send("lettings_log_duplicate_logs_path", lettings_log_id: from_referrer_query("remaining_duplicate_id"), original_log_id: from_referrer_query("original_log_id")) end
elsif current_user.lettings_logs.duplicate_logs(@log).count.positive?
return send("lettings_log_duplicate_logs_path", @log, original_log_id: @log.id) if @log.lettings? && current_user.lettings_logs.duplicate_logs(@log).count.positive?
end return send("lettings_log_duplicate_logs_path", @log, original_log_id: @log.id)
elsif is_referrer_type?("duplicate_logs") end
return send("sales_log_duplicate_logs_path", sales_log_id: from_referrer_query("remaining_duplicate_id"), original_log_id: from_referrer_query("original_log_id"))
elsif current_user.sales_logs.duplicate_logs(@log).count.positive? if @log.sales? && current_user.sales_logs.duplicate_logs(@log).count.positive?
return send("sales_log_duplicate_logs_path", @log, original_log_id: @log.id) return send("sales_log_duplicate_logs_path", @log, original_log_id: @log.id)
end end
end end

34
spec/requests/form_controller_spec.rb

@ -755,6 +755,23 @@ RSpec.describe FormController, type: :request do
it "redirects back to the duplicates page for remaining duplicates" do it "redirects back to the duplicates page for remaining duplicates" do
expect(response).to redirect_to("/lettings-logs/#{duplicate_log.id}/duplicate-logs?original_log_id=#{lettings_log.id}") expect(response).to redirect_to("/lettings-logs/#{duplicate_log.id}/duplicate-logs?original_log_id=#{lettings_log.id}")
end end
context "and the answer didn't change" do
let(:params) do
{
id: lettings_log.id,
lettings_log: {
page: "lead_tenant_age",
age1: lettings_log.age1,
age1_known: lettings_log.age1_known,
},
}
end
it "redirects back to the duplicates page for remaining duplicates" do
expect(response).to have_http_status(:ok)
end
end
end end
context "when the sales question was accessed from a duplicate logs screen" do context "when the sales question was accessed from a duplicate logs screen" do
@ -779,6 +796,23 @@ RSpec.describe FormController, type: :request do
it "redirects back to the duplicates page for remaining duplicates" do it "redirects back to the duplicates page for remaining duplicates" do
expect(response).to redirect_to("/sales-logs/#{duplicate_log.id}/duplicate-logs?original_log_id=#{sales_log.id}") expect(response).to redirect_to("/sales-logs/#{duplicate_log.id}/duplicate-logs?original_log_id=#{sales_log.id}")
end end
context "and the answer didn't change" do
let(:params) do
{
id: sales_log.id,
sales_log: {
page: "buyer_1_age",
age1: sales_log.age1,
age1_known: sales_log.age1_known,
},
}
end
it "redirects back to the duplicates page for remaining duplicates" do
expect(response).to have_http_status(:ok)
end
end
end end
end end

Loading…
Cancel
Save