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
end end
EMPLOYED_STATUSES = [1, 0].freeze EMPLOYED_STATUSES = [1, 2].freeze
def validate_net_income_uc_proportion(record) def validate_net_income_uc_proportion(record)
(1..8).any? do |n| (1..8).any? do |n|
economic_status = record["ecstat#{n}"] economic_status = record["ecstat#{n}"]
is_employed = EMPLOYED_STATUSES.include?(economic_status) is_employed = EMPLOYED_STATUSES.include?(economic_status)
relationship = record["relat#{n}"] relationship = record["relat#{n}"]
is_partner_or_main = relationship == "P" || (relationship.nil? && economic_status.present?) 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") record.errors.add :benefits, I18n.t("validations.lettings.financial.benefits.part_or_full_time")
end end
end end

14
spec/models/validations/financial_validations_spec.rb

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

Loading…
Cancel
Save