From bf124bdeab6483b3cbf2af34cecdc9e3787b17e7 Mon Sep 17 00:00:00 2001 From: Kat Date: Thu, 11 Jan 2024 10:47:50 +0000 Subject: [PATCH] Update tests --- app/controllers/form_controller.rb | 2 ++ spec/features/form/form_navigation_spec.rb | 14 +++++++++++++- spec/requests/form_controller_spec.rb | 8 ++++++++ 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/app/controllers/form_controller.rb b/app/controllers/form_controller.rb index 078eecc61..7a0928907 100644 --- a/app/controllers/form_controller.rb +++ b/app/controllers/form_controller.rb @@ -292,6 +292,8 @@ private def remove_fixed_duplicate_log_references(log) duplicate_log_reference = DuplicateLogReference.find_by(log_id: log.id, log_type: log.class.name) + return unless duplicate_log_reference + duplicate_log_reference_id = duplicate_log_reference.duplicate_log_reference_id duplicate_log_reference.destroy! if duplicate_log_reference.present? DuplicateLogReference.find_by(duplicate_log_reference_id:).destroy! if DuplicateLogReference.where(duplicate_log_reference_id:).count == 1 diff --git a/spec/features/form/form_navigation_spec.rb b/spec/features/form/form_navigation_spec.rb index d248fbfcc..3ac0328f1 100644 --- a/spec/features/form/form_navigation_spec.rb +++ b/spec/features/form/form_navigation_spec.rb @@ -178,16 +178,28 @@ RSpec.describe "Form Navigation" do end describe "fixing duplicate logs" do + let(:lettings_log) { create(:lettings_log, :duplicate, created_by: user) } + let(:second_log) { create(:lettings_log, :duplicate, created_by: user) } + + before do + create(:duplicate_log_reference, log_id: id, log_type: "LettingsLog") + create(:duplicate_log_reference, log_id: second_log.id, log_type: "LettingsLog") + end + it "shows a correct cancel link" do - visit("lettings-logs/#{id}/tenant-code-test?first_remaining_duplicate_id=x&original_log_id=#{id}&referrer=duplicate_logs") + expect(DuplicateLogReference.count).to eq(2) + visit("lettings-logs/#{id}/tenant-code-test?first_remaining_duplicate_id=#{second_log.id}&original_log_id=#{id}&referrer=duplicate_logs") click_link(text: "Cancel") expect(page).to have_current_path("/lettings-logs/#{id}/duplicate-logs?original_log_id=#{id}") + expect(DuplicateLogReference.count).to eq(2) end it "shows a correct Save Changes buttons" do + expect(DuplicateLogReference.count).to eq(2) visit("lettings-logs/#{id}/tenant-code-test?first_remaining_duplicate_id=#{id}&original_log_id=#{id}&referrer=duplicate_logs") click_button(text: "Save changes") expect(page).to have_current_path("/lettings-logs/#{id}/duplicate-logs?original_log_id=#{id}&referrer=duplicate_logs") + expect(DuplicateLogReference.count).to eq(2) end end end diff --git a/spec/requests/form_controller_spec.rb b/spec/requests/form_controller_spec.rb index ba27077a5..9512a8f5d 100644 --- a/spec/requests/form_controller_spec.rb +++ b/spec/requests/form_controller_spec.rb @@ -897,11 +897,14 @@ RSpec.describe FormController, type: :request do end before do + duplicate_log_reference_id = create(:duplicate_log_reference, log_id: lettings_log.id, log_type: "LettingsLog").duplicate_log_reference_id + create(:duplicate_log_reference, log_id: duplicate_log.id, log_type: "LettingsLog", duplicate_log_reference_id:) post "/lettings-logs/#{lettings_log.id}/lead-tenant-age", params:, headers: headers.merge({ "HTTP_REFERER" => referrer }) end 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(DuplicateLogReference.count).to eq(0) end context "and the answer didn't change" do @@ -918,6 +921,7 @@ RSpec.describe FormController, type: :request do it "redirects back to the duplicates page for remaining duplicates" do expect(response).to redirect_to("/lettings-logs/#{lettings_log.id}/duplicate-logs?original_log_id=#{lettings_log.id}") + expect(DuplicateLogReference.count).to eq(2) end end end @@ -938,11 +942,14 @@ RSpec.describe FormController, type: :request do end before do + duplicate_log_reference_id = create(:duplicate_log_reference, log_id: sales_log.id, log_type: "SalesLog").duplicate_log_reference_id + create(:duplicate_log_reference, log_id: duplicate_log.id, log_type: "SalesLog", duplicate_log_reference_id:) post "/sales-logs/#{sales_log.id}/buyer-1-age", params:, headers: headers.merge({ "HTTP_REFERER" => referrer }) end 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(DuplicateLogReference.count).to eq(0) end context "and the answer didn't change" do @@ -959,6 +966,7 @@ RSpec.describe FormController, type: :request do it "redirects back to the duplicates page for remaining duplicates" do expect(response).to redirect_to("/sales-logs/#{sales_log.id}/duplicate-logs?original_log_id=#{sales_log.id}") + expect(DuplicateLogReference.count).to eq(2) end end end