diff --git a/app/models/validations/sales/soft_validations.rb b/app/models/validations/sales/soft_validations.rb index b0878fd0c..a383a522b 100644 --- a/app/models/validations/sales/soft_validations.rb +++ b/app/models/validations/sales/soft_validations.rb @@ -30,4 +30,10 @@ module Validations::Sales::SoftValidations def savings_over_soft_max? savings && savings > 100_000 end + + def deposit_over_soft_max? + return unless savings && deposit + + deposit > savings * 4 / 3 + end end diff --git a/spec/models/form_handler_spec.rb b/spec/models/form_handler_spec.rb index d9bee9a52..9db91afd9 100644 --- a/spec/models/form_handler_spec.rb +++ b/spec/models/form_handler_spec.rb @@ -52,14 +52,14 @@ RSpec.describe FormHandler do it "is able to load a current sales form" do form = form_handler.get_form("current_sales") expect(form).to be_a(Form) - expect(form.pages.count).to eq(107) + expect(form.pages.count).to eq(109) expect(form.name).to eq("2022_2023_sales") end it "is able to load a previous sales form" do form = form_handler.get_form("previous_sales") expect(form).to be_a(Form) - expect(form.pages.count).to eq(107) + expect(form.pages.count).to eq(109) expect(form.name).to eq("2021_2022_sales") end end diff --git a/spec/models/validations/sales/soft_validations_spec.rb b/spec/models/validations/sales/soft_validations_spec.rb index 003acd4bd..132701356 100644 --- a/spec/models/validations/sales/soft_validations_spec.rb +++ b/spec/models/validations/sales/soft_validations_spec.rb @@ -223,4 +223,36 @@ RSpec.describe Validations::Sales::SoftValidations do end end end + + describe "deposit amount validations" do + context "when validating soft max" do + it "returns false if no savings is given" do + record.savings = nil + record.deposit = 8_001 + expect(record) + .not_to be_deposit_over_soft_max + end + + it "returns false if no deposit is given" do + record.deposit = nil + record.savings = 6_000 + expect(record) + .not_to be_deposit_over_soft_max + end + + it "returns true if deposit is more than 4/3 of savings" do + record.deposit = 8_001 + record.savings = 6_000 + expect(record) + .to be_deposit_over_soft_max + end + + it "returns fals if deposit is less than 4/3 of savings" do + record.deposit = 7_999 + record.savings = 6_000 + expect(record) + .not_to be_deposit_over_soft_max + end + end + end end