diff --git a/spec/models/validations/date_validations_spec.rb b/spec/models/validations/date_validations_spec.rb index 59fc94f12..735c749b1 100644 --- a/spec/models/validations/date_validations_spec.rb +++ b/spec/models/validations/date_validations_spec.rb @@ -18,7 +18,7 @@ RSpec.describe Validations::DateValidations do end it "does not raise an error when valid" do - record.startdate = Time.zone.local(2022, 1, 1) + record.startdate = current_collection_start_date + 1.month date_validator.validate_startdate(record) expect(record.errors["startdate"]).to be_empty end @@ -40,8 +40,8 @@ RSpec.describe Validations::DateValidations do describe "major repairs date" do it "cannot be after the tenancy start date" do - record.startdate = Time.zone.local(2022, 1, 1) - record.mrcdate = Time.zone.local(2022, 2, 1) + record.startdate = current_collection_start_date + 1.month + record.mrcdate = current_collection_start_date + 2.months date_validator.validate_property_major_repairs(record) expect(record.errors["mrcdate"]) .to include(match I18n.t("validations.lettings.date.mrcdate.before_tenancy_start")) @@ -50,8 +50,8 @@ RSpec.describe Validations::DateValidations do end it "must be before the tenancy start date" do - record.startdate = Time.zone.local(2022, 2, 1) - record.mrcdate = Time.zone.local(2022, 1, 1) + record.startdate = current_collection_start_date + 2.months + record.mrcdate = current_collection_start_date + 1.month date_validator.validate_property_major_repairs(record) expect(record.errors["mrcdate"]).to be_empty end @@ -77,7 +77,7 @@ RSpec.describe Validations::DateValidations do context "when reason for vacancy is first let of property" do it "validates that no major repair date is provided for a new build" do record.rsnvac = 15 - record.mrcdate = Time.zone.local(2022, 1, 1) + record.mrcdate = current_collection_start_date + 1.month date_validator.validate_property_major_repairs(record) expect(record.errors["mrcdate"]) .to include(match I18n.t("validations.lettings.date.mrcdate.not_first_let")) @@ -85,7 +85,7 @@ RSpec.describe Validations::DateValidations do it "validates that no major repair date is provided for a conversion" do record.rsnvac = 16 - record.mrcdate = Time.zone.local(2022, 1, 1) + record.mrcdate = current_collection_start_date + 1.month date_validator.validate_property_major_repairs(record) expect(record.errors["mrcdate"]) .to include(match I18n.t("validations.lettings.date.mrcdate.not_first_let")) @@ -93,7 +93,7 @@ RSpec.describe Validations::DateValidations do it "validates that no major repair date is provided for a leased property" do record.rsnvac = 17 - record.mrcdate = Time.zone.local(2022, 1, 1) + record.mrcdate = current_collection_start_date + 1.month date_validator.validate_property_major_repairs(record) expect(record.errors["mrcdate"]) .to include(match I18n.t("validations.lettings.date.mrcdate.not_first_let")) @@ -103,7 +103,7 @@ RSpec.describe Validations::DateValidations do context "when the reason for vacancy is not the first let of property" do it "expects that major repairs can have been done" do record.rsnvac = "Tenant moved to care home" - record.mrcdate = Time.zone.local(2022, 1, 1) + record.mrcdate = current_collection_start_date + 1.month date_validator.validate_property_major_repairs(record) expect(record.errors["mrcdate"]).to be_empty end @@ -112,8 +112,8 @@ RSpec.describe Validations::DateValidations do describe "property void date" do it "cannot be after the tenancy start date" do - record.startdate = Time.zone.local(2022, 1, 1) - record.voiddate = Time.zone.local(2022, 2, 1) + record.startdate = current_collection_start_date + 1.month + record.voiddate = current_collection_start_date + 2.months date_validator.validate_property_void_date(record) expect(record.errors["voiddate"]) .to include(match I18n.t("validations.lettings.date.void_date.before_tenancy_start")) @@ -122,8 +122,8 @@ RSpec.describe Validations::DateValidations do end it "must be before the tenancy start date" do - record.startdate = Time.zone.local(2022, 2, 1) - record.voiddate = Time.zone.local(2022, 1, 1) + record.startdate = current_collection_start_date + 2.months + record.voiddate = current_collection_start_date + 1.month date_validator.validate_property_void_date(record) expect(record.errors["voiddate"]).to be_empty end @@ -149,8 +149,8 @@ RSpec.describe Validations::DateValidations do context "when major repairs have been carried out" do it "void_date cannot be after major repairs date" do - record.mrcdate = Time.zone.local(2022, 1, 1) - record.voiddate = Time.zone.local(2022, 2, 1) + record.mrcdate = current_collection_start_date + 1.month + record.voiddate = current_collection_start_date + 2.months date_validator.validate_property_void_date(record) expect(record.errors["voiddate"]) .to include(match I18n.t("validations.lettings.date.void_date.after_mrcdate")) @@ -159,8 +159,8 @@ RSpec.describe Validations::DateValidations do end it "must be before major repairs date" do - record.mrcdate = Time.zone.local(2022, 2, 1) - record.voiddate = Time.zone.local(2022, 1, 1) + record.mrcdate = current_collection_start_date + 2.months + record.voiddate = current_collection_start_date + 1.month date_validator.validate_property_void_date(record) expect(record.errors["voiddate"]).to be_empty end diff --git a/spec/models/validations/financial_validations_spec.rb b/spec/models/validations/financial_validations_spec.rb index 14e2dfd0c..b0384451b 100644 --- a/spec/models/validations/financial_validations_spec.rb +++ b/spec/models/validations/financial_validations_spec.rb @@ -1,15 +1,12 @@ require "rails_helper" RSpec.describe Validations::FinancialValidations do + include CollectionTimeHelper + subject(:financial_validator) { validator_class.new } let(:validator_class) { Class.new { include Validations::FinancialValidations } } let(:record) { FactoryBot.create(:lettings_log) } - let(:fake_2021_2022_form) { Form.new("spec/fixtures/forms/2021_2022.json") } - - before do - allow(FormHandler.instance).to receive(:current_lettings_form).and_return(fake_2021_2022_form) - end describe "earnings and income frequency" do it "when earnings are provided it validates that income frequency must be provided" do @@ -203,7 +200,7 @@ RSpec.describe Validations::FinancialValidations do end describe "housing benefit rent shortfall validations" do - before { record.startdate = Time.zone.local(2022, 5, 1) } + before { record.startdate = current_collection_start_date } context "when shortfall is yes" do it "validates that housing benefit is not none" do @@ -233,7 +230,7 @@ RSpec.describe Validations::FinancialValidations do describe "net income validations" do it "validates that the net income is within the expected range for the household’s employment status" do - record.startdate = Time.zone.local(2023, 5, 1) + record.startdate = current_collection_start_date record.earnings = 200 record.incfreq = 1 record.hhmemb = 1 @@ -244,7 +241,7 @@ RSpec.describe Validations::FinancialValidations do context "when the net income is higher than the hard max for their employment status" do it "adds an error" do - record.startdate = Time.zone.local(2023, 5, 1) + record.startdate = current_collection_start_date record.earnings = 5000 record.incfreq = 1 record.hhmemb = 1 @@ -261,7 +258,7 @@ RSpec.describe Validations::FinancialValidations do context "when the net income is lower than the hard min for their employment status" do it "adds an error" do - record.startdate = Time.zone.local(2023, 5, 1) + record.startdate = current_collection_start_date record.earnings = 50 record.incfreq = 1 record.hhmemb = 1 @@ -278,7 +275,7 @@ RSpec.describe Validations::FinancialValidations do context "when there is more than one household member" do it "allows income levels based on all working situations combined" do - record.startdate = Time.zone.local(2023, 5, 1) + record.startdate = current_collection_start_date record.earnings = 5000 record.incfreq = 1 record.hhmemb = 4 @@ -291,7 +288,7 @@ RSpec.describe Validations::FinancialValidations do end it "uses the combined value in error messages" do - record.startdate = Time.zone.local(2023, 5, 1) + record.startdate = current_collection_start_date record.earnings = 100 record.incfreq = 1 record.hhmemb = 3 @@ -304,7 +301,7 @@ RSpec.describe Validations::FinancialValidations do end it "adds errors to relevant fields for each tenant when income is too high" do - record.startdate = Time.zone.local(2023, 5, 1) + record.startdate = current_collection_start_date record.earnings = 5000 record.incfreq = 1 record.hhmemb = 3 @@ -328,7 +325,7 @@ RSpec.describe Validations::FinancialValidations do end it "adds errors to relevant fields for each tenant when income is too low" do - record.startdate = Time.zone.local(2023, 5, 1) + record.startdate = current_collection_start_date record.earnings = 50 record.incfreq = 1 record.hhmemb = 3 @@ -996,7 +993,7 @@ RSpec.describe Validations::FinancialValidations do soft_max: 89.54, hard_min: 9.87, hard_max: 100.99, - start_year: 2021, + start_year: current_collection_start_year, ) LaRentRange.create!( ranges_rent_id: "2", @@ -1007,7 +1004,7 @@ RSpec.describe Validations::FinancialValidations do soft_max: 89.54, hard_min: 9.87, hard_max: 100.99, - start_year: 2021, + start_year: current_collection_start_year, ) end @@ -1017,7 +1014,7 @@ RSpec.describe Validations::FinancialValidations do record.period = 1 record.la = "E07000223" record.beds = 4 - record.startdate = Time.zone.local(2021, 9, 17) + record.startdate = current_collection_start_date record.brent = 9.17 financial_validator.validate_rent_amount(record) @@ -1030,7 +1027,7 @@ RSpec.describe Validations::FinancialValidations do record.lettype = 2 record.period = 1 record.location = location - record.startdate = Time.zone.local(2021, 9, 17) + record.startdate = current_collection_start_date record.brent = 9.17 financial_validator.validate_rent_amount(record) @@ -1049,7 +1046,7 @@ RSpec.describe Validations::FinancialValidations do record.period = 1 record.la = "E07000223" record.beds = 4 - record.startdate = Time.zone.local(2021, 9, 17) + record.startdate = current_collection_start_date record.brent = 200 financial_validator.validate_rent_amount(record) @@ -1067,7 +1064,7 @@ RSpec.describe Validations::FinancialValidations do record.lettype = 2 record.period = 1 record.location = location - record.startdate = Time.zone.local(2021, 9, 17) + record.startdate = current_collection_start_date record.brent = 200 financial_validator.validate_rent_amount(record) @@ -1084,7 +1081,7 @@ RSpec.describe Validations::FinancialValidations do record.lettype = 1 record.period = 1 record.la = "E07000223" - record.startdate = Time.zone.local(2022, 2, 5) + record.startdate = current_collection_start_date record.beds = 4 record.brent = 200 @@ -1100,7 +1097,7 @@ RSpec.describe Validations::FinancialValidations do it "does not error if some of the fields are missing" do record.managing_organisation.provider_type = 2 - record.startdate = Time.zone.local(2021, 9, 17) + record.startdate = current_collection_start_date record.brent = 200 financial_validator.validate_rent_amount(record) diff --git a/spec/models/validations/household_validations_spec.rb b/spec/models/validations/household_validations_spec.rb index 9848afd67..80c164891 100644 --- a/spec/models/validations/household_validations_spec.rb +++ b/spec/models/validations/household_validations_spec.rb @@ -53,7 +53,7 @@ RSpec.describe Validations::HouseholdValidations do end context "when form year is >= 2024" do - let(:startdate) { Time.zone.local(2024, 4, 1) } + let(:startdate) { current_collection_start_date } context "when checking the content of reasonother" do it "validates that the reason doesn't match phrase indicating homelessness" do @@ -271,7 +271,7 @@ RSpec.describe Validations::HouseholdValidations do describe "#validate_person_age_matches_relationship" do context "with 2024 logs" do - let(:startdate) { Time.zone.local(2024, 4, 1) } + let(:startdate) { current_collection_start_date } it "does not add an error is person under 16 is a partner" do record.age2 = 14 @@ -293,7 +293,7 @@ RSpec.describe Validations::HouseholdValidations do describe "#validate_person_age_matches_economic_status" do context "with 2024 logs" do - let(:startdate) { Time.zone.local(2024, 4, 1) } + let(:startdate) { current_collection_start_date } it "does not run the validation" do record.age2 = 14 @@ -309,7 +309,7 @@ RSpec.describe Validations::HouseholdValidations do describe "#validate_person_age_and_relationship_matches_economic_status" do context "with 2024 logs" do - let(:startdate) { Time.zone.local(2024, 4, 1) } + let(:startdate) { current_collection_start_date } context "when the household contains a tenant’s child between the ages of 16 and 19" do it "does not add an error" do diff --git a/spec/models/validations/sales/sale_information_validations_spec.rb b/spec/models/validations/sales/sale_information_validations_spec.rb index 8d4eb4cea..f76674423 100644 --- a/spec/models/validations/sales/sale_information_validations_spec.rb +++ b/spec/models/validations/sales/sale_information_validations_spec.rb @@ -815,18 +815,6 @@ RSpec.describe Validations::Sales::SaleInformationValidations do end end - context "with a 2024 log that is not an outright sale" do - let(:record) { FactoryBot.build(:sales_log, value: 300_000, ownershipsch: 2, saledate: Time.zone.local(2024, 5, 1)) } - - it "does not add errors" do - record.mortgageused = 1 - record.mortgage = 100_000 - record.deposit = 100_000 - sale_information_validator.validate_outright_sale_value_matches_mortgage_plus_deposit(record) - expect(record.errors).to be_empty - end - end - describe "#validate_basic_monthly_rent" do context "when within permitted bounds" do let(:record) { build(:sales_log, mrent: 9998, ownershipsch: 1, type: 2) } diff --git a/spec/models/validations/soft_validations_spec.rb b/spec/models/validations/soft_validations_spec.rb index 4b0ac6711..b186277bd 100644 --- a/spec/models/validations/soft_validations_spec.rb +++ b/spec/models/validations/soft_validations_spec.rb @@ -18,7 +18,7 @@ RSpec.describe Validations::SoftValidations do soft_max: 89.54, hard_min: 9.87, hard_max: 100.99, - start_year: 2021, + start_year: current_collection_start_year, ) record.la = "E07000223" @@ -26,7 +26,7 @@ RSpec.describe Validations::SoftValidations do record.rent_type = 0 record.beds = 1 record.period = 1 - record.startdate = Time.zone.local(2021, 10, 10) + record.startdate = current_collection_start_date end context "when validating soft min" do @@ -504,16 +504,16 @@ RSpec.describe Validations::SoftValidations do describe "major repairs date soft validations" do context "when the major repairs date is within 10 years of the tenancy start date" do it "shows the interruption screen" do - record.startdate = Time.zone.local(2022, 2, 1) - record.mrcdate = Time.zone.local(2013, 2, 1) + record.startdate = current_collection_start_date + record.mrcdate = current_collection_start_date- 9.years expect(record.major_repairs_date_in_soft_range?).to be true end end context "when the major repairs date is less than 2 years before the tenancy start date" do it "does not show the interruption screen" do - record.startdate = Time.zone.local(2022, 2, 1) - record.mrcdate = Time.zone.local(2021, 2, 1) + record.startdate = current_collection_start_date + record.mrcdate = current_collection_start_date- 1.year expect(record.major_repairs_date_in_soft_range?).to be false end end @@ -540,16 +540,16 @@ RSpec.describe Validations::SoftValidations do describe "void date soft validations" do context "when the void date is within 10 years of the tenancy start date" do it "shows the interruption screen" do - record.startdate = Time.zone.local(2022, 2, 1) - record.voiddate = Time.zone.local(2013, 2, 1) + record.startdate = current_collection_start_date + record.voiddate = current_collection_start_date - 9.years expect(record.voiddate_in_soft_range?).to be true end end context "when the void date is less than 2 years before the tenancy start date" do it "does not show the interruption screen" do - record.startdate = Time.zone.local(2022, 2, 1) - record.voiddate = Time.zone.local(2021, 2, 1) + record.startdate = current_collection_start_date + record.voiddate = current_collection_start_date - 1.year expect(record.voiddate_in_soft_range?).to be false end end