diff --git a/app/helpers/collection_time_helper.rb b/app/helpers/collection_time_helper.rb index acd56378b..5b356772f 100644 --- a/app/helpers/collection_time_helper.rb +++ b/app/helpers/collection_time_helper.rb @@ -53,4 +53,10 @@ module CollectionTimeHelper def archived_collection_start_year current_collection_start_year - 2 end + + def generate_different_date_within_collection_year(date, start_date_override = nil, end_date_override = nil) + start_date = start_date_override || collection_start_date(date).to_date + end_date = end_date_override || collection_end_date(date).to_date + ((start_date..end_date).to_a - [date.to_date]).sample + end end diff --git a/spec/helpers/merge_requests_helper_spec.rb b/spec/helpers/merge_requests_helper_spec.rb index db0598489..8b36a2f70 100644 --- a/spec/helpers/merge_requests_helper_spec.rb +++ b/spec/helpers/merge_requests_helper_spec.rb @@ -1,6 +1,8 @@ require "rails_helper" RSpec.describe MergeRequestsHelper do + include CollectionTimeHelper + describe "#merging_organisations_without_users_text" do context "with 1 organisation" do let(:organisation) { build(:organisation, name: "Org 1") } @@ -163,7 +165,7 @@ RSpec.describe MergeRequestsHelper do let(:organisation) { create(:organisation, name: "Org 1") } let(:merging_organisation) { create(:organisation, name: "Org 2") } let(:merging_organisation_2) { create(:organisation, name: "Org 3") } - let(:merge_request) { create(:merge_request, absorbing_organisation: organisation, merge_date: Time.zone.today) } + let(:merge_request) { create(:merge_request, absorbing_organisation: organisation, merge_date: Time.zone.today - 2.days) } before do create(:merge_request_organisation, merge_request:, merging_organisation:) @@ -198,10 +200,10 @@ RSpec.describe MergeRequestsHelper do context "when merging organisations have logs" do before do create(:lettings_log, owning_organisation: organisation) - create(:lettings_log, owning_organisation: merging_organisation, startdate: Time.zone.tomorrow) + create(:lettings_log, owning_organisation: merging_organisation, startdate: generate_different_date_within_collection_year(Time.zone.yesterday, Time.zone.today - 2.days)) create(:lettings_log, owning_organisation: merging_organisation, startdate: Time.zone.yesterday) create(:sales_log, owning_organisation: organisation) - create(:sales_log, owning_organisation: merging_organisation, saledate: Time.zone.tomorrow) + create(:sales_log, owning_organisation: merging_organisation, saledate: generate_different_date_within_collection_year(Time.zone.yesterday, Time.zone.today - 2.days)) create(:sales_log, owning_organisation: merging_organisation, saledate: Time.zone.yesterday) end @@ -235,8 +237,8 @@ RSpec.describe MergeRequestsHelper do before do create(:organisation_relationship, parent_organisation: merging_organisation_2, child_organisation: merging_organisation) create(:merge_request_organisation, merge_request:, merging_organisation: merging_organisation_2) - create(:lettings_log, assigned_to: merging_organisation_2.users.first, owning_organisation: merging_organisation_2, managing_organisation: merging_organisation, startdate: Time.zone.yesterday) - create(:sales_log, assigned_to: merging_organisation_2.users.first, owning_organisation: merging_organisation_2, managing_organisation: merging_organisation, saledate: Time.zone.yesterday) + create(:lettings_log, assigned_to: merging_organisation_2.users.first, owning_organisation: merging_organisation_2, managing_organisation: merging_organisation, startdate: generate_different_date_within_collection_year(Time.zone.yesterday, Time.zone.today - 2.days)) + create(:sales_log, assigned_to: merging_organisation_2.users.first, owning_organisation: merging_organisation_2, managing_organisation: merging_organisation, saledate: generate_different_date_within_collection_year(Time.zone.yesterday, Time.zone.today - 2.days)) end it "returns the correct merging_organisations_lettings_logs_outcomes_text text" do diff --git a/spec/models/sales_log_spec.rb b/spec/models/sales_log_spec.rb index 442febddb..8fe540efe 100644 --- a/spec/models/sales_log_spec.rb +++ b/spec/models/sales_log_spec.rb @@ -3,6 +3,8 @@ require "shared/shared_log_examples" # rubocop:disable RSpec/MessageChain RSpec.describe SalesLog, type: :model do + include CollectionTimeHelper + let(:owning_organisation) { create(:organisation) } let(:assigned_to_user) { create(:user) } @@ -250,7 +252,7 @@ RSpec.describe SalesLog, type: :model do end context "when there is a log with a different sale date" do - let!(:different_sale_date_log) { create(:sales_log, :duplicate, saledate: Time.zone.tomorrow, owning_organisation: organisation) } + let!(:different_sale_date_log) { create(:sales_log, :duplicate, saledate: generate_different_date_within_collection_year(Time.zone.now), owning_organisation: organisation) } it "does not return a log with a different sale date as a duplicate" do expect(described_class.duplicate_logs(log)).not_to include(different_sale_date_log) @@ -376,7 +378,7 @@ RSpec.describe SalesLog, type: :model do context "when there is a log with a different sale date" do before do - create(:sales_log, :duplicate, saledate: Time.zone.tomorrow) + create(:sales_log, :duplicate, saledate: Time.zone.yesterday) end it "does not return a log with a different sale date as a duplicate" do @@ -1087,14 +1089,14 @@ RSpec.describe SalesLog, type: :model do let!(:sales_log) { create(:sales_log) } before do - LocalAuthority.find_by(code: "E08000003").update!(end_date: Time.zone.today) + LocalAuthority.find_by(code: "E08000003").update!(end_date: Time.zone.yesterday) end it "removes the LA" do - sales_log.update!(saledate: Time.zone.yesterday, la: "E08000003") + sales_log.update!(saledate: 2.days.ago, la: "E08000003") expect(sales_log.reload.la).to eq("E08000003") - sales_log.update!(saledate: Time.zone.tomorrow) + sales_log.update!(saledate: Time.zone.today) expect(sales_log.reload.la).to eq(nil) expect(sales_log.reload.is_la_inferred).to eq(false) end