Browse Source

Check correct benefits value in the validation

pull/2769/head
Kat 7 months ago
parent
commit
44ca119bc5
  1. 4
      app/models/validations/financial_validations.rb
  2. 14
      spec/models/validations/financial_validations_spec.rb

4
app/models/validations/financial_validations.rb

@ -11,14 +11,14 @@ module Validations::FinancialValidations
end
end
EMPLOYED_STATUSES = [1, 0].freeze
EMPLOYED_STATUSES = [1, 2].freeze
def validate_net_income_uc_proportion(record)
(1..8).any? do |n|
economic_status = record["ecstat#{n}"]
is_employed = EMPLOYED_STATUSES.include?(economic_status)
relationship = record["relat#{n}"]
is_partner_or_main = relationship == "P" || (relationship.nil? && economic_status.present?)
if is_employed && is_partner_or_main && record.benefits&.zero?
if is_employed && is_partner_or_main && record.benefits == 1
record.errors.add :benefits, I18n.t("validations.lettings.financial.benefits.part_or_full_time")
end
end

14
spec/models/validations/financial_validations_spec.rb

@ -36,36 +36,36 @@ RSpec.describe Validations::FinancialValidations do
describe "benefits proportion validations" do
context "when the proportion is all" do
it "validates that the lead tenant is not in full time employment" do
record.benefits = 0
record.benefits = 1
record.ecstat1 = 1
financial_validator.validate_net_income_uc_proportion(record)
expect(record.errors["benefits"]).to include(match I18n.t("validations.lettings.financial.benefits.part_or_full_time"))
end
it "validates that the lead tenant is not in part time employment" do
record.benefits = 0
record.ecstat1 = 0
record.benefits = 1
record.ecstat1 = 2
financial_validator.validate_net_income_uc_proportion(record)
expect(record.errors["benefits"]).to include(match I18n.t("validations.lettings.financial.benefits.part_or_full_time"))
end
it "expects that the lead tenant is not in full-time or part-time employment" do
record.benefits = 0
record.benefits = 1
record.ecstat1 = 4
financial_validator.validate_net_income_uc_proportion(record)
expect(record.errors["benefits"]).to be_empty
end
it "validates that the tenant’s partner is not in full time employment" do
record.benefits = 0
record.ecstat2 = 0
record.benefits = 1
record.ecstat2 = 2
record.relat2 = "P"
financial_validator.validate_net_income_uc_proportion(record)
expect(record.errors["benefits"]).to include(match I18n.t("validations.lettings.financial.benefits.part_or_full_time"))
end
it "expects that the tenant’s partner is not in full-time or part-time employment" do
record.benefits = 0
record.benefits = 1
record.ecstat2 = 4
record.relat2 = "P"
financial_validator.validate_net_income_uc_proportion(record)

Loading…
Cancel
Save