|
|
|
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(:lettings_log) }
|
|
|
|
|
|
|
|
describe "#validate_irproduct" 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.irproduct_other = nil
|
|
|
|
setup_validator.validate_irproduct_other(record)
|
|
|
|
expect(record.errors["irproduct_other"])
|
|
|
|
.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.irproduct_other = ""
|
|
|
|
setup_validator.validate_irproduct_other(record)
|
|
|
|
expect(record.errors["irproduct_other"])
|
|
|
|
.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.irproduct_other = "Example"
|
|
|
|
setup_validator.validate_irproduct_other(record)
|
|
|
|
expect(record.errors["irproduct_other"]).to be_empty
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|