diff --git a/app/models/validations/property_validations.rb b/app/models/validations/property_validations.rb index e11632544..d520b6dae 100644 --- a/app/models/validations/property_validations.rb +++ b/app/models/validations/property_validations.rb @@ -13,4 +13,10 @@ module Validations::PropertyValidations record.errors.add :la, "Local authority has to be in London" end end + + def validate_unitletas(record) + if record.unitletas.present? && (record.rsnvac == "First let of newbuild property" || record.rsnvac == "First let of conversion/rehabilitation/acquired property" || record.rsnvac == "First let of leased property") + record.errors.add :unitletas, "Can not be completed if it is the first let of the property" + end + end end diff --git a/spec/features/form/validations_spec.rb b/spec/features/form/validations_spec.rb index 4aa72e261..4a78c4cf5 100644 --- a/spec/features/form/validations_spec.rb +++ b/spec/features/form/validations_spec.rb @@ -162,4 +162,19 @@ RSpec.describe "validations" do end end end + + describe "Property Validations" do + context "first let of property and reason for vacancy completed" do + let(:rsnvac) { "First let of newbuild property" } + let(:rsnvac1) { "First let of conversion/rehabilitation/acquired property" } + let(:rsnvac2) { "First let of leased property" } + let(:unitletas) { "Social rent basis" } + + it "throws a validation error", js: true do + expect { case_log.update!(rsnvac: rsnvac, unitletas: unitletas) }.to raise_error(ActiveRecord::RecordInvalid) + expect { case_log.update!(rsnvac: rsnvac1, unitletas: unitletas) }.to raise_error(ActiveRecord::RecordInvalid) + expect { case_log.update!(rsnvac: rsnvac2, unitletas: unitletas) }.to raise_error(ActiveRecord::RecordInvalid) + end + end + end end