From d59fee873439973c74220bff85e227520550959b Mon Sep 17 00:00:00 2001 From: Samuel Young Date: Wed, 10 Sep 2025 14:39:29 +0100 Subject: [PATCH] Reapply CLDC-4043 (#3098) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Reapply "CLDC-4043: Ensure that if an Organisation merge fails due to a valida…" (#3092) This reverts commit 13ba0cc735a8248b73d632940b5e7c916d0304b1. * CLDC-4034: TEST throw RecordInvalid on merge * Revert "CLDC-4034: TEST throw RecordInvalid on merge" This reverts commit 9f1155ad135d027b1c3b068df5a73c922c807408. --- .../merge/merge_organisations_service.rb | 2 +- .../merge/merge_organisations_service_spec.rb | 40 +++++++++---------- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/app/services/merge/merge_organisations_service.rb b/app/services/merge/merge_organisations_service.rb index feef10245..f87d811a4 100644 --- a/app/services/merge/merge_organisations_service.rb +++ b/app/services/merge/merge_organisations_service.rb @@ -26,7 +26,7 @@ class Merge::MergeOrganisationsService log_success_message rescue ActiveRecord::RecordInvalid => e Rails.logger.error("Organisation merge failed with: #{e.message}") - raise ActiveRecord::Rollback + raise end end diff --git a/spec/services/merge/merge_organisations_service_spec.rb b/spec/services/merge/merge_organisations_service_spec.rb index de98894b7..2be375c17 100644 --- a/spec/services/merge/merge_organisations_service_spec.rb +++ b/spec/services/merge/merge_organisations_service_spec.rb @@ -59,7 +59,7 @@ RSpec.describe Merge::MergeOrganisationsService do allow(Organisation).to receive(:find).with(absorbing_organisation.id).and_return(absorbing_organisation) allow(absorbing_organisation).to receive(:save!).and_raise(ActiveRecord::RecordInvalid) expect(Rails.logger).to receive(:error).with("Organisation merge failed with: Record invalid") - merge_organisations_service.call + expect { merge_organisations_service.call }.to raise_error(ActiveRecord::RecordInvalid) absorbing_organisation.reload merging_organisation.reload @@ -103,7 +103,7 @@ RSpec.describe Merge::MergeOrganisationsService do allow(Organisation).to receive(:find).with(absorbing_organisation.id).and_return(absorbing_organisation) allow(absorbing_organisation).to receive(:save!).and_raise(ActiveRecord::RecordInvalid) expect(Rails.logger).to receive(:error).with("Organisation merge failed with: Record invalid") - merge_organisations_service.call + expect { merge_organisations_service.call }.to raise_error(ActiveRecord::RecordInvalid) absorbing_organisation.reload merging_organisation.reload @@ -140,7 +140,7 @@ RSpec.describe Merge::MergeOrganisationsService do allow(Organisation).to receive(:find).with(absorbing_organisation.id).and_return(absorbing_organisation) allow(absorbing_organisation).to receive(:save!).and_raise(ActiveRecord::RecordInvalid) expect(Rails.logger).to receive(:error).with("Organisation merge failed with: Record invalid") - merge_organisations_service.call + expect { merge_organisations_service.call }.to raise_error(ActiveRecord::RecordInvalid) absorbing_organisation.reload expect(absorbing_organisation.child_organisations.count).to eq(3) @@ -557,7 +557,7 @@ RSpec.describe Merge::MergeOrganisationsService do allow(Organisation).to receive(:find).with(absorbing_organisation.id).and_return(absorbing_organisation) allow(absorbing_organisation).to receive(:save!).and_raise(ActiveRecord::RecordInvalid) expect(Rails.logger).to receive(:error).with("Organisation merge failed with: Record invalid") - merge_organisations_service.call + expect { merge_organisations_service.call }.to raise_error(ActiveRecord::RecordInvalid) absorbing_organisation.reload merging_organisation.reload @@ -590,7 +590,7 @@ RSpec.describe Merge::MergeOrganisationsService do allow(Organisation).to receive(:find).with(absorbing_organisation.id).and_return(absorbing_organisation) allow(absorbing_organisation).to receive(:save!).and_raise(ActiveRecord::RecordInvalid) expect(Rails.logger).to receive(:error).with("Organisation merge failed with: Record invalid") - merge_organisations_service.call + expect { merge_organisations_service.call }.to raise_error(ActiveRecord::RecordInvalid) absorbing_organisation.reload expect(absorbing_organisation.sales_logs.count).to eq(0) @@ -652,7 +652,7 @@ RSpec.describe Merge::MergeOrganisationsService do allow(Organisation).to receive(:find).with(absorbing_organisation.id).and_return(absorbing_organisation) allow(absorbing_organisation).to receive(:save!).and_raise(ActiveRecord::RecordInvalid) expect(Rails.logger).to receive(:error).with("Organisation merge failed with: Record invalid") - merge_organisations_service.call + expect { merge_organisations_service.call }.to raise_error(ActiveRecord::RecordInvalid) absorbing_organisation.reload expect(absorbing_organisation.sales_logs.count).to eq(0) @@ -688,7 +688,7 @@ RSpec.describe Merge::MergeOrganisationsService do allow(Organisation).to receive(:find).with(absorbing_organisation.id).and_return(absorbing_organisation) allow(absorbing_organisation).to receive(:save!).and_raise(ActiveRecord::RecordInvalid) expect(Rails.logger).to receive(:error).with("Organisation merge failed with: Record invalid") - merge_organisations_service.call + expect { merge_organisations_service.call }.to raise_error(ActiveRecord::RecordInvalid) absorbing_organisation.reload expect(absorbing_organisation.lettings_logs.count).to eq(0) @@ -852,7 +852,7 @@ RSpec.describe Merge::MergeOrganisationsService do allow(Organisation).to receive(:find).with(absorbing_organisation.id).and_return(absorbing_organisation) allow(absorbing_organisation).to receive(:save!).and_raise(ActiveRecord::RecordInvalid) expect(Rails.logger).to receive(:error).with("Organisation merge failed with: Record invalid") - merge_organisations_service.call + expect { merge_organisations_service.call }.to raise_error(ActiveRecord::RecordInvalid) absorbing_organisation.reload merging_organisation.reload @@ -971,7 +971,7 @@ RSpec.describe Merge::MergeOrganisationsService do allow(Organisation).to receive(:find).with(absorbing_organisation.id).and_return(absorbing_organisation) allow(absorbing_organisation).to receive(:save!).and_raise(ActiveRecord::RecordInvalid) expect(Rails.logger).to receive(:error).with("Organisation merge failed with: Record invalid") - merge_organisations_service.call + expect { merge_organisations_service.call }.to raise_error(ActiveRecord::RecordInvalid) absorbing_organisation.reload merging_organisation.reload @@ -1096,7 +1096,7 @@ RSpec.describe Merge::MergeOrganisationsService do allow(Organisation).to receive(:find).with(absorbing_organisation.id).and_return(absorbing_organisation) allow(absorbing_organisation).to receive(:save!).and_raise(ActiveRecord::RecordInvalid) expect(Rails.logger).to receive(:error).with("Organisation merge failed with: Record invalid") - merge_organisations_service.call + expect { merge_organisations_service.call }.to raise_error(ActiveRecord::RecordInvalid) absorbing_organisation.reload merging_organisation.reload @@ -1166,7 +1166,7 @@ RSpec.describe Merge::MergeOrganisationsService do allow(Organisation).to receive(:find).with(new_absorbing_organisation.id).and_return(new_absorbing_organisation) allow(new_absorbing_organisation).to receive(:save!).and_raise(ActiveRecord::RecordInvalid) expect(Rails.logger).to receive(:error).with("Organisation merge failed with: Record invalid") - merge_organisations_service.call + expect { merge_organisations_service.call }.to raise_error(ActiveRecord::RecordInvalid) new_absorbing_organisation.reload merging_organisation.reload @@ -1210,7 +1210,7 @@ RSpec.describe Merge::MergeOrganisationsService do allow(Organisation).to receive(:find).with(new_absorbing_organisation.id).and_return(new_absorbing_organisation) allow(new_absorbing_organisation).to receive(:save!).and_raise(ActiveRecord::RecordInvalid) expect(Rails.logger).to receive(:error).with("Organisation merge failed with: Record invalid") - merge_organisations_service.call + expect { merge_organisations_service.call }.to raise_error(ActiveRecord::RecordInvalid) new_absorbing_organisation.reload merging_organisation.reload @@ -1247,7 +1247,7 @@ RSpec.describe Merge::MergeOrganisationsService do allow(Organisation).to receive(:find).with(new_absorbing_organisation.id).and_return(new_absorbing_organisation) allow(new_absorbing_organisation).to receive(:save!).and_raise(ActiveRecord::RecordInvalid) expect(Rails.logger).to receive(:error).with("Organisation merge failed with: Record invalid") - merge_organisations_service.call + expect { merge_organisations_service.call }.to raise_error(ActiveRecord::RecordInvalid) new_absorbing_organisation.reload expect(new_absorbing_organisation.child_organisations.count).to eq(3) @@ -1352,7 +1352,7 @@ RSpec.describe Merge::MergeOrganisationsService do allow(Organisation).to receive(:find).with(new_absorbing_organisation.id).and_return(new_absorbing_organisation) allow(new_absorbing_organisation).to receive(:save!).and_raise(ActiveRecord::RecordInvalid) expect(Rails.logger).to receive(:error).with("Organisation merge failed with: Record invalid") - merge_organisations_service.call + expect { merge_organisations_service.call }.to raise_error(ActiveRecord::RecordInvalid) new_absorbing_organisation.reload merging_organisation.reload @@ -1384,7 +1384,7 @@ RSpec.describe Merge::MergeOrganisationsService do allow(Organisation).to receive(:find).with(new_absorbing_organisation.id).and_return(new_absorbing_organisation) allow(new_absorbing_organisation).to receive(:save!).and_raise(ActiveRecord::RecordInvalid) expect(Rails.logger).to receive(:error).with("Organisation merge failed with: Record invalid") - merge_organisations_service.call + expect { merge_organisations_service.call }.to raise_error(ActiveRecord::RecordInvalid) new_absorbing_organisation.reload expect(new_absorbing_organisation.sales_logs.count).to eq(0) @@ -1423,7 +1423,7 @@ RSpec.describe Merge::MergeOrganisationsService do allow(Organisation).to receive(:find).with(new_absorbing_organisation.id).and_return(new_absorbing_organisation) allow(new_absorbing_organisation).to receive(:save!).and_raise(ActiveRecord::RecordInvalid) expect(Rails.logger).to receive(:error).with("Organisation merge failed with: Record invalid") - merge_organisations_service.call + expect { merge_organisations_service.call }.to raise_error(ActiveRecord::RecordInvalid) new_absorbing_organisation.reload expect(new_absorbing_organisation.sales_logs.count).to eq(0) @@ -1459,7 +1459,7 @@ RSpec.describe Merge::MergeOrganisationsService do allow(Organisation).to receive(:find).with(new_absorbing_organisation.id).and_return(new_absorbing_organisation) allow(new_absorbing_organisation).to receive(:save!).and_raise(ActiveRecord::RecordInvalid) expect(Rails.logger).to receive(:error).with("Organisation merge failed with: Record invalid") - merge_organisations_service.call + expect { merge_organisations_service.call }.to raise_error(ActiveRecord::RecordInvalid) new_absorbing_organisation.reload expect(new_absorbing_organisation.lettings_logs.count).to eq(0) @@ -1565,7 +1565,7 @@ RSpec.describe Merge::MergeOrganisationsService do allow(Organisation).to receive(:find).with(new_absorbing_organisation.id).and_return(new_absorbing_organisation) allow(new_absorbing_organisation).to receive(:save!).and_raise(ActiveRecord::RecordInvalid) expect(Rails.logger).to receive(:error).with("Organisation merge failed with: Record invalid") - merge_organisations_service.call + expect { merge_organisations_service.call }.to raise_error(ActiveRecord::RecordInvalid) new_absorbing_organisation.reload merging_organisation.reload @@ -1655,7 +1655,7 @@ RSpec.describe Merge::MergeOrganisationsService do allow(Organisation).to receive(:find).with(new_absorbing_organisation.id).and_return(new_absorbing_organisation) allow(new_absorbing_organisation).to receive(:save!).and_raise(ActiveRecord::RecordInvalid) expect(Rails.logger).to receive(:error).with("Organisation merge failed with: Record invalid") - merge_organisations_service.call + expect { merge_organisations_service.call }.to raise_error(ActiveRecord::RecordInvalid) new_absorbing_organisation.reload merging_organisation.reload @@ -1697,7 +1697,7 @@ RSpec.describe Merge::MergeOrganisationsService do allow(Organisation).to receive(:find).with(new_absorbing_organisation.id).and_return(new_absorbing_organisation) allow(new_absorbing_organisation).to receive(:save!).and_raise(ActiveRecord::RecordInvalid) expect(Rails.logger).to receive(:error).with("Organisation merge failed with: Record invalid") - merge_organisations_service.call + expect { merge_organisations_service.call }.to raise_error(ActiveRecord::RecordInvalid) new_absorbing_organisation.reload merging_organisation.reload