Browse Source

Refactor tests

pull/1801/head
Kat 3 years ago
parent
commit
d31bebe623
  1. 42
      spec/services/merge/merge_organisations_service_spec.rb

42
spec/services/merge/merge_organisations_service_spec.rb

@ -14,7 +14,6 @@ RSpec.describe Merge::MergeOrganisationsService do
describe "#call" do describe "#call" do
context "when merging a single organisation into an existing organisation" do context "when merging a single organisation into an existing organisation" do
let(:other_organisation) { create(:organisation) }
let(:merging_organisation) do let(:merging_organisation) do
create(:organisation, create(:organisation,
holds_own_stock: true, holds_own_stock: true,
@ -25,30 +24,23 @@ RSpec.describe Merge::MergeOrganisationsService do
let(:merging_organisation_ids) { [merging_organisation.id] } let(:merging_organisation_ids) { [merging_organisation.id] }
let!(:merging_organisation_user) { create(:user, organisation: merging_organisation) } 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 it "moves the users from merging organisation to absorbing organisation" 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 merge_organisations_service.call
end
it "moves the users from merging organisation to absorbing organisation" do
merging_organisation_user.reload merging_organisation_user.reload
expect(merging_organisation_user.organisation).to eq(absorbing_organisation) expect(merging_organisation_user.organisation).to eq(absorbing_organisation)
end end
xit "sets merge date on merged organisation" do xit "sets merge date on merged organisation" do
merge_organisations_service.call
expect(merging_organisation.merge_date).to eq(Time.zone.today) expect(merging_organisation.merge_date).to eq(Time.zone.today)
end end
it "combines organisation data" do it "combines organisation data" do
merge_organisations_service.call
absorbing_organisation.reload absorbing_organisation.reload
expect(absorbing_organisation.holds_own_stock).to eq(true) expect(absorbing_organisation.holds_own_stock).to eq(true)
expect(absorbing_organisation.choice_based_lettings).to eq(false) expect(absorbing_organisation.choice_based_lettings).to eq(false)
@ -62,6 +54,15 @@ RSpec.describe Merge::MergeOrganisationsService do
# expect(absorbing_organisation.unspecified_units).to eq(2) # expect(absorbing_organisation.unspecified_units).to eq(2)
end end
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 it "combines organisation rent periods" do
absorbing_organisation.reload absorbing_organisation.reload
expect(absorbing_organisation.rent_periods.count).to eq(3) expect(absorbing_organisation.rent_periods.count).to eq(3)
@ -69,8 +70,22 @@ RSpec.describe Merge::MergeOrganisationsService do
expect(absorbing_organisation.rent_periods).to include(2) expect(absorbing_organisation.rent_periods).to include(2)
expect(absorbing_organisation.rent_periods).to include(3) expect(absorbing_organisation.rent_periods).to include(3)
end end
end
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 it "combines organisation relationships" do
merge_organisations_service.call
absorbing_organisation.reload absorbing_organisation.reload
expect(absorbing_organisation.child_organisations).to include(other_organisation) 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(absorbing_organisation_relationship.child_organisation)
@ -81,4 +96,5 @@ RSpec.describe Merge::MergeOrganisationsService do
end end
end end
end end
end
end end

Loading…
Cancel
Save