Browse Source

add supported housing scharge validation

pull/388/head
Kat 3 years ago
parent
commit
07d7caf058
  1. 7
      app/models/validations/financial_validations.rb
  2. 3
      config/locales/en.yml
  3. 66
      spec/models/validations/financial_validations_spec.rb

7
app/models/validations/financial_validations.rb

@ -65,9 +65,12 @@ module Validations::FinancialValidations
record.errors.add :tshortfall, I18n.t("validations.financial.tshortfall.more_than_rent")
end
if record.scharge.present? && record.this_landlord? && record.weekly_value(record.scharge).present? && !record.weekly_value(record.scharge).between?(0, 55)
if record.scharge.present? && record.this_landlord? && record.weekly_value(record.scharge).present?
if !record.weekly_value(record.scharge).between?(0, 55) && record.is_general_needs?
record.errors.add :scharge, I18n.t("validations.financial.rent.scharge.this_landlord.general_needs")
record.errors.add :landlord, I18n.t("validations.organisation.landlord.invalid_scharge")
elsif !record.weekly_value(record.scharge).between?(0, 280) && record.is_supported_housing?
record.errors.add :scharge, I18n.t("validations.financial.rent.scharge.this_landlord.supported_housing")
end
end
end
end

3
config/locales/en.yml

@ -94,7 +94,8 @@ en:
less_than_double_shortfall: "Answer must be more than double the shortfall in basic rent"
scharge:
this_landlord:
general_needs: "Service charge must be between 0 and 55 per week if the landlord is this landlord"
general_needs: "Service charge must be between 0 and 55 per week if the landlord is this landlord and it is a general needs letting"
supported_housing: "Service charge must be between 0 and 280 per week if the landlord is this landlord and it is a suported housing letting"
household:
reasonpref:

66
spec/models/validations/financial_validations_spec.rb

@ -201,7 +201,8 @@ RSpec.describe Validations::FinancialValidations do
end
end
context "when the landlord is this landlord and needstype is general needs" do
context "when the landlord is this landlord" do
context "when needstype is general needs" do
it "does not allow the scharge to be outside of 0 and 55 range per week when period is weekly" do
record.needstype = 1
record.landlord = 1
@ -262,5 +263,68 @@ RSpec.describe Validations::FinancialValidations do
.to be_empty
end
end
context "when needstype is supported housing" do
it "does not allow the scharge to be outside of 0 and 280 range per week when period is weekly" do
record.needstype = 0
record.landlord = 1
record.period = 1
record.scharge = 281
financial_validator.validate_rent_amount(record)
expect(record.errors["scharge"])
.to include(match I18n.t("validations.financial.rent.scharge.this_landlord.supported_housing"))
end
it "does allow the scharge to be between of 0 and 280 per week when period is weekly" do
record.needstype = 0
record.landlord = 1
record.period = 1
record.scharge = 280
financial_validator.validate_rent_amount(record)
expect(record.errors["scharge"])
.to be_empty
end
it "does not allow the scharge to be outside of 0 and 280 range per week when period is monthly" do
record.needstype = 0
record.landlord = 1
record.period = 4
record.scharge = 1225
financial_validator.validate_rent_amount(record)
expect(record.errors["scharge"])
.to include(match I18n.t("validations.financial.rent.scharge.this_landlord.supported_housing"))
end
it "does allow the scharge to be between of 0 and 280 per week when period is monthly" do
record.needstype = 0
record.landlord = 1
record.period = 4
record.scharge = 1200
financial_validator.validate_rent_amount(record)
expect(record.errors["scharge"])
.to be_empty
end
it "does not allow the scharge to be outside of 0 and 280 range per week when period is every 2 weeks" do
record.needstype = 0
record.landlord = 1
record.period = 2
record.scharge = 561
financial_validator.validate_rent_amount(record)
expect(record.errors["scharge"])
.to include(match I18n.t("validations.financial.rent.scharge.this_landlord.supported_housing"))
end
it "does allow the scharge to be between of 0 and 280 per week when period is every 2 weeks" do
record.needstype = 0
record.landlord = 1
record.period = 2
record.scharge = 559
financial_validator.validate_rent_amount(record)
expect(record.errors["scharge"])
.to be_empty
end
end
end
end
end

Loading…
Cancel
Save