diff --git a/app/services/bulk_upload/lettings/year2022/row_parser.rb b/app/services/bulk_upload/lettings/year2022/row_parser.rb index 2eac1d6c4..c6c92b58e 100644 --- a/app/services/bulk_upload/lettings/year2022/row_parser.rb +++ b/app/services/bulk_upload/lettings/year2022/row_parser.rb @@ -765,9 +765,8 @@ private end def validate_incomplete_soft_validations - routed_to_soft_validation_questions = log.form.questions.filter { |q| q.type == "interruption_screen" && q.page.routed_to?(log, nil) } + routed_to_soft_validation_questions = log.form.questions.filter { |q| q.type == "interruption_screen" && q.page.routed_to?(log, nil) }.compact routed_to_soft_validation_questions.each do |question| - next unless question next if question.completed?(log) question.page.interruption_screen_question_ids.each do |interruption_screen_question_id| diff --git a/app/services/bulk_upload/lettings/year2023/row_parser.rb b/app/services/bulk_upload/lettings/year2023/row_parser.rb index 851fffd7b..079e3f683 100644 --- a/app/services/bulk_upload/lettings/year2023/row_parser.rb +++ b/app/services/bulk_upload/lettings/year2023/row_parser.rb @@ -510,9 +510,8 @@ private end def validate_incomplete_soft_validations - routed_to_soft_validation_questions = log.form.questions.filter { |q| q.type == "interruption_screen" && q.page.routed_to?(log, nil) } + routed_to_soft_validation_questions = log.form.questions.filter { |q| q.type == "interruption_screen" && q.page.routed_to?(log, nil) }.compact routed_to_soft_validation_questions.each do |question| - next unless question next if question.completed?(log) question.page.interruption_screen_question_ids.each do |interruption_screen_question_id| diff --git a/app/services/bulk_upload/sales/year2022/row_parser.rb b/app/services/bulk_upload/sales/year2022/row_parser.rb index d1f31ecd7..752cf661f 100644 --- a/app/services/bulk_upload/sales/year2022/row_parser.rb +++ b/app/services/bulk_upload/sales/year2022/row_parser.rb @@ -986,9 +986,8 @@ private end def validate_incomplete_soft_validations - routed_to_soft_validation_questions = log.form.questions.filter { |q| q.type == "interruption_screen" && q.page.routed_to?(log, nil) } + routed_to_soft_validation_questions = log.form.questions.filter { |q| q.type == "interruption_screen" && q.page.routed_to?(log, nil) }.compact routed_to_soft_validation_questions.each do |question| - next unless question next if question.completed?(log) question.page.interruption_screen_question_ids.each do |interruption_screen_question_id| diff --git a/app/services/bulk_upload/sales/year2023/row_parser.rb b/app/services/bulk_upload/sales/year2023/row_parser.rb index 3dba8cfec..aedcdd17a 100644 --- a/app/services/bulk_upload/sales/year2023/row_parser.rb +++ b/app/services/bulk_upload/sales/year2023/row_parser.rb @@ -1213,9 +1213,8 @@ private end def validate_incomplete_soft_validations - routed_to_soft_validation_questions = log.form.questions.filter { |q| q.type == "interruption_screen" && q.page.routed_to?(log, nil) } + routed_to_soft_validation_questions = log.form.questions.filter { |q| q.type == "interruption_screen" && q.page.routed_to?(log, nil) }.compact routed_to_soft_validation_questions.each do |question| - next unless question next if question.completed?(log) question.page.interruption_screen_question_ids.each do |interruption_screen_question_id| diff --git a/spec/services/bulk_upload/lettings/year2022/row_parser_spec.rb b/spec/services/bulk_upload/lettings/year2022/row_parser_spec.rb index 0587c0f51..0e0a3c961 100644 --- a/spec/services/bulk_upload/lettings/year2022/row_parser_spec.rb +++ b/spec/services/bulk_upload/lettings/year2022/row_parser_spec.rb @@ -978,17 +978,13 @@ RSpec.describe BulkUpload::Lettings::Year2022::RowParser do let(:attributes) { setup_section_params.merge({ field_12: 22, field_35: 5 }) } it "adds an error to the relevant fields" do - soft_validation_errors = parser.errors.select { |e| e.options[:category] == :soft_validation } - - expect(soft_validation_errors.find { |e| e.attribute == :field_12 }).to be_present - expect(soft_validation_errors.find { |e| e.attribute == :field_35 }).to be_present + expect(parser.errors.where(:field_12, category: :soft_validation)).to be_present + expect(parser.errors.where(:field_35, category: :soft_validation)).to be_present end it "populates with correct error message" do - soft_validation_errors = parser.errors.select { |e| e.options[:category] == :soft_validation } - - expect(soft_validation_errors.find { |e| e.attribute == :field_12 }.message).to eql("You told us this person is aged 22 years and retired.") - expect(soft_validation_errors.find { |e| e.attribute == :field_35 }.message).to eql("You told us this person is aged 22 years and retired.") + expect(parser.errors.where(:field_12, category: :soft_validation).first.message).to eql("You told us this person is aged 22 years and retired.") + expect(parser.errors.where(:field_35, category: :soft_validation).first.message).to eql("You told us this person is aged 22 years and retired.") end end end diff --git a/spec/services/bulk_upload/lettings/year2023/row_parser_spec.rb b/spec/services/bulk_upload/lettings/year2023/row_parser_spec.rb index 4cd9e40bc..d0e18c915 100644 --- a/spec/services/bulk_upload/lettings/year2023/row_parser_spec.rb +++ b/spec/services/bulk_upload/lettings/year2023/row_parser_spec.rb @@ -1009,17 +1009,13 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do let(:attributes) { setup_section_params.merge({ field_46: 22, field_50: 5 }) } it "adds an error to the relevant fields" do - soft_validation_errors = parser.errors.select { |e| e.options[:category] == :soft_validation } - - expect(soft_validation_errors.find { |e| e.attribute == :field_46 }).to be_present - expect(soft_validation_errors.find { |e| e.attribute == :field_50 }).to be_present + expect(parser.errors.where(:field_46, category: :soft_validation)).to be_present + expect(parser.errors.where(:field_50, category: :soft_validation)).to be_present end it "populates with correct error message" do - soft_validation_errors = parser.errors.select { |e| e.options[:category] == :soft_validation } - - expect(soft_validation_errors.find { |e| e.attribute == :field_46 }.message).to eql("You told us this person is aged 22 years and retired.") - expect(soft_validation_errors.find { |e| e.attribute == :field_50 }.message).to eql("You told us this person is aged 22 years and retired.") + expect(parser.errors.where(:field_46, category: :soft_validation).first.message).to eql("You told us this person is aged 22 years and retired.") + expect(parser.errors.where(:field_50, category: :soft_validation).first.message).to eql("You told us this person is aged 22 years and retired.") end end @@ -1027,16 +1023,12 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do let(:attributes) { setup_section_params.merge({ field_128: 120, field_126: 1, field_32: 1, field_4: 1, field_5: "3", field_25: "E09000008" }) } it "adds an error to the relevant fields" do - soft_validation_errors = parser.errors.select { |e| e.options[:category] == :soft_validation } - - expect(soft_validation_errors.find { |e| e.attribute == :field_128 }).to be_present + expect(parser.errors.where(:field_128, category: :soft_validation)).to be_present end it "populates with correct error message" do - soft_validation_errors = parser.errors.select { |e| e.options[:category] == :soft_validation } - - expect(soft_validation_errors.count { |e| e.attribute == :field_128 }).to be(1) - expect(soft_validation_errors.find { |e| e.attribute == :field_128 }.message).to eql("You told us the rent is £120.00 every week. The maximum rent expected for this type of property in this local authority is ££118.85 every week.") + expect(parser.errors.where(:field_128, category: :soft_validation).count).to be(1) + expect(parser.errors.where(:field_128, category: :soft_validation).first.message).to eql("You told us the rent is £120.00 every week. The maximum rent expected for this type of property in this local authority is ££118.85 every week.") end end end diff --git a/spec/services/bulk_upload/sales/year2022/row_parser_spec.rb b/spec/services/bulk_upload/sales/year2022/row_parser_spec.rb index 1fc85ebb5..100cbf079 100644 --- a/spec/services/bulk_upload/sales/year2022/row_parser_spec.rb +++ b/spec/services/bulk_upload/sales/year2022/row_parser_spec.rb @@ -525,17 +525,13 @@ RSpec.describe BulkUpload::Sales::Year2022::RowParser do let(:attributes) { valid_attributes.merge({ field_7: 22, field_24: 5 }) } it "adds an error to the relevant fields" do - soft_validation_errors = parser.errors.select { |e| e.options[:category] == :soft_validation } - - expect(soft_validation_errors.find { |e| e.attribute == :field_7 }).to be_present - expect(soft_validation_errors.find { |e| e.attribute == :field_24 }).to be_present + expect(parser.errors.where(:field_7, category: :soft_validation)).to be_present + expect(parser.errors.where(:field_24, category: :soft_validation)).to be_present end it "populates with correct error message" do - soft_validation_errors = parser.errors.select { |e| e.options[:category] == :soft_validation } - - expect(soft_validation_errors.find { |e| e.attribute == :field_7 }.message).to eql("You told us this person is aged 22 years and retired.") - expect(soft_validation_errors.find { |e| e.attribute == :field_24 }.message).to eql("You told us this person is aged 22 years and retired.") + expect(parser.errors.where(:field_7, category: :soft_validation).first.message).to eql("You told us this person is aged 22 years and retired.") + expect(parser.errors.where(:field_24, category: :soft_validation).first.message).to eql("You told us this person is aged 22 years and retired.") end end end diff --git a/spec/services/bulk_upload/sales/year2023/row_parser_spec.rb b/spec/services/bulk_upload/sales/year2023/row_parser_spec.rb index f58e3b17d..24e29e6ac 100644 --- a/spec/services/bulk_upload/sales/year2023/row_parser_spec.rb +++ b/spec/services/bulk_upload/sales/year2023/row_parser_spec.rb @@ -690,17 +690,13 @@ RSpec.describe BulkUpload::Sales::Year2023::RowParser do let(:attributes) { valid_attributes.merge({ field_30: 22, field_35: 5 }) } it "adds an error to the relevant fields" do - soft_validation_errors = parser.errors.select { |e| e.options[:category] == :soft_validation } - - expect(soft_validation_errors.find { |e| e.attribute == :field_30 }).to be_present - expect(soft_validation_errors.find { |e| e.attribute == :field_35 }).to be_present + expect(parser.errors.where(:field_30, category: :soft_validation)).to be_present + expect(parser.errors.where(:field_35, category: :soft_validation)).to be_present end it "populates with correct error message" do - soft_validation_errors = parser.errors.select { |e| e.options[:category] == :soft_validation } - - expect(soft_validation_errors.find { |e| e.attribute == :field_30 }.message).to eql("You told us this person is aged 22 years and retired.") - expect(soft_validation_errors.find { |e| e.attribute == :field_35 }.message).to eql("You told us this person is aged 22 years and retired.") + expect(parser.errors.where(:field_30, category: :soft_validation).first.message).to eql("You told us this person is aged 22 years and retired.") + expect(parser.errors.where(:field_30, category: :soft_validation).first.message).to eql("You told us this person is aged 22 years and retired.") end end end