Browse Source

Add scharge validation

pull/388/head
Kat 3 years ago
parent
commit
5c104d36d5
  1. 2
      app/models/case_log.rb
  2. 5
      app/models/validations/financial_validations.rb
  3. 3
      config/locales/en.yml
  4. 62
      spec/models/validations/financial_validations_spec.rb

2
app/models/case_log.rb

@ -266,6 +266,8 @@ class CaseLog < ApplicationRecord
def benefits_unknown? def benefits_unknown?
hb == 3 hb == 3
def this_landlord?
landlord == 1
end end
private private

5
app/models/validations/financial_validations.rb

@ -64,5 +64,10 @@ module Validations::FinancialValidations
record.errors.add :brent, I18n.t("validations.financial.rent.less_than_double_shortfall", tshortfall: record.tshortfall * 2) record.errors.add :brent, I18n.t("validations.financial.rent.less_than_double_shortfall", tshortfall: record.tshortfall * 2)
record.errors.add :tshortfall, I18n.t("validations.financial.tshortfall.more_than_rent") record.errors.add :tshortfall, I18n.t("validations.financial.tshortfall.more_than_rent")
end end
if record.scharge.present? && record.this_landlord? && record.weekly_value(record.scharge).present? && !record.weekly_value(record.scharge).between?(0, 55)
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")
end
end end
end end

3
config/locales/en.yml

@ -92,6 +92,9 @@ en:
negative_currency: "Enter an amount above 0" negative_currency: "Enter an amount above 0"
rent: rent:
less_than_double_shortfall: "Answer cannot be less than double shortfall in basic rent" less_than_double_shortfall: "Answer cannot be less than double 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"
household: household:
reasonpref: reasonpref:

62
spec/models/validations/financial_validations_spec.rb

@ -200,5 +200,67 @@ RSpec.describe Validations::FinancialValidations do
.to include(match I18n.t("validations.financial.tshortfall.more_than_rent")) .to include(match I18n.t("validations.financial.tshortfall.more_than_rent"))
end end
end end
context "when the landlord is this landlord and 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
record.period = 7
record.scharge = 56
financial_validator.validate_rent_amount(record)
expect(record.errors["scharge"])
.to include(match I18n.t("validations.financial.rent.scharge.this_landlord.general_needs"))
end
it "does allow the scharge to be between of 0 and 55 per week when period is weekly" do
record.needstype = 1
record.landlord = 1
record.period = 7
record.scharge = 54
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 55 range per week when period is monthly" do
record.needstype = 1
record.landlord = 1
record.period = 4
record.scharge = 300
financial_validator.validate_rent_amount(record)
expect(record.errors["scharge"])
.to include(match I18n.t("validations.financial.rent.scharge.this_landlord.general_needs"))
end
it "does allow the scharge to be between of 0 and 55 per week when period is monthly" do
record.needstype = 1
record.landlord = 1
record.period = 4
record.scharge = 220
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 55 range per week when period is every 2 weeks" do
record.needstype = 1
record.landlord = 1
record.period = 2
record.scharge = 111
financial_validator.validate_rent_amount(record)
expect(record.errors["scharge"])
.to include(match I18n.t("validations.financial.rent.scharge.this_landlord.general_needs"))
end
it "does allow the scharge to be between of 0 and 55 per week when period is every 2 weeks" do
record.needstype = 1
record.landlord = 1
record.period = 2
record.scharge = 109
financial_validator.validate_rent_amount(record)
expect(record.errors["scharge"])
.to be_empty
end
end
end end
end end

Loading…
Cancel
Save