Browse Source

Validate periodic tenancy length

pull/2214/head
Kat 2 years ago
parent
commit
926a4cc068
  1. 9
      app/models/validations/tenancy_validations.rb
  2. 47
      spec/models/validations/tenancy_validations_spec.rb

9
app/models/validations/tenancy_validations.rb

@ -21,6 +21,13 @@ module Validations::TenancyValidations
min_tenancy_length: min_tenancy_length(record),
),
},
{
condition: (record.is_periodic_tenancy? && !is_in_range) && is_present,
error: I18n.t(
"validations.tenancy.length.secure",
min_tenancy_length: min_tenancy_length(record),
),
},
]
rent_type_independent_conditions = [
{
@ -54,6 +61,6 @@ module Validations::TenancyValidations
end
def min_tenancy_length(record)
record.is_supported_housing? || record.renttype == 3 ? 1 : 2
record.is_supported_housing? || record.renttype == 3 || record.is_periodic_tenancy? ? 1 : 2
end
end

47
spec/models/validations/tenancy_validations_spec.rb

@ -232,6 +232,53 @@ RSpec.describe Validations::TenancyValidations do
end
end
end
context "when type of tenancy is periodic" do
let(:expected_error) do
I18n.t(
"validations.tenancy.length.secure",
min_tenancy_length: 1,
)
end
before { record.tenancy = 8 }
context "when tenancy length is less than 1" do
it "adds an error" do
record.tenancylength = 0
tenancy_validator.validate_fixed_term_tenancy(record)
expect(record.errors["needstype"]).to include(match(expected_error))
expect(record.errors["tenancylength"]).to include(match(expected_error))
expect(record.errors["tenancy"]).to include(match(expected_error))
end
end
context "when tenancy length is greater than 99" do
it "adds an error" do
record.tenancylength = 100
tenancy_validator.validate_fixed_term_tenancy(record)
expect(record.errors["needstype"]).to include(match(expected_error))
expect(record.errors["tenancylength"]).to include(match(expected_error))
expect(record.errors["tenancy"]).to include(match(expected_error))
end
end
context "when tenancy length is between 2-99" do
it "does not add an error" do
record.tenancylength = 3
tenancy_validator.validate_fixed_term_tenancy(record)
expect(record.errors).to be_empty
end
end
context "when tenancy length has not been answered" do
it "does not add an error" do
record.tenancylength = nil
tenancy_validator.validate_fixed_term_tenancy(record)
expect(record.errors).to be_empty
end
end
end
end
end
end

Loading…
Cancel
Save