From d31bebe623227873e2796fd97e7f26939308699e Mon Sep 17 00:00:00 2001 From: Kat Date: Mon, 24 Jul 2023 12:27:30 +0100 Subject: [PATCH] Refactor tests --- .../merge/merge_organisations_service_spec.rb | 72 +++++++++++-------- 1 file changed, 44 insertions(+), 28 deletions(-) diff --git a/spec/services/merge/merge_organisations_service_spec.rb b/spec/services/merge/merge_organisations_service_spec.rb index 480cfd657..bf323c33e 100644 --- a/spec/services/merge/merge_organisations_service_spec.rb +++ b/spec/services/merge/merge_organisations_service_spec.rb @@ -14,7 +14,6 @@ RSpec.describe Merge::MergeOrganisationsService do describe "#call" do context "when merging a single organisation into an existing organisation" do - let(:other_organisation) { create(:organisation) } let(:merging_organisation) do create(:organisation, holds_own_stock: true, @@ -25,30 +24,23 @@ RSpec.describe Merge::MergeOrganisationsService do let(:merging_organisation_ids) { [merging_organisation.id] } let!(:merging_organisation_user) { create(:user, organisation: merging_organisation) } - let!(:merging_organisation_relationship) { create(:organisation_relationship, parent_organisation: merging_organisation) } - let!(:absorbing_organisation_relationship) { create(:organisation_relationship, parent_organisation: absorbing_organisation) } - let!(:absorbing_and_merging_organisation_relationship) { create(:organisation_relationship, parent_organisation: absorbing_organisation, child_organisation: merging_organisation) } - let!(:duplicate_merging_organisation_relationship) { create(:organisation_relationship, parent_organisation: merging_organisation, child_organisation: other_organisation) } - let!(:duplicate_absorbing_organisation_relationship) { create(:organisation_relationship, parent_organisation: absorbing_organisation, child_organisation: other_organisation) } - - before do - OrganisationRentPeriod.create!(organisation: absorbing_organisation, rent_period: 1) - OrganisationRentPeriod.create!(organisation: absorbing_organisation, rent_period: 3) - OrganisationRentPeriod.create!(organisation: merging_organisation, rent_period: 1) - OrganisationRentPeriod.create!(organisation: merging_organisation, rent_period: 2) - merge_organisations_service.call - end it "moves the users from merging organisation to absorbing organisation" do + merge_organisations_service.call + merging_organisation_user.reload expect(merging_organisation_user.organisation).to eq(absorbing_organisation) end xit "sets merge date on merged organisation" do + merge_organisations_service.call + expect(merging_organisation.merge_date).to eq(Time.zone.today) end it "combines organisation data" do + merge_organisations_service.call + absorbing_organisation.reload expect(absorbing_organisation.holds_own_stock).to eq(true) expect(absorbing_organisation.choice_based_lettings).to eq(false) @@ -62,22 +54,46 @@ RSpec.describe Merge::MergeOrganisationsService do # expect(absorbing_organisation.unspecified_units).to eq(2) end - it "combines organisation rent periods" do - absorbing_organisation.reload - expect(absorbing_organisation.rent_periods.count).to eq(3) - expect(absorbing_organisation.rent_periods).to include(1) - expect(absorbing_organisation.rent_periods).to include(2) - expect(absorbing_organisation.rent_periods).to include(3) + context "and merging organisation rent periods" do + before do + OrganisationRentPeriod.create!(organisation: absorbing_organisation, rent_period: 1) + OrganisationRentPeriod.create!(organisation: absorbing_organisation, rent_period: 3) + OrganisationRentPeriod.create!(organisation: merging_organisation, rent_period: 1) + OrganisationRentPeriod.create!(organisation: merging_organisation, rent_period: 2) + merge_organisations_service.call + end + + it "combines organisation rent periods" do + absorbing_organisation.reload + expect(absorbing_organisation.rent_periods.count).to eq(3) + expect(absorbing_organisation.rent_periods).to include(1) + expect(absorbing_organisation.rent_periods).to include(2) + expect(absorbing_organisation.rent_periods).to include(3) + end end - it "combines organisation relationships" do - absorbing_organisation.reload - expect(absorbing_organisation.child_organisations).to include(other_organisation) - expect(absorbing_organisation.child_organisations).to include(absorbing_organisation_relationship.child_organisation) - expect(absorbing_organisation.child_organisations).to include(merging_organisation_relationship.child_organisation) - expect(absorbing_organisation.child_organisations).not_to include(merging_organisation) - expect(absorbing_organisation.parent_organisations.count).to eq(0) - expect(absorbing_organisation.child_organisations.count).to eq(3) + context "and merging organisation relationships" do + let(:other_organisation) { create(:organisation) } + let!(:merging_organisation_relationship) { create(:organisation_relationship, parent_organisation: merging_organisation) } + let!(:absorbing_organisation_relationship) { create(:organisation_relationship, parent_organisation: absorbing_organisation) } + + before do + create(:organisation_relationship, parent_organisation: absorbing_organisation, child_organisation: merging_organisation) + create(:organisation_relationship, parent_organisation: merging_organisation, child_organisation: other_organisation) + create(:organisation_relationship, parent_organisation: absorbing_organisation, child_organisation: other_organisation) + end + + it "combines organisation relationships" do + merge_organisations_service.call + + absorbing_organisation.reload + expect(absorbing_organisation.child_organisations).to include(other_organisation) + expect(absorbing_organisation.child_organisations).to include(absorbing_organisation_relationship.child_organisation) + expect(absorbing_organisation.child_organisations).to include(merging_organisation_relationship.child_organisation) + expect(absorbing_organisation.child_organisations).not_to include(merging_organisation) + expect(absorbing_organisation.parent_organisations.count).to eq(0) + expect(absorbing_organisation.child_organisations.count).to eq(3) + end end end end