Browse Source

intermediate_rent_product_name validation

pull/391/head
Dushan Despotovic 3 years ago
parent
commit
0a8af2969c
  1. 7
      app/models/validations/setup_validations.rb
  2. 4
      config/locales/en.yml
  3. 33
      spec/models/validations/setup_validations_spec.rb

7
app/models/validations/setup_validations.rb

@ -0,0 +1,7 @@
module Validations::SetupValidations
def validate_intermediate_rent_product_name(record)
if record.rent_type == 5 && record.intermediate_rent_product_name.blank?
record.errors.add :intermediate_rent_product_name, I18n.t("validations.setup.intermediate_rent_product_name.blank")
end
end
end

4
config/locales/en.yml

@ -47,6 +47,10 @@ en:
taken: "Email already exists" taken: "Email already exists"
invalid: "Enter an email address in the correct format, like name@example.com" invalid: "Enter an email address in the correct format, like name@example.com"
blank: "Enter an email address" blank: "Enter an email address"
setup:
intermediate_rent_product_name:
blank: "Enter an intermediate rent product name"
property: property:
mrcdate: mrcdate:

33
spec/models/validations/setup_validations_spec.rb

@ -0,0 +1,33 @@
require "rails_helper"
RSpec.describe Validations::SetupValidations do
subject(:setup_validator) { setup_validator_class.new }
let(:setup_validator_class) { Class.new { include Validations::SetupValidations } }
let(:record) { FactoryBot.create(:case_log) }
describe "#validate_intermediate_rent_product_name" do
it "adds an error when the intermediate rent product name is not provided but the rent type was given as other intermediate rent product" do
record.rent_type = 5
record.intermediate_rent_product_name = nil
setup_validator.validate_intermediate_rent_product_name(record)
expect(record.errors["intermediate_rent_product_name"])
.to include(match I18n.t("validations.setup.intermediate_rent_product_name.blank"))
end
it "adds an error when the intermediate rent product name is blank but the rent type was given as other intermediate rent product" do
record.rent_type = 5
record.intermediate_rent_product_name = ""
setup_validator.validate_intermediate_rent_product_name(record)
expect(record.errors["intermediate_rent_product_name"])
.to include(match I18n.t("validations.setup.intermediate_rent_product_name.blank"))
end
it "Does not add an error when the intermediate rent product name is provided and the rent type was given as other intermediate rent product" do
record.rent_type = 5
record.intermediate_rent_product_name = "Example"
setup_validator.validate_intermediate_rent_product_name(record)
expect(record.errors["intermediate_rent_product_name"]).to be_empty
end
end
end
Loading…
Cancel
Save