From 4ed74b70345355690976cb6988df5330c1c8b699 Mon Sep 17 00:00:00 2001 From: natdeanlewissoftwire Date: Wed, 25 Jan 2023 16:57:17 +0000 Subject: [PATCH] test: add setup validations tests --- .../sales/setup_validations_spec.rb | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 spec/models/validations/sales/setup_validations_spec.rb diff --git a/spec/models/validations/sales/setup_validations_spec.rb b/spec/models/validations/sales/setup_validations_spec.rb new file mode 100644 index 000000000..52eb22cd4 --- /dev/null +++ b/spec/models/validations/sales/setup_validations_spec.rb @@ -0,0 +1,39 @@ +require "rails_helper" + +RSpec.describe Validations::Sales::SetupValidations do + subject(:setup_validator) { validator_class.new } + + let(:validator_class) { Class.new { include Validations::Sales::SetupValidations } } + + describe "#validate_saledate" do + context "when saledate is blank" do + let(:record) { FactoryBot.build(:sales_log, saledate: nil) } + + it "does not add an error" do + setup_validator.validate_saledate(record) + + expect(record.errors).to be_empty + end + end + + context "when saledate is in the 22/23 financial year" do + let(:record) { FactoryBot.build(:sales_log, saledate: Time.zone.local(2023, 1, 1)) } + + it "does not add an error" do + setup_validator.validate_saledate(record) + + expect(record.errors).to be_empty + end + end + + context "when saledate is not the 22/23 financial year" do + let(:record) { FactoryBot.build(:sales_log, saledate: Time.zone.local(2022, 1, 1)) } + + it "adds error" do + setup_validator.validate_saledate(record) + + expect(record.errors[:saledate]).to include(I18n.t("validations.setup.saledate.financial_year")) + end + end + end +end