Browse Source

Add method to generate random dates within collection year for logs

pull/3029/head
Manny Dinssa 1 month ago
parent
commit
615e7f17d9
  1. 6
      app/helpers/collection_time_helper.rb
  2. 12
      spec/helpers/merge_requests_helper_spec.rb
  3. 12
      spec/models/sales_log_spec.rb

6
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

12
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

12
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

Loading…
Cancel
Save