diff --git a/app/models/lettings_log.rb b/app/models/lettings_log.rb index 51dc6ff4d..cba85320a 100644 --- a/app/models/lettings_log.rb +++ b/app/models/lettings_log.rb @@ -659,7 +659,7 @@ private not_required << "tshortfall" if tshortfall_unknown? not_required << "tenancylength" if tenancylength_optional? - not_required |= %w[address_line2 county postcode_full] if startdate && startdate.year >= 2023 + not_required |= %w[address_line2 county postcode_full] if startdate && collection_start_year_for_date(startdate) >= 2023 not_required end @@ -780,6 +780,6 @@ private end def should_process_uprn_change? - uprn && startdate && (uprn_changed? || startdate_changed?) && startdate.year >= 2023 + uprn && startdate && (uprn_changed? || startdate_changed?) && collection_start_year_for_date(startdate) >= 2023 end end diff --git a/app/models/sales_log.rb b/app/models/sales_log.rb index 905b7d5a1..bf059cc88 100644 --- a/app/models/sales_log.rb +++ b/app/models/sales_log.rb @@ -115,7 +115,7 @@ class SalesLog < Log not_required << "mortlen" if mortlen_optional? not_required << "frombeds" if frombeds_optional? - not_required |= %w[address_line2 county postcode_full] if saledate && saledate.year >= 2023 + not_required |= %w[address_line2 county postcode_full] if saledate && collection_start_year_for_date(saledate) >= 2023 not_required end @@ -393,7 +393,7 @@ class SalesLog < Log end def should_process_uprn_change? - uprn && saledate && (uprn_changed? || saledate_changed?) && saledate.year >= 2023 + uprn && saledate && (uprn_changed? || saledate_changed?) && collection_start_year_for_date(saledate) >= 2023 end def value_with_discount diff --git a/spec/models/lettings_log_spec.rb b/spec/models/lettings_log_spec.rb index 6c4d9b1e0..145155ee2 100644 --- a/spec/models/lettings_log_spec.rb +++ b/spec/models/lettings_log_spec.rb @@ -1576,7 +1576,7 @@ RSpec.describe LettingsLog do expect { lettings_log.update!(renewal: 1) }.to change(lettings_log, :underoccupation_benefitcap).to 2 Timecop.return Singleton.__init__(FormHandler) - expect { lettings_log.update!(startdate: Time.zone.local(2023, 1, 1)) }.to change(lettings_log, :underoccupation_benefitcap).from(2).to nil + expect { lettings_log.update!(startdate: Time.zone.local(2023, 4, 1)) }.to change(lettings_log, :underoccupation_benefitcap).from(2).to nil end context "when the log is general needs" do @@ -2122,10 +2122,15 @@ RSpec.describe LettingsLog do context "and the location no local authorities associated with the location_code" do before do + Timecop.freeze(Time.zone.local(2022, 4, 2)) location.update!(location_code: "E01231231") lettings_log.update!(location:) end + after do + Timecop.return + end + it "returns the correct la" do expect(location.location_code).to eq("E01231231") expect(lettings_log["location_id"]).to eq(location.id) @@ -2334,7 +2339,7 @@ RSpec.describe LettingsLog do end end - context "when saledate is before 2023" do + context "when startdate is before 2023" do let(:lettings_log) { build(:lettings_log, startdate: Time.zone.parse("2022-07-01")) } it "returns optional fields" do @@ -2347,7 +2352,7 @@ RSpec.describe LettingsLog do end end - context "when saledate is after 2023" do + context "when startdate is after 2023" do let(:lettings_log) { build(:lettings_log, startdate: Time.zone.parse("2023-07-01")) } it "returns optional fields" do diff --git a/spec/requests/form_controller_spec.rb b/spec/requests/form_controller_spec.rb index 5f0e7b273..fbe3dbb1d 100644 --- a/spec/requests/form_controller_spec.rb +++ b/spec/requests/form_controller_spec.rb @@ -254,6 +254,15 @@ RSpec.describe FormController, type: :request do end describe "GET" do + around do |example| + Timecop.freeze(Time.zone.local(2022, 5, 1)) do + Singleton.__init__(FormHandler) + example.run + end + Timecop.return + Singleton.__init__(FormHandler) + end + context "with form pages" do context "when forms exist" do let(:lettings_log) { create(:lettings_log, :setup_completed, startdate: Time.zone.local(2022, 5, 1), owning_organisation: organisation, created_by: user) } diff --git a/spec/services/bulk_upload/lettings/log_creator_spec.rb b/spec/services/bulk_upload/lettings/log_creator_spec.rb index 6dfaff46c..c240caef8 100644 --- a/spec/services/bulk_upload/lettings/log_creator_spec.rb +++ b/spec/services/bulk_upload/lettings/log_creator_spec.rb @@ -9,6 +9,13 @@ RSpec.describe BulkUpload::Lettings::LogCreator do let(:bulk_upload) { create(:bulk_upload, :lettings, user:) } let(:path) { file_fixture("2022_23_lettings_bulk_upload.csv") } + around do |example| + Timecop.freeze(Time.zone.local(2023, 1, 1)) do + Singleton.__init__(FormHandler) + example.run + end + end + describe "#call" do context "when a valid csv with new log" do it "creates a new log" do diff --git a/spec/services/bulk_upload/lettings/year2022/row_parser_spec.rb b/spec/services/bulk_upload/lettings/year2022/row_parser_spec.rb index 02a8addd2..9fdfab47d 100644 --- a/spec/services/bulk_upload/lettings/year2022/row_parser_spec.rb +++ b/spec/services/bulk_upload/lettings/year2022/row_parser_spec.rb @@ -152,17 +152,13 @@ RSpec.describe BulkUpload::Lettings::Year2022::RowParser do create(:organisation_relationship, parent_organisation: owning_org, child_organisation: managing_org) end - around do |example| - FormHandler.instance.use_real_forms! - - example.run - - FormHandler.instance.use_fake_forms! - end - around do |example| Timecop.freeze(Date.new(2023, 3, 1)) do + FormHandler.instance.use_real_forms! + example.run + + FormHandler.instance.use_fake_forms! end Timecop.return end diff --git a/spec/services/bulk_upload/processor_spec.rb b/spec/services/bulk_upload/processor_spec.rb index 9f287c592..c79599656 100644 --- a/spec/services/bulk_upload/processor_spec.rb +++ b/spec/services/bulk_upload/processor_spec.rb @@ -7,6 +7,13 @@ RSpec.describe BulkUpload::Processor do let(:user) { create(:user, organisation: owning_org) } let(:owning_org) { create(:organisation, old_visible_id: 123) } + around do |example| + Timecop.freeze(Time.utc(2023, 1, 1)) do + Singleton.__init__(FormHandler) + example.run + end + end + describe "#call" do context "when errors exist from prior job run" do let!(:existing_error) { create(:bulk_upload_error, bulk_upload:) } diff --git a/spec/services/bulk_upload/sales/year2023/row_parser_spec.rb b/spec/services/bulk_upload/sales/year2023/row_parser_spec.rb index 2e38e4f2c..0745274fc 100644 --- a/spec/services/bulk_upload/sales/year2023/row_parser_spec.rb +++ b/spec/services/bulk_upload/sales/year2023/row_parser_spec.rb @@ -3,7 +3,7 @@ require "rails_helper" RSpec.describe BulkUpload::Sales::Year2023::RowParser do subject(:parser) { described_class.new(attributes) } - let(:now) { Time.zone.parse("01/03/2023") } + let(:now) { Time.zone.parse("01/05/2023") } let(:attributes) { { bulk_upload: } } let(:bulk_upload) { create(:bulk_upload, :sales, user:, year: 2023) } @@ -760,7 +760,7 @@ RSpec.describe BulkUpload::Sales::Year2023::RowParser do let(:attributes) { setup_section_params.merge({ field_19: "3", data[:field] => nil }) } it "cannot be blank" do - expect(parser.errors[data[:field]]).not_to be_blank + expect(parser.errors[data[:field]]).to be_present end end end