From b53a6ec1385dcbd8f2578c49232cf162ae08140e Mon Sep 17 00:00:00 2001 From: natdeanlewissoftwire Date: Mon, 20 Mar 2023 14:35:58 +0000 Subject: [PATCH] test: add tests --- .../validations/sales/setup_validations.rb | 4 ++- .../sales/setup_validations_spec.rb | 34 +++++++++++++++++++ 2 files changed, 37 insertions(+), 1 deletion(-) diff --git a/app/models/validations/sales/setup_validations.rb b/app/models/validations/sales/setup_validations.rb index 078947bd1..bf1be5867 100644 --- a/app/models/validations/sales/setup_validations.rb +++ b/app/models/validations/sales/setup_validations.rb @@ -11,7 +11,9 @@ module Validations::Sales::SetupValidations end def validate_saledate_two_weeks(record) - if FeatureToggle.saledate_two_week_validation_enabled? && record.saledate > Time.zone.today + 14 + return unless record.saledate && date_valid?("saledate", record) && FeatureToggle.saledate_two_week_validation_enabled? + + if record.saledate > Time.zone.today + 14 record.errors.add :saledate, I18n.t("validations.setup.saledate.later_than_14_days_after") end end diff --git a/spec/models/validations/sales/setup_validations_spec.rb b/spec/models/validations/sales/setup_validations_spec.rb index c510df79e..4b5bfe1a0 100644 --- a/spec/models/validations/sales/setup_validations_spec.rb +++ b/spec/models/validations/sales/setup_validations_spec.rb @@ -98,4 +98,38 @@ RSpec.describe Validations::Sales::SetupValidations do end end end + + describe "#validate_saledate_two_weeks" do + context "when saledate is blank" do + let(:record) { build(:sales_log, saledate: nil) } + + it "does not add an error" do + setup_validator.validate_saledate_two_weeks(record) + + expect(record.errors).to be_empty + end + end + + context "when saledate is less than 14 days after today" do + let(:record) { build(:sales_log, saledate: Time.zone.today + 10.days) } + + it "does not add an error" do + setup_validator.validate_saledate_two_weeks(record) + + expect(record.errors).to be_empty + end + end + + context "when saledate is more than 14 days after today" do + let(:record) { build(:sales_log, saledate: Time.zone.today + 15.days) } + + it "adds an error" do + setup_validator.validate_saledate_two_weeks(record) + + expect(record.errors[:saledate]).to include("Sale completion date must not be later than 14 days from today’s date") + end + end + end + + end