From fb9a91bac7d7d97025a8474a6ccf8006249bbdac Mon Sep 17 00:00:00 2001 From: Kat Date: Wed, 25 Jan 2023 14:22:39 +0000 Subject: [PATCH] Fix test, add delimiter and suffix to the numeric error mesage --- app/models/validations/shared_validations.rb | 6 ++++-- .../sales/questions/deposit_amount_spec.rb | 2 +- .../validations/shared_validations_spec.rb | 19 +++++++++++++++++++ 3 files changed, 24 insertions(+), 3 deletions(-) diff --git a/app/models/validations/shared_validations.rb b/app/models/validations/shared_validations.rb index 0d85435ec..2d7ac0c9e 100644 --- a/app/models/validations/shared_validations.rb +++ b/app/models/validations/shared_validations.rb @@ -1,4 +1,6 @@ module Validations::SharedValidations + include ActionView::Helpers::NumberHelper + def validate_other_field(record, value_other = nil, main_field = nil, other_field = nil, main_label = nil, other_label = nil) return unless main_field || other_field @@ -19,8 +21,8 @@ module Validations::SharedValidations next unless record[question.id] field = question.check_answer_label || question.id - min = [question.prefix, question.min].join("") - max = [question.prefix, question.max].join("") + min = [question.prefix, number_with_delimiter(question.min, delimiter: ","), question.suffix].join("") + max = [question.prefix, number_with_delimiter(question.max, delimiter: ","), question.suffix].join("") begin answer = Float(record.public_send("#{question.id}_before_type_cast")) diff --git a/spec/models/form/sales/questions/deposit_amount_spec.rb b/spec/models/form/sales/questions/deposit_amount_spec.rb index 961576d62..33a5dcf1d 100644 --- a/spec/models/form/sales/questions/deposit_amount_spec.rb +++ b/spec/models/form/sales/questions/deposit_amount_spec.rb @@ -48,6 +48,6 @@ RSpec.describe Form::Sales::Questions::DepositAmount, type: :model do end it "has correct max" do - expect(question.max).to eq(9_999_999) + expect(question.max).to eq(999_999) end end diff --git a/spec/models/validations/shared_validations_spec.rb b/spec/models/validations/shared_validations_spec.rb index a88b5dda2..abdde5f45 100644 --- a/spec/models/validations/shared_validations_spec.rb +++ b/spec/models/validations/shared_validations_spec.rb @@ -5,6 +5,7 @@ RSpec.describe Validations::SharedValidations do let(:validator_class) { Class.new { include Validations::SharedValidations } } let(:record) { FactoryBot.create(:lettings_log) } + let(:sales_record) { FactoryBot.create(:sales_log) } let(:fake_2021_2022_form) { Form.new("spec/fixtures/forms/2021_2022.json") } describe "numeric min max validations" do @@ -67,6 +68,24 @@ RSpec.describe Validations::SharedValidations do expect(record.errors["age6"]).to be_empty end end + + context "when validating percent" do + it "validates that % suffix is added in the error message" do + sales_record.stairbought = "random" + shared_validator.validate_numeric_min_max(sales_record) + expect(sales_record.errors["stairbought"]) + .to include(match I18n.t("validations.numeric.valid", field: "Percentage bought in this staircasing transaction", min: "0 percent", max: "100 percent")) + end + end + + context "when validating price" do + it "validates that £ prefix and , is added in the error message" do + sales_record.income1 = "random" + shared_validator.validate_numeric_min_max(sales_record) + expect(sales_record.errors["income1"]) + .to include(match I18n.t("validations.numeric.valid", field: "Buyer 1’s gross annual income", min: "£0", max: "£999,999")) + end + end end describe "radio options validations" do