Browse Source

Allor outright sale mortgageused 3, don't allow non staircaseing shared ownership mortgageused 3

pull/2310/head
Kat 2 years ago
parent
commit
6d7500e0cc
  1. 10
      app/models/validations/sales/sale_information_validations.rb
  2. 24
      spec/services/bulk_upload/sales/year2023/row_parser_spec.rb
  3. 28
      spec/services/bulk_upload/sales/year2024/row_parser_spec.rb

10
app/models/validations/sales/sale_information_validations.rb

@ -158,9 +158,15 @@ module Validations::Sales::SaleInformationValidations
end end
def validate_mortgage_used_dont_know(record) def validate_mortgage_used_dont_know(record)
return unless record.mortgageused return unless record.mortgageused == 3
if (record.discounted_ownership_sale? || record.outright_sale?) && record.mortgageused == 3 if record.discounted_ownership_sale?
record.errors.add(:mortgageused, I18n.t("validations.invalid_option", question: "Was a mortgage used for the purchase of this property?"))
end
if record.outright_sale? && record.saledate && !record.form.start_year_after_2024?
record.errors.add(:mortgageused, I18n.t("validations.invalid_option", question: "Was a mortgage used for the purchase of this property?"))
end
if record.shared_ownership_scheme? && record.staircase && record.staircase != 1
record.errors.add(:mortgageused, I18n.t("validations.invalid_option", question: "Was a mortgage used for the purchase of this property?")) record.errors.add(:mortgageused, I18n.t("validations.invalid_option", question: "Was a mortgage used for the purchase of this property?"))
end end
end end

24
spec/services/bulk_upload/sales/year2023/row_parser_spec.rb

@ -1065,6 +1065,30 @@ RSpec.describe BulkUpload::Sales::Year2023::RowParser do
expect(parser.log.mortgageused).to eq(3) expect(parser.log.mortgageused).to eq(3)
end end
end end
context "when it is not a staircasing transaction" do
context "when value is 3 and stairowned is not answered" do
let(:attributes) { setup_section_params.merge(field_105: "3", field_87: "2", field_88: "50", field_89: nil, field_111: nil) }
it "returns correct errors" do
expect(parser.errors[:field_105]).to include("Enter a valid value for Was a mortgage used for the purchase of this property?")
parser.log.blank_invalid_non_setup_fields!
parser.log.save!
expect(parser.log.mortgageused).to be_nil
end
end
context "when value is 3 and stairowned is 100" do
let(:attributes) { setup_section_params.merge(field_105: "3", field_87: "2", field_88: "50", field_89: "100", field_111: nil) }
it "returns correct errors" do
expect(parser.errors[:field_105]).to include("Enter a valid value for Was a mortgage used for the purchase of this property?")
parser.log.blank_invalid_non_setup_fields!
parser.log.save!
expect(parser.log.mortgageused).to be_nil
end
end
end
end end
describe "#field_119" do describe "#field_119" do

28
spec/services/bulk_upload/sales/year2024/row_parser_spec.rb

@ -1024,6 +1024,30 @@ RSpec.describe BulkUpload::Sales::Year2024::RowParser do
end end
end end
context "when it is not a staircasing transaction" do
context "when value is 3 and stairowned is not answered" do
let(:attributes) { setup_section_params.merge(field_103: "3", field_86: "2", field_87: "50", field_88: nil, field_109: nil) }
it "returns correct errors" do
expect(parser.errors[:field_103]).to include("Enter a valid value for Was a mortgage used for the purchase of this property?")
parser.log.blank_invalid_non_setup_fields!
parser.log.save!
expect(parser.log.mortgageused).to be_nil
end
end
context "when value is 3 and stairowned is 100" do
let(:attributes) { setup_section_params.merge(field_103: "3", field_86: "2", field_87: "50", field_88: "100", field_109: nil) }
it "returns correct errors" do
expect(parser.errors[:field_103]).to include("Enter a valid value for Was a mortgage used for the purchase of this property?")
parser.log.blank_invalid_non_setup_fields!
parser.log.save!
expect(parser.log.mortgageused).to be_nil
end
end
end
context "when value is 3 and stairowned is 100" do context "when value is 3 and stairowned is 100" do
let(:attributes) { setup_section_params.merge(field_103: "3", field_86: "1", field_87: "50", field_88: "100", field_109: nil) } let(:attributes) { setup_section_params.merge(field_103: "3", field_86: "1", field_87: "50", field_88: "100", field_109: nil) }
@ -1059,7 +1083,7 @@ RSpec.describe BulkUpload::Sales::Year2024::RowParser do
end end
describe "#field_126" do describe "#field_126" do
let(:attributes) { valid_attributes.merge({ field_8: "3", field_10: "10", field_126: "3", field_13: "2" }) } let(:attributes) { valid_attributes.merge({ field_8: "3", field_11: "10", field_126: "3", field_13: "2" }) }
it "allows 3 (don't know) as an option for outright sale" do it "allows 3 (don't know) as an option for outright sale" do
expect(parser.errors[:field_126]).to be_empty expect(parser.errors[:field_126]).to be_empty
@ -1067,7 +1091,7 @@ RSpec.describe BulkUpload::Sales::Year2024::RowParser do
expect(parser.errors[:field_117]).to be_empty expect(parser.errors[:field_117]).to be_empty
parser.log.blank_invalid_non_setup_fields! parser.log.blank_invalid_non_setup_fields!
parser.log.save! parser.log.save!
expect(parser.log.mortgageused).to be_nil expect(parser.log.mortgageused).to eq(3)
end end
end end

Loading…
Cancel
Save